Bug#869995: Still present in stretch versions, patch attached

Marc Haber mh+debian-bugs at zugschlus.de
Sun Mar 11 18:29:07 GMT 2018


unarchive #869995

found #869995 232-25+deb9u1
found #869995 232-25+deb9u2
tags #869995 patch stretch
thanks

Hi,

I have missed that this bug was actually closed for good. I can confirm
that the issue is fixed in sid and buster, but is is still a crippling
bug in stretch.

I can confirm that the two attached patches fix the issue in 232-25.

Please consider adding those patches for one of the next point releases.

Greetings
Marc


-------------- next part --------------
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -918,5 +918,8 @@ int config_parse_address_flags(const cha
 bool address_is_ready(const Address *a) {
         assert(a);
 
-        return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED));
+	if (a->family == AF_INET6)
+		return !(a->flags & (IFA_F_TENTATIVE));
+	else
+		return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED));
 }
--- a/src/network/networkd-ndisc.c
+++ b/src/network/networkd-ndisc.c
@@ -165,6 +165,10 @@ static void ndisc_router_process_autonom
                 return;
         }
 
+        /* The preferred lifetime is never greater than the valid lifetime */
+        if (lifetime_preferred > lifetime_valid)
+                return;
+
         r = address_new(&address);
         if (r < 0) {
                 log_link_error_errno(link, r, "Could not allocate address: %m");

-------------- next part --------------
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -91,6 +91,10 @@ static bool link_ipv4ll_enabled(Link *li
 }
 
 static bool link_ipv6ll_enabled(Link *link) {
+        _cleanup_free_ char *disable_ipv6 = NULL;
+        const char *p = NULL;
+        int r;
+
         assert(link);
 
         if (!socket_ipv6_is_supported())
@@ -101,6 +105,12 @@ static bool link_ipv6ll_enabled(Link *li
 
         if (!link->network)
                 return false;
+        p = strjoina("/proc/sys/net/ipv6/conf/", link->ifname, "/disable_ipv6");
+        r = read_one_line_file(p, &disable_ipv6);
+        if (r >= 0) {
+                if (streq(disable_ipv6, "1"))
+                        return false;
+        }
 
         return link->network->link_local & ADDRESS_FAMILY_IPV6;
 }
@@ -1636,6 +1646,9 @@ static int link_up_handler(sd_netlink *r
                    brought up later */
                 log_link_warning_errno(link, r, "Could not bring up interface: %m");
 
+        printf("link_up_handler= %s\n", link->ifname);
+        link_check_ready(link);
+
         return 1;
 }
 



More information about the Pkg-systemd-maintainers mailing list