]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix route finding on Linux.
authorRoy Marples <roy@marples.name>
Mon, 2 Mar 2015 20:37:28 +0000 (20:37 +0000)
committerRoy Marples <roy@marples.name>
Mon, 2 Mar 2015 20:37:28 +0000 (20:37 +0000)
ipv4.c
ipv6.c

diff --git a/ipv4.c b/ipv4.c
index 21538248401fccb7e2d45e4f3c28f1f28d0643a1..3fd3b5701e1a7f2633164b28dda9d4172f76438f 100644 (file)
--- a/ipv4.c
+++ b/ipv4.c
@@ -338,9 +338,11 @@ ipv4_findrt(struct dhcpcd_ctx *ctx, const struct rt *rt, int flags)
                return NULL;
        TAILQ_FOREACH(r, ctx->ipv4_kroutes, next) {
                if (rt->dest.s_addr == r->dest.s_addr &&
-                   (!flags || rt->iface == r->iface) &&
 #ifdef HAVE_ROUTE_METRIC
+                   rt->iface == r->iface &&
                    (!flags || rt->metric == r->metric) &&
+#else
+                   (!flags || rt->iface == r->iface) &&
 #endif
                    rt->net.s_addr == r->net.s_addr)
                        return r;
diff --git a/ipv6.c b/ipv6.c
index 8f1f02161ed0ee44934d4578b93ddc9dadd0539f..143cecf387547d96ca9202959a13a4dd4a37aa19 100644 (file)
--- a/ipv6.c
+++ b/ipv6.c
@@ -1741,7 +1741,10 @@ ipv6_findrt(struct dhcpcd_ctx *ctx, const struct rt6 *rt, int flags)
                if (IN6_ARE_ADDR_EQUAL(&rt->dest, &r->dest) &&
                    (!flags || rt->iface == r->iface) &&
 #ifdef HAVE_ROUTE_METRIC
+                   rt->iface == r->iface &&
                    (!flags || rt->metric == r->metric) &&
+#else
+                   (!flags || rt->iface == r->iface) &&
 #endif
                    IN6_ARE_ADDR_EQUAL(&rt->net, &r->net))
                        return r;