about summary refs log tree commit diff
path: root/src/core/nm-l3-config-data.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2023-06-12 11:25:29 +0200
committerMichael Biebl <biebl@debian.org>2023-06-12 11:25:29 +0200
commit150fe9eef8dd22307ee16687509acde616663982 (patch)
tree200fa1178c9aeee2ff874bb63afe93623da4be0d /src/core/nm-l3-config-data.c
parentdfaaf221cfee4ffcc507d793dae051d402646679 (diff)
New upstream version 1.42.6 upstream/1.42.6
Diffstat (limited to 'src/core/nm-l3-config-data.c')
-rw-r--r--src/core/nm-l3-config-data.c54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/core/nm-l3-config-data.c b/src/core/nm-l3-config-data.c
index 17bb9db8..d5dedb9c 100644
--- a/src/core/nm-l3-config-data.c
+++ b/src/core/nm-l3-config-data.c
@@ -2297,35 +2297,37 @@ nm_l3_config_data_cmp_full(const NML3ConfigData *a,
         const NMPObject *def_route_a = a->best_default_route_x[IS_IPv4];
         const NMPObject *def_route_b = b->best_default_route_x[IS_IPv4];
 
-        NM_CMP_SELF(def_route_a, def_route_b);
-
-        if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_ROUTES)) {
-            NM_CMP_RETURN(nmp_object_cmp_full(def_route_a,
-                                              def_route_b,
-                                              NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_IFINDEX)
-                                                  ? NMP_OBJECT_CMP_FLAGS_NONE
-                                                  : NMP_OBJECT_CMP_FLAGS_IGNORE_IFINDEX));
-        } else if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_ROUTES_ID)) {
-            if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_IFINDEX)) {
-                NM_CMP_DIRECT(def_route_a->obj_with_ifindex.ifindex,
-                              def_route_b->obj_with_ifindex.ifindex);
-            }
+        if (def_route_a != def_route_b) {
+            if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_ROUTES)) {
+                NM_CMP_RETURN(
+                    nmp_object_cmp_full(def_route_a,
+                                        def_route_b,
+                                        NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_IFINDEX)
+                                            ? NMP_OBJECT_CMP_FLAGS_NONE
+                                            : NMP_OBJECT_CMP_FLAGS_IGNORE_IFINDEX));
+            } else if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_ROUTES_ID)) {
+                if (NM_FLAGS_HAS(flags, NM_L3_CONFIG_CMP_FLAGS_IFINDEX)) {
+                    NM_CMP_DIRECT(def_route_a->obj_with_ifindex.ifindex,
+                                  def_route_b->obj_with_ifindex.ifindex);
+                }
 
-            if (IS_IPv4) {
-                NMPlatformIP4Route ra = def_route_a->ip4_route;
-                NMPlatformIP4Route rb = def_route_b->ip4_route;
+                if (IS_IPv4) {
+                    NMPlatformIP4Route ra = def_route_a->ip4_route;
+                    NMPlatformIP4Route rb = def_route_b->ip4_route;
 
-                NM_CMP_DIRECT(ra.metric, rb.metric);
-                NM_CMP_DIRECT(ra.plen, rb.plen);
-                NM_CMP_RETURN_DIRECT(nm_ip4_addr_same_prefix_cmp(ra.network, rb.network, ra.plen));
-            } else {
-                NMPlatformIP6Route ra = def_route_a->ip6_route;
-                NMPlatformIP6Route rb = def_route_b->ip6_route;
+                    NM_CMP_DIRECT(ra.metric, rb.metric);
+                    NM_CMP_DIRECT(ra.plen, rb.plen);
+                    NM_CMP_RETURN_DIRECT(
+                        nm_ip4_addr_same_prefix_cmp(ra.network, rb.network, ra.plen));
+                } else {
+                    NMPlatformIP6Route ra = def_route_a->ip6_route;
+                    NMPlatformIP6Route rb = def_route_b->ip6_route;
 
-                NM_CMP_DIRECT(ra.metric, rb.metric);
-                NM_CMP_DIRECT(ra.plen, rb.plen);
-                NM_CMP_RETURN_DIRECT(
-                    nm_ip6_addr_same_prefix_cmp(&ra.network, &rb.network, ra.plen));
+                    NM_CMP_DIRECT(ra.metric, rb.metric);
+                    NM_CMP_DIRECT(ra.plen, rb.plen);
+                    NM_CMP_RETURN_DIRECT(
+                        nm_ip6_addr_same_prefix_cmp(&ra.network, &rb.network, ra.plen));
+                }
             }
         }