Mercurial > hg > dhcpcd
changeset 4163:799ea031e1ec draft
Don't mark statically configured IPv4 routes as DHCP.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Mon, 09 Oct 2017 20:21:05 +0100 |
| parents | fbed6260b7e1 |
| children | 834aba640014 |
| files | src/dhcp.c src/ipv4.c src/route.h |
| diffstat | 3 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dhcp.c Mon Oct 09 20:11:36 2017 +0100 +++ b/src/dhcp.c Mon Oct 09 20:21:05 2017 +0100 @@ -428,7 +428,6 @@ if ((rt = rt_new(ifp)) == NULL) return -1; - rt->rt_dflags |= RTDF_DHCP; /* If we have ocets then we have a destination and netmask */ dest.s_addr = 0; @@ -633,7 +632,6 @@ continue; if ((rt = rt_new(ifp)) == NULL) return -1; - rt->rt_dflags |= RTDF_DHCP; /* A host route is normally set by having the * gateway match the destination or assigned address */ @@ -666,7 +664,6 @@ while (p < e) { if ((rt = rt_new(ifp)) == NULL) return -1; - rt->rt_dflags |= RTDF_DHCP; memcpy(&gateway.s_addr, p, sizeof(gateway.s_addr)); p += 4; sa_in_init(&rt->rt_dest, &dest);
--- a/src/ipv4.c Mon Oct 09 20:11:36 2017 +0100 +++ b/src/ipv4.c Mon Oct 09 20:21:05 2017 +0100 @@ -266,7 +266,7 @@ /* First, add a subnet route. */ if (!(ifp->flags & IFF_POINTOPOINT) && #ifndef BSD - /* BSD adds a route in this instance */ + /* BSD adds a route in this instance */ state->addr->mask.s_addr != INADDR_BROADCAST && #endif state->addr->mask.s_addr != INADDR_ANY) @@ -291,6 +291,7 @@ break; if ((rt = rt_new(ifp)) == NULL) return -1; + rt->rt_dflags = RTDF_STATIC; memcpy(rt, r, sizeof(*rt)); TAILQ_INSERT_TAIL(&nroutes, rt, rt_next); } @@ -319,6 +320,8 @@ n = 0; TAILQ_FOREACH(rt, &nroutes, rt_next) { rt->rt_mtu = mtu; + if (!(rt->rt_dflags & RTDF_STATIC)) + rt->rt_dflags |= RTDF_DHCP; sa_in_init(&rt->rt_ifa, &state->addr->addr); n++; }
--- a/src/route.h Mon Oct 09 20:11:36 2017 +0100 +++ b/src/route.h Mon Oct 09 20:21:05 2017 +0100 @@ -77,6 +77,7 @@ #define RTDF_FAKE 0x04 /* Maybe us on lease reboot */ #define RTDF_RA 0x08 /* Router Advertisement */ #define RTDF_DHCP 0x10 /* DHCP route */ +#define RTDF_STATIC 0x20 /* Configured in dhcpcd */ }; TAILQ_HEAD(rt_head, rt);
