diff options
| author | Michael Biebl <biebl@debian.org> | 2017-09-20 21:04:54 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2017-09-20 21:04:54 +0200 |
| commit | 93368eb67cd49313e1e38045010bb7a0bb46e4cf (patch) | |
| tree | a6741acab28c156e6fde36c06d42262a1f89354b /src/nm-route-manager.c | |
| parent | 6591116fbf5ffe613921524c367b475ae0ac9628 (diff) | |
| parent | bdb6eeb0670658255c2a4c3c501c0a27fa8cfe55 (diff) | |
Updated version 1.8.4 from 'upstream/1.8.4'
with Debian dir 9aad7c38bece00cfa4099176de05bcb471d7445d
Diffstat (limited to 'src/nm-route-manager.c')
| -rw-r--r-- | src/nm-route-manager.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/nm-route-manager.c b/src/nm-route-manager.c index b58cdeb0..f293f130 100644 --- a/src/nm-route-manager.c +++ b/src/nm-route-manager.c @@ -25,6 +25,7 @@ #include <string.h> #include "platform/nm-platform.h" +#include "platform/nm-platform-utils.h" #include "platform/nmp-object.h" #include "nm-core-internal.h" #include "NetworkManagerUtils.h" @@ -364,19 +365,20 @@ _route_index_reverse_idx (const VTableIP *vtable, const RouteIndex *index, guint /*****************************************************************************/ static gboolean -_route_equals_ignoring_ifindex (const VTableIP *vtable, const NMPlatformIPXRoute *r1, const NMPlatformIPXRoute *r2, gint64 r2_metric) +_route_equals_ignoring_ifindex (const VTableIP *vtable, + const NMPlatformIPXRoute *plat_rt, + const NMPlatformIPXRoute *rt, + gint64 rt_metric) { - NMPlatformIPXRoute r2_backup; - - if ( r1->rx.ifindex != r2->rx.ifindex - || (r2_metric >= 0 && ((guint32) r2_metric) != r2->rx.metric)) { - memcpy (&r2_backup, r2, vtable->vt->sizeof_route); - r2_backup.rx.ifindex = r1->rx.ifindex; - if (r2_metric >= 0) - r2_backup.rx.metric = (guint32) r2_metric; - r2 = &r2_backup; - } - return vtable->vt->route_cmp (r1, r2, FALSE) == 0; + NMPlatformIPXRoute rt_backup; + + memcpy (&rt_backup, rt, vtable->vt->sizeof_route); + rt_backup.rx.ifindex = plat_rt->rx.ifindex; + if (rt_metric >= 0) + rt_backup.rx.metric = (guint32) rt_metric; + rt_backup.rx.rt_source = nmp_utils_ip_config_source_round_trip_rtprot (rt_backup.rx.rt_source); + + return vtable->vt->route_cmp (plat_rt, &rt_backup, FALSE) == 0; } static NMPlatformIPXRoute * |