networkd: unbreak routing_policy_rule_compare_func()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 17 Sep 2019 17:27:58 +0000 (19:27 +0200)
committerMichael Biebl <biebl@debian.org>
Tue, 19 Nov 2019 08:17:12 +0000 (08:17 +0000)
!r is the same r == 0, so this was short-circuiting the comparison when
streq(a->iff, b->iff) or streq(a->off, b->off). Before the parent commit which
moved those comparisons to the end, this was short-circuiting quite a bit
of the comparison function.

(cherry picked from commit 314ed4f9948bb73300862935546a63294bba1d5c)
(cherry picked from commit 19ac31c989d9facbd90c497f3708ee4d88686de8)

Gbp-Pq: Name networkd-unbreak-routing_policy_rule_compare_func.patch

src/network/networkd-routing-policy-rule.c

index f032169aebf4a7dca5599bbdf789d3b1b26a34d0..40ac3f06c5d186da10d4292903819217da54d945 100644 (file)
@@ -180,11 +180,11 @@ static int routing_policy_rule_compare_func(const RoutingPolicyRule *a, const Ro
                         return r;
 
                 r = strcmp_ptr(a->iif, b->iif);
-                if (!r)
+                if (r != 0)
                         return r;
 
                 r = strcmp_ptr(a->oif, b->oif);
-                if (!r)
+                if (r != 0)
                         return r;
 
                 r = CMP(a->protocol, b->protocol);