diff options
| author | Roy Marples <roy@marples.name> | 2016-11-18 17:40:21 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2016-11-18 17:40:21 +0000 |
| commit | 469536a5564ddf5bfd4443774b611208d69831dc (patch) | |
| tree | 44cb87c5016a91495a30d945b953f40cca891690 | |
| parent | 4e1dc4c527dffaf0b8a02b1d0ea24922a3f227d6 (diff) | |
| download | dhcpcd-469536a5564ddf5bfd4443774b611208d69831dc.tar.xz | |
Stop spamming each route change needlessly.
| -rw-r--r-- | route.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -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; } } |
