Mercurial > hg > dhcpcd
changeset 4161:a40c7c100a45 draft
Set RA routes as RA in supported OS's.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Mon, 09 Oct 2017 19:57:09 +0100 |
| parents | 4746922d79a3 |
| children | fbed6260b7e1 |
| files | src/if-linux.c src/ipv6.c src/route.h |
| diffstat | 3 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if-linux.c Mon Oct 09 10:28:03 2017 +0100 +++ b/src/if-linux.c Mon Oct 09 19:57:09 2017 +0100 @@ -1221,6 +1221,11 @@ } else { /* Address generated routes are RTPROT_KERNEL, * otherwise RTPROT_BOOT */ +#ifdef RTPROT_RA + if (rt->rt_dflags & RTDF_RA) + nlm.rt.rtm_protocol = RTPROT_RA; + else +#endif if (rt->rt_dflags & RTDF_IFA_ROUTE) nlm.rt.rtm_protocol = RTPROT_KERNEL; else
--- a/src/ipv6.c Mon Oct 09 10:28:03 2017 +0100 +++ b/src/ipv6.c Mon Oct 09 19:57:09 2017 +0100 @@ -2136,8 +2136,10 @@ #ifdef HAVE_ROUTE_METRIC rt->rt_metric = ifp->metric; #endif - if (rap != NULL) + if (rap != NULL) { rt->rt_mtu = rap->mtu; + rt->rt_dflags |= RTDF_RA; + } return rt; }
--- a/src/route.h Mon Oct 09 10:28:03 2017 +0100 +++ b/src/route.h Mon Oct 09 19:57:09 2017 +0100 @@ -72,9 +72,10 @@ unsigned int rt_metric; #endif unsigned int rt_dflags; -#define RTDF_INIT 0x01 /* Generated by if_initrt() */ -#define RTDF_IFA_ROUTE 0x02 /* Address generated route */ -#define RTDF_FAKE 0x04 /* Maybe us on lease reboot */ +#define RTDF_INIT 0x01 /* Generated by if_initrt() */ +#define RTDF_IFA_ROUTE 0x02 /* Address generated route */ +#define RTDF_FAKE 0x04 /* Maybe us on lease reboot */ +#define RTDF_RA 0x08 /* Router Advertisement */ }; TAILQ_HEAD(rt_head, rt);
