From: Roy Marples Date: Sat, 26 Aug 2017 14:08:04 +0000 (+0100) Subject: Don't create temporary addresses based off prefix in newaddr. X-Git-Tag: v7.0.0-rc2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=395eadad309e18127e8bd2aab705e4282ae6e143;p=thirdparty%2Fdhcpcd.git Don't create temporary addresses based off prefix in newaddr. --- diff --git a/src/ipv6.c b/src/ipv6.c index 61e5f23b..aeeac482 100644 --- a/src/ipv6.c +++ b/src/ipv6.c @@ -1452,6 +1452,7 @@ ipv6_newaddr(struct interface *ifp, struct in6_addr *addr, uint8_t prefix_len, struct ipv6_addr *ia; char buf[INET6_ADDRSTRLEN]; const char *cbp; + bool tempaddr; ia = calloc(1, sizeof(*ia)); if (ia == NULL) @@ -1462,7 +1463,13 @@ ipv6_newaddr(struct interface *ifp, struct in6_addr *addr, uint8_t prefix_len, ia->addr_flags = IN6_IFF_TENTATIVE; ia->prefix_len = prefix_len; - if (ia->flags & IPV6_AF_AUTOCONF) { +#ifdef IPV6_AF_TEMPORARY + tempaddr = ia->flags & IPV6_AF_TEMPORARY; +#else + tempaddr = false; +#endif + + if (ia->flags & IPV6_AF_AUTOCONF && !tempaddr) { ia->prefix = *addr; ia->dadcounter = ipv6_makeaddr(&ia->addr, ifp, &ia->prefix,