platform: compare routing rules according to kernel support for FRA_UID_RANGE
This commit is contained in:
@@ -7457,7 +7457,10 @@ nm_platform_routing_rule_hash_update (const NMPlatformRoutingRule *obj,
|
|||||||
? obj->flow
|
? obj->flow
|
||||||
: (guint32) 0u),
|
: (guint32) 0u),
|
||||||
NM_HASH_COMBINE_BOOLS (guint8,
|
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_prefixlen_inverse,
|
||||||
obj->suppress_ifgroup_inverse,
|
obj->suppress_ifgroup_inverse,
|
||||||
( cmp_full
|
( cmp_full
|
||||||
@@ -7476,8 +7479,11 @@ nm_platform_routing_rule_hash_update (const NMPlatformRoutingRule *obj,
|
|||||||
nm_hash_update (h, &obj->src, addr_size);
|
nm_hash_update (h, &obj->src, addr_size);
|
||||||
if (cmp_full || obj->dst_len > 0)
|
if (cmp_full || obj->dst_len > 0)
|
||||||
nm_hash_update (h, &obj->dst, addr_size);
|
nm_hash_update (h, &obj->dst, addr_size);
|
||||||
if (cmp_full || obj->uid_range_has)
|
if (_routing_rule_compare (cmp_type,
|
||||||
nm_hash_update_valp (h, &obj->uid_range);
|
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,
|
if (_routing_rule_compare (cmp_type,
|
||||||
NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_IP_PROTO)) {
|
NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_IP_PROTO)) {
|
||||||
nm_hash_update_val (h, obj->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)
|
if (cmp_full || a->dst_len > 0)
|
||||||
NM_CMP_FIELD_MEMCMP_LEN (a, b, dst, addr_size);
|
NM_CMP_FIELD_MEMCMP_LEN (a, b, dst, addr_size);
|
||||||
|
|
||||||
NM_CMP_FIELD_UNSAFE (a, b, uid_range_has);
|
if (_routing_rule_compare (cmp_type,
|
||||||
if (cmp_full || a->uid_range_has) {
|
NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_UID_RANGE)) {
|
||||||
NM_CMP_FIELD (a, b, uid_range.start);
|
NM_CMP_FIELD_UNSAFE (a, b, uid_range_has);
|
||||||
NM_CMP_FIELD (a, b, uid_range.end);
|
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);
|
NM_CMP_FIELD_STR (a, b, iifname);
|
||||||
|
Reference in New Issue
Block a user