summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2016-11-18 17:40:21 +0000
committerRoy Marples <roy@marples.name>2016-11-18 17:40:21 +0000
commit469536a5564ddf5bfd4443774b611208d69831dc (patch)
tree44cb87c5016a91495a30d945b953f40cca891690
parent4e1dc4c527dffaf0b8a02b1d0ea24922a3f227d6 (diff)
downloaddhcpcd-469536a5564ddf5bfd4443774b611208d69831dc.tar.xz
Stop spamming each route change needlessly.
-rw-r--r--route.c14
1 files changed, 6 insertions, 8 deletions
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;
}
}