From 199e5ab0258e8fdddbc279d17cd1b81463d4103e Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Wed, 17 Apr 2019 08:17:07 +0000 Subject: [PATCH] Forgot these from merge --- src/ipv4.h | 2 +- src/route.c | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/ipv4.h b/src/ipv4.h index 1f8c3a30..388a5870 100644 --- a/src/ipv4.h +++ b/src/ipv4.h @@ -116,7 +116,7 @@ int inet_cidrtoaddr(int, struct in_addr *); uint32_t ipv4_getnetmask(uint32_t); int ipv4_hasaddr(const struct interface *); -bool inet_getroutes(struct dhcpcd_ctx *, rb_tree_t *); +bool inet_getroutes(struct dhcpcd_ctx *, rb_tree_t *, rb_tree_t *); #define STATE_ADDED 0x01 #define STATE_FAKE 0x02 diff --git a/src/route.c b/src/route.c index 20e6f679..b6190565 100644 --- a/src/route.c +++ b/src/route.c @@ -585,18 +585,19 @@ rt_doroute(rb_tree_t *kroutes, struct rt *rt) void rt_build(struct dhcpcd_ctx *ctx, int af) { - rb_tree_t kroutes, routes, added; + rb_tree_t routes, added, kroutes; struct rt *rt, *rtn; unsigned long long o; - rb_tree_init(&kroutes, &rt_compare_os_ops); rb_tree_init(&routes, &rt_compare_list_ops); rb_tree_init(&added, &rt_compare_os_ops); + rb_tree_init(&kroutes, &rt_compare_os_ops); + if_initrt(ctx, &kroutes, af); switch (af) { #ifdef INET case AF_INET: - if (!inet_getroutes(ctx, &routes)) + if (!inet_getroutes(ctx, &routes, &kroutes)) goto getfail; break; #endif @@ -608,8 +609,6 @@ rt_build(struct dhcpcd_ctx *ctx, int af) #endif } - if_initrt(ctx, &kroutes, af); - RB_TREE_FOREACH_SAFE(rt, &routes, rtn) { if (rt->rt_dest.sa_family != af && rt->rt_gateway.sa_family != af) -- 2.47.3