Silently install route again, even if it did not change.
Address/interface changes can cause the route to disappear. Afterwards the route might look the same but that does not mean it is still installed.
This commit is contained in:
@@ -2154,7 +2154,12 @@ static status_t add_policy_internal(private_kernel_netlink_ipsec_t *this,
|
||||
{
|
||||
route_entry_t *old = policy->route;
|
||||
if (route_entry_equals(old, route))
|
||||
{ /* keep previously installed route */
|
||||
{ /* keep previously installed route. since it might have
|
||||
* still been removed by an address change, we install it
|
||||
* again but ignore the result */
|
||||
hydra->kernel_interface->add_route(hydra->kernel_interface,
|
||||
route->dst_net, route->prefixlen, route->gateway,
|
||||
route->src_ip, route->if_name);
|
||||
this->mutex->unlock(this->mutex);
|
||||
route_entry_destroy(route);
|
||||
return SUCCESS;
|
||||
|
||||
@@ -2016,7 +2016,12 @@ static status_t add_policy_internal(private_kernel_pfkey_ipsec_t *this,
|
||||
{
|
||||
route_entry_t *old = policy->route;
|
||||
if (route_entry_equals(old, route))
|
||||
{ /* keep previously installed route */
|
||||
{ /* keep previously installed route. since it might have
|
||||
* still been removed by an address change, we install it
|
||||
* again but ignore the result */
|
||||
hydra->kernel_interface->add_route(hydra->kernel_interface,
|
||||
route->dst_net, route->prefixlen, route->gateway,
|
||||
route->src_ip, route->if_name);
|
||||
this->mutex->unlock(this->mutex);
|
||||
route_entry_destroy(route);
|
||||
return SUCCESS;
|
||||
|
||||
Reference in New Issue
Block a user