diff options
author | Thomas Haller <thaller@redhat.com> | 2019-04-17 11:04:10 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-04-18 11:16:09 +0200 |
commit | b843c1eab8a119663116bc487b9ade40bc7f5754 (patch) | |
tree | 9a178cce3d410c6541390e346f3a8b0ef8c9cca4 | |
parent | 6a6d982c01a2450d5ea0d3930bcd2f39c44d809f (diff) |
platform: compare routing rules according to kernel support for FRA_UID_RANGE
-rw-r--r-- | src/platform/nm-platform.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index aaefb37984..c9b99987cb 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -7457,7 +7457,10 @@ nm_platform_routing_rule_hash_update (const NMPlatformRoutingRule *obj, ? obj->flow : (guint32) 0u), NM_HASH_COMBINE_BOOLS (guint8, - obj->uid_range_has), + ( _routing_rule_compare (cmp_type, + NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_UID_RANGE) + ? obj->uid_range_has + : FALSE)), obj->suppress_prefixlen_inverse, obj->suppress_ifgroup_inverse, ( cmp_full @@ -7476,8 +7479,11 @@ nm_platform_routing_rule_hash_update (const NMPlatformRoutingRule *obj, nm_hash_update (h, &obj->src, addr_size); if (cmp_full || obj->dst_len > 0) nm_hash_update (h, &obj->dst, addr_size); - if (cmp_full || obj->uid_range_has) - nm_hash_update_valp (h, &obj->uid_range); + if (_routing_rule_compare (cmp_type, + NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_UID_RANGE)) { + if (cmp_full || obj->uid_range_has) + nm_hash_update_valp (h, &obj->uid_range); + } if (_routing_rule_compare (cmp_type, NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_IP_PROTO)) { nm_hash_update_val (h, obj->ip_proto); @@ -7582,10 +7588,13 @@ nm_platform_routing_rule_cmp (const NMPlatformRoutingRule *a, if (cmp_full || a->dst_len > 0) NM_CMP_FIELD_MEMCMP_LEN (a, b, dst, addr_size); - NM_CMP_FIELD_UNSAFE (a, b, uid_range_has); - if (cmp_full || a->uid_range_has) { - NM_CMP_FIELD (a, b, uid_range.start); - NM_CMP_FIELD (a, b, uid_range.end); + if (_routing_rule_compare (cmp_type, + NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_UID_RANGE)) { + NM_CMP_FIELD_UNSAFE (a, b, uid_range_has); + if (cmp_full || a->uid_range_has) { + NM_CMP_FIELD (a, b, uid_range.start); + NM_CMP_FIELD (a, b, uid_range.end); + } } NM_CMP_FIELD_STR (a, b, iifname); |