kernel-interface: Add method to enumerate locally attached subnets
This commit is contained in:
@@ -554,6 +554,16 @@ METHOD(kernel_interface_t, create_address_enumerator, enumerator_t*,
|
|||||||
return this->net->create_address_enumerator(this->net, which);
|
return this->net->create_address_enumerator(this->net, which);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
METHOD(kernel_interface_t, create_local_subnet_enumerator, enumerator_t*,
|
||||||
|
private_kernel_interface_t *this)
|
||||||
|
{
|
||||||
|
if (!this->net || !this->net->create_local_subnet_enumerator)
|
||||||
|
{
|
||||||
|
return enumerator_create_empty();
|
||||||
|
}
|
||||||
|
return this->net->create_local_subnet_enumerator(this->net);
|
||||||
|
}
|
||||||
|
|
||||||
METHOD(kernel_interface_t, add_ip, status_t,
|
METHOD(kernel_interface_t, add_ip, status_t,
|
||||||
private_kernel_interface_t *this, host_t *virtual_ip, int prefix,
|
private_kernel_interface_t *this, host_t *virtual_ip, int prefix,
|
||||||
char *iface)
|
char *iface)
|
||||||
@@ -1005,6 +1015,7 @@ kernel_interface_t *kernel_interface_create()
|
|||||||
.get_nexthop = _get_nexthop,
|
.get_nexthop = _get_nexthop,
|
||||||
.get_interface = _get_interface,
|
.get_interface = _get_interface,
|
||||||
.create_address_enumerator = _create_address_enumerator,
|
.create_address_enumerator = _create_address_enumerator,
|
||||||
|
.create_local_subnet_enumerator = _create_local_subnet_enumerator,
|
||||||
.add_ip = _add_ip,
|
.add_ip = _add_ip,
|
||||||
.del_ip = _del_ip,
|
.del_ip = _del_ip,
|
||||||
.add_route = _add_route,
|
.add_route = _add_route,
|
||||||
|
|||||||
@@ -315,6 +315,15 @@ struct kernel_interface_t {
|
|||||||
enumerator_t *(*create_address_enumerator) (kernel_interface_t *this,
|
enumerator_t *(*create_address_enumerator) (kernel_interface_t *this,
|
||||||
kernel_address_type_t which);
|
kernel_address_type_t which);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an enumerator over all local subnets.
|
||||||
|
*
|
||||||
|
* Local subnets are subnets the host is directly connected to.
|
||||||
|
*
|
||||||
|
* @return enumerator over host_t*, uint8_t
|
||||||
|
*/
|
||||||
|
enumerator_t *(*create_local_subnet_enumerator)(kernel_interface_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a virtual IP to an interface.
|
* Add a virtual IP to an interface.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -118,6 +118,15 @@ struct kernel_net_t {
|
|||||||
enumerator_t *(*create_address_enumerator) (kernel_net_t *this,
|
enumerator_t *(*create_address_enumerator) (kernel_net_t *this,
|
||||||
kernel_address_type_t which);
|
kernel_address_type_t which);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an enumerator over all local subnets.
|
||||||
|
*
|
||||||
|
* Local subnets are subnets the host is directly connected to.
|
||||||
|
*
|
||||||
|
* @return enumerator over host_t*, uint8_t
|
||||||
|
*/
|
||||||
|
enumerator_t *(*create_local_subnet_enumerator)(kernel_net_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a virtual IP to an interface.
|
* Add a virtual IP to an interface.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user