diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-07-15 11:47:48 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-07-17 22:18:48 +0200 |
commit | 8469d77e2bbd53af578377170cedaa85ba38b076 (patch) | |
tree | 0a734a003513b0de88190654feb1e626d6470091 | |
parent | 5aa22ed8c9c1944f8843442912561dcec83a11b2 (diff) |
core: fix detection of relevant changes in nm_ipX_config_replace()
The @relevant_changes output value must match the result of
!nm_ipX_config_equal(), so route metric and gateway must be taken into
account too.
Fixes: 935411e5c03dcb62d5b2a85e67bf3220c75d0f5e
Fixes: cfd1851c0067773211524c2b648330b6ee7a066c
https://bugzilla.redhat.com/show_bug.cgi?id=1471244
-rw-r--r-- | src/nm-ip4-config.c | 4 | ||||
-rw-r--r-- | src/nm-ip6-config.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 2b069777e8..8b55a2cdc2 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -1313,7 +1313,9 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev if (nm_platform_ip4_route_cmp (r_src, r_dst) != 0) { are_equal = FALSE; - if (!nm_ip_config_obj_id_equal_ip4_route (r_src, r_dst)) { + if ( !nm_ip_config_obj_id_equal_ip4_route (r_src, r_dst) + || r_src->gateway != r_dst->gateway + || r_src->metric != r_dst->metric) { has_relevant_changes = TRUE; break; } diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 16b9ef0ea0..b376833f45 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -1193,7 +1193,9 @@ nm_ip6_config_replace (NMIP6Config *dst, const NMIP6Config *src, gboolean *relev if (nm_platform_ip6_route_cmp (r_src, r_dst) != 0) { are_equal = FALSE; - if (!nm_ip_config_obj_id_equal_ip6_route (r_src, r_dst)) { + if ( !nm_ip_config_obj_id_equal_ip6_route (r_src, r_dst) + || r_src->metric != r_dst->metric + || !IN6_ARE_ADDR_EQUAL (&r_src->gateway, &r_dst->gateway)) { has_relevant_changes = TRUE; break; } |