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,
private_kernel_interface_t *this, host_t *virtual_ip, int prefix,
char *iface)
.get_nexthop = _get_nexthop,
.get_interface = _get_interface,
.create_address_enumerator = _create_address_enumerator,
+ .create_local_subnet_enumerator = _create_local_subnet_enumerator,
.add_ip = _add_ip,
.del_ip = _del_ip,
.add_route = _add_route,
enumerator_t *(*create_address_enumerator) (kernel_interface_t *this,
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.
*
enumerator_t *(*create_address_enumerator) (kernel_net_t *this,
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.
*