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:
parent
25d59e9e2d
commit
051226d5c0
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue