summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-07-15 11:47:48 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2017-07-17 22:18:48 +0200
commit8469d77e2bbd53af578377170cedaa85ba38b076 (patch)
tree0a734a003513b0de88190654feb1e626d6470091
parent5aa22ed8c9c1944f8843442912561dcec83a11b2 (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.c4
-rw-r--r--src/nm-ip6-config.c4
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;
}