do not install route if interface lookup failed
This commit is contained in:
@@ -1506,8 +1506,11 @@ static status_t add_policy(private_kernel_netlink_ipsec_t *this,
|
|||||||
memcpy(route->dst_net.ptr, &policy->sel.saddr, route->dst_net.len);
|
memcpy(route->dst_net.ptr, &policy->sel.saddr, route->dst_net.len);
|
||||||
route->prefixlen = policy->sel.prefixlen_s;
|
route->prefixlen = policy->sel.prefixlen_s;
|
||||||
|
|
||||||
switch (charon->kernel_interface->add_route(charon->kernel_interface,
|
if (route->if_name)
|
||||||
route->dst_net, route->prefixlen, route->gateway,
|
{
|
||||||
|
switch (charon->kernel_interface->add_route(
|
||||||
|
charon->kernel_interface, route->dst_net,
|
||||||
|
route->prefixlen, route->gateway,
|
||||||
route->src_ip, route->if_name))
|
route->src_ip, route->if_name))
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -1525,11 +1528,15 @@ static status_t add_policy(private_kernel_netlink_ipsec_t *this,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
route_entry_destroy(route);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
free(route);
|
free(route);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user