Mercurial > hg > dhcpcd
changeset 4974:24da8e4ccf61 draft
inet6: Support a /128 autoconf prefix from RA
This is apparently a thing. Unsure why, but heh ho.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Fri, 17 Jan 2020 13:22:57 +0000 |
| parents | e869060a49dc |
| children | eeebfa2bcda5 |
| files | src/ipv6.c |
| diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ipv6.c Fri Jan 03 09:48:44 2020 +0000 +++ b/src/ipv6.c Fri Jan 17 13:22:57 2020 +0000 @@ -1565,7 +1565,9 @@ tempaddr = false; #endif - if (ia->flags & IPV6_AF_AUTOCONF && !tempaddr) { + if (prefix_len == 128) + goto makepfx; + else if (ia->flags & IPV6_AF_AUTOCONF && !tempaddr) { ia->prefix = *addr; ia->dadcounter = ipv6_makeaddr(&ia->addr, ifp, &ia->prefix, @@ -1581,13 +1583,12 @@ #else return ia; #endif - } else if (ia->flags & (IPV6_AF_REQUEST | IPV6_AF_DELEGATEDPFX) && - prefix_len != 128) - { + } else if (ia->flags & (IPV6_AF_REQUEST | IPV6_AF_DELEGATEDPFX)) { ia->prefix = *addr; cbp = inet_ntop(AF_INET6, &ia->prefix, buf, sizeof(buf)); goto paddr; } else { +makepfx: ia->addr = *addr; if (ipv6_makeprefix(&ia->prefix, &ia->addr, ia->prefix_len) == -1)
