*
* Local subnets are subnets the host is directly connected to.
*
- * @return enumerator over host_t*, uint8_t
+ * The enumerator returns the network, subnet mask and interface.
+ *
+ * @return enumerator over host_t*, uint8_t, char*
*/
enumerator_t *(*create_local_subnet_enumerator)(kernel_interface_t *this);
*
* Local subnets are subnets the host is directly connected to.
*
- * @return enumerator over host_t*, uint8_t
+ * The enumerator returns the network, subnet mask and interface.
+ *
+ * @return enumerator over host_t*, uint8_t, char*
*/
enumerator_t *(*create_local_subnet_enumerator)(kernel_net_t *this);
bypass_policy_t *found, *lookup;
host_t *net;
uint8_t mask;
+ char *iface;
seen = hashtable_create((hashtable_hash_t)policy_hash,
(hashtable_equals_t)policy_equals, 4);
this->mutex->lock(this->mutex);
enumerator = charon->kernel->create_local_subnet_enumerator(charon->kernel);
- while (enumerator->enumerate(enumerator, &net, &mask))
+ while (enumerator->enumerate(enumerator, &net, &mask, &iface))
{
INIT(lookup,
.net = net->clone(net),
}
METHOD(enumerator_t, enumerate_subnets, bool,
- subnet_enumerator_t *this, host_t **net, uint8_t *mask)
+ subnet_enumerator_t *this, host_t **net, uint8_t *mask, char **ifname)
{
if (!this->current)
{
this->net = host_create_from_chunk(msg->rtm_family, dst, 0);
*net = this->net;
*mask = msg->rtm_dst_len;
+ *ifname = NULL;
return TRUE;
}
break;