]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Fix IPv6PrivacyExtension (networkd-ndisc.c) 2337/head
authorDominik Hannen <dhxgit@users.noreply.github.com>
Fri, 15 Jan 2016 22:39:54 +0000 (23:39 +0100)
committerDominik Hannen <cantares1+git@gmail.com>
Fri, 15 Jan 2016 23:44:46 +0000 (00:44 +0100)
This small addition fixes the issues #1982 and #2242.
IPv6PrivacyExtension now works as expected even when a RA is received.

src/basic/missing.h
src/network/networkd-ndisc.c

index 2d2785beadfc3354cec4b068dc649606a171fa35..c187afa287bc2dadea0d4f1db5d401bc81bf2392 100644 (file)
@@ -974,6 +974,10 @@ static inline int setns(int fd, int nstype) {
 #define IFA_FLAGS 8
 #endif
 
+#ifndef IFA_F_MANAGETEMPADDR
+#define IFA_F_MANAGETEMPADDR 0x100
+#endif
+
 #ifndef IFA_F_NOPREFIXROUTE
 #define IFA_F_NOPREFIXROUTE 0x200
 #endif
index ce9e513ceb23b418eabe4be79bf0976d86b27b13..483efd17c3994d16fb2d9c0ab2d88e6e2244192b 100644 (file)
@@ -89,7 +89,7 @@ static void ndisc_prefix_autonomous_handler(sd_ndisc *nd, const struct in6_addr
                 address->in_addr.in6.__in6_u.__u6_addr8[15] = link->mac.ether_addr_octet[5];
         }
         address->prefixlen = prefixlen;
-        address->flags = IFA_F_NOPREFIXROUTE;
+        address->flags = IFA_F_NOPREFIXROUTE|IFA_F_MANAGETEMPADDR;
         address->cinfo.ifa_prefered = lifetime_preferred;
         address->cinfo.ifa_valid = lifetime_valid;