Bug#869995: Still present in stretch versions, patch attached
Marc Haber
mh+debian-bugs at zugschlus.de
Sun Mar 11 18:48:30 GMT 2018
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