kernel-pfroute: Properly install routes with interface and gateway
This commit is contained in:
@@ -510,7 +510,7 @@ static void process_link(private_kernel_pfroute_net_t *this,
|
|||||||
{
|
{
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
iface_entry_t *iface;
|
iface_entry_t *iface;
|
||||||
bool roam = FALSE, found = FALSE;;
|
bool roam = FALSE, found = FALSE;
|
||||||
|
|
||||||
this->lock->write_lock(this->lock);
|
this->lock->write_lock(this->lock);
|
||||||
enumerator = this->ifaces->create_enumerator(this->ifaces);
|
enumerator = this->ifaces->create_enumerator(this->ifaces);
|
||||||
@@ -1051,13 +1051,14 @@ static status_t manage_route(private_kernel_pfroute_net_t *this, int op,
|
|||||||
dst->get_family(dst), prefixlen);
|
dst->get_family(dst), prefixlen);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RTAX_GATEWAY:
|
case RTAX_IFP:
|
||||||
/* interface name seems to replace gateway on OS X */
|
|
||||||
if (if_name)
|
if (if_name)
|
||||||
{
|
{
|
||||||
add_rt_ifname(&msg.hdr, RTA_GATEWAY, if_name);
|
add_rt_ifname(&msg.hdr, RTA_IFP, if_name);
|
||||||
}
|
}
|
||||||
else if (gateway)
|
break;
|
||||||
|
case RTAX_GATEWAY:
|
||||||
|
if (gateway)
|
||||||
{
|
{
|
||||||
add_rt_addr(&msg.hdr, RTA_GATEWAY, gateway);
|
add_rt_addr(&msg.hdr, RTA_GATEWAY, gateway);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user