]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix prefix delegation.
authorRoy Marples <roy@marples.name>
Fri, 8 Sep 2017 19:19:02 +0000 (20:19 +0100)
committerRoy Marples <roy@marples.name>
Sat, 9 Sep 2017 22:51:37 +0000 (23:51 +0100)
Reviewers: smlx

Reviewed By: smlx

Subscribers: smlx

Differential Revision: https://dev.marples.name/D128

src/ipv6.c

index c62ee6101b3be7802e94d449155c0d0600a5e0e7..da0f64dbb82d11bfa09e04b3c558508b80e52189 100644 (file)
@@ -1306,7 +1306,6 @@ ipv6_newlinklocal(struct interface *ifp)
        if (ia != NULL) {
                ia->prefix_pltime = ND6_INFINITE_LIFETIME;
                ia->prefix_vltime = ND6_INFINITE_LIFETIME;
-               ia->addr_flags = IN6_IFF_TENTATIVE;
        }
        return ia;
 }
@@ -1497,7 +1496,9 @@ ipv6_newaddr(struct interface *ifp, struct in6_addr *addr, uint8_t prefix_len,
        } else if (ia->flags & IPV6_AF_RAPFX) {
                ia->prefix = *addr;
                return ia;
-       } else if (ia->flags & IPV6_AF_REQUEST && prefix_len != 128) {
+       } else if (ia->flags & (IPV6_AF_REQUEST | IPV6_AF_DELEGATEDPFX) &&
+                  prefix_len != 128)
+       {
                ia->prefix = *addr;
                cbp = inet_ntop(AF_INET6, &ia->prefix, buf, sizeof(buf));
                goto paddr;