Mercurial > hg > dhcpcd
changeset 4536:ce9e8fb0e6a3 draft
route: Build list of static routes and routers correctly.
They they need to be inserted by rt_proto_add().
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Tue, 18 Jun 2019 17:35:23 +0100 |
| parents | 003dc9907bba |
| children | 37f793c7948e a51511507597 |
| files | src/dhcp.c |
| diffstat | 1 files changed, 3 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dhcp.c Fri Jun 14 17:05:24 2019 +0100 +++ b/src/dhcp.c Tue Jun 18 17:35:23 2019 +0100 @@ -656,9 +656,7 @@ sa_in_init(&rt->rt_dest, &dest); sa_in_init(&rt->rt_netmask, &netmask); sa_in_init(&rt->rt_gateway, &gateway); - if (rb_tree_insert_node(routes, rt) != rt) - rt_free(rt); - else + if (rt_proto_add(routes, rt)) n++; } } @@ -668,7 +666,7 @@ p = get_option(ifp->ctx, bootp, bootp_len, DHO_ROUTER, &len); else p = NULL; - if (p) { + if (p && len % 4 == 0) { e = p + len; dest.s_addr = INADDR_ANY; netmask.s_addr = INADDR_ANY; @@ -680,9 +678,7 @@ sa_in_init(&rt->rt_dest, &dest); sa_in_init(&rt->rt_netmask, &netmask); sa_in_init(&rt->rt_gateway, &gateway); - if (rb_tree_insert_node(routes, rt) != rt) - rt_free(rt); - else + if (rt_proto_add(routes, rt)) n++; } }
