From: Roy Marples Date: Fri, 18 Nov 2016 17:40:21 +0000 (+0000) Subject: Stop spamming each route change needlessly. X-Git-Tag: v7.0.0-beta1~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=469536a5564ddf5bfd4443774b611208d69831dc;p=thirdparty%2Fdhcpcd.git Stop spamming each route change needlessly. --- diff --git a/route.c b/route.c index 11407c0e..e627ebf3 100644 --- a/route.c +++ b/route.c @@ -425,7 +425,7 @@ rt_doroute(struct rt *rt) if (rt->rt_dflags & RTDF_FAKE) return true; if (or->rt_dflags & RTDF_FAKE || - !rt_cmp(rt,or) || + !rt_cmp(rt, or) || (rt->rt_ifa.sa_family != AF_UNSPEC && sa_cmp(&or->rt_ifa, &rt->rt_ifa) != 0) || or->rt_mtu != rt->rt_mtu) @@ -436,13 +436,11 @@ rt_doroute(struct rt *rt) TAILQ_REMOVE(&ctx->routes, or, rt_next); rt_free(or); } else { - if (rt->rt_dflags & RTDF_FAKE) { - if ((or = rt_find(&ctx->kroutes, rt)) == NULL) - return false; - if (!rt_cmp(rt, or)) - return false; - } else { - if (!rt_add(rt, NULL)) + or = rt_find(&ctx->kroutes, rt); + if ((or == NULL || !rt_cmp(rt, or)) && + !(rt->rt_dflags & RTDF_FAKE)) + { + if (!rt_add(rt, or)) return false; } }