diff --git a/debian/changelog b/debian/changelog index 347dddbd3da4ae32cb2d8e307707c17f57186556..12f31dddeab054602dcbc73f8e72bbeca5336263 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ systemd (215-13) UNRELEASED; urgency=medium jessie; the next Debian release will enable timesyncd by default). (Closes: #755722) * Check for correct architecture identifiers for SuperH. (Closes: #779710) + * networkd: Fix stopping v4 dhcpclient when the carrier is lost. Thanks + Christos Trochalakis! (Closes: #779571) -- Martin Pitt Mon, 16 Feb 2015 16:11:12 +0100 diff --git a/debian/patches/networkd-link-fix-stopping-v4-dhcpclient-when-the-ca.patch b/debian/patches/networkd-link-fix-stopping-v4-dhcpclient-when-the-ca.patch new file mode 100644 index 0000000000000000000000000000000000000000..50c5896a05cef73bd5d0807e0bbd91952919120b --- /dev/null +++ b/debian/patches/networkd-link-fix-stopping-v4-dhcpclient-when-the-ca.patch @@ -0,0 +1,33 @@ +From: Christos Trochalakis +Date: Sat, 7 Feb 2015 09:23:19 +0200 +Subject: networkd: link - fix stopping v4 dhcpclient when the carrier is lost + +The check for a running v4 dhcpclient was using DHCP_SUPPORT_V6 flag +instead of DHCP_SUPPORT_V4. + +As a result, when the carrier was lost systemd was not cleaning up the +relevant addresses and routes. If the carrier was regained in another +environment, with a different subnet and gateway, the system would end +up with multiple addresses and default gateways and thus a broken +network configuration. This scenario can be easily reproduced with wifi +links. + +Bug-Debian: http://bugs.debian.org/779571 +Forwarded: No, fixed upstream in 217 as side effect of commit ba179154. +--- + src/network/networkd-link.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c +index 6257372..8c68199 100644 +--- a/src/network/networkd-link.c ++++ b/src/network/networkd-link.c +@@ -206,7 +206,7 @@ static int link_stop_clients(Link *link) { + if (!link->network) + return 0; + +- if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V6)) { ++ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V4)) { + assert(link->dhcp_client); + + k = sd_dhcp_client_stop(link->dhcp_client); diff --git a/debian/patches/series b/debian/patches/series index 828e52c017e06658504ef299c43a0076cc129ab6..d92a1265ae7e0644f22f7bb6efc336b75a244940 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -136,6 +136,7 @@ logind-fix-sd_eviocrevoke-ioctl-call.patch rules-Fix-by-path-of-mmc-RPMB-partitions-and-don-t-b.patch man-document-failed.patch Use-correct-uname-identifiers-in-arch_map-for-SuperH.patch +networkd-link-fix-stopping-v4-dhcpclient-when-the-ca.patch ## Debian specific patches: Add-back-support-for-Debian-specific-config-files.patch