From: Roy Marples Date: Mon, 2 Mar 2015 20:37:28 +0000 (+0000) Subject: Fix route finding on Linux. X-Git-Tag: v6.8.0~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a8b97eed20c1774089f9624e9200587e7e58da2;p=thirdparty%2Fdhcpcd.git Fix route finding on Linux. --- diff --git a/ipv4.c b/ipv4.c index 21538248..3fd3b570 100644 --- 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 8f1f0216..143cecf3 100644 --- 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;