From patchwork Mon Aug 28 23:27:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonatan Schlag X-Patchwork-Id: 1394 Return-Path: Received: from mail01.ipfire.org by mail01.ipfire.org (Dovecot) with LMTP id GRiQAzkapFmAGQAAmDronw ; Mon, 28 Aug 2017 15:27:21 +0200 Received: from mail01.ipfire.org (localhost [IPv6:::1]) by mail01.ipfire.org (Postfix) with ESMTP id D280527C8; Mon, 28 Aug 2017 15:27:20 +0200 (CEST) Received: from ipfire.localdomain (dslb-088-073-207-162.088.073.pools.vodafone-ip.de [88.73.207.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 94E0F27C8; Mon, 28 Aug 2017 15:27:18 +0200 (CEST) From: Jonatan Schlag To: network@lists.ipfire.org Subject: [PATCH] dhclient-script: fix bound Date: Mon, 28 Aug 2017 15:27:12 +0200 Message-Id: <1503926835-2098-1-git-send-email-jonatan.schlag@ipfire.org> X-Mailer: git-send-email 2.6.3 X-BeenThere: network@lists.ipfire.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List for the network package List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: network-bounces@lists.ipfire.org Sender: "network" When we get a BOUND we should have only new_* variables set. So it is stated in the manpage. Apparently, also old_* variables are set so we never got into the block where the IP address was set. We now always set a new IP Address when we get a BOUND. Fixes: #11363 Signed-off-by: Jonatan Schlag Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org> --- src/dhclient-script | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dhclient-script b/src/dhclient-script index c2e0678..ec990bf 100644 --- a/src/dhclient-script +++ b/src/dhclient-script @@ -197,7 +197,8 @@ case "${reason}" in BOUND|RENEW|REBIND|REBOOT) # Check if the IP address has changed. If so, delete all routes and stuff. - if [ -n "${old_ip_address}" -a "${old_ip_address}" != "${new_ip_address}" ]; then + if [ -n "${old_ip_address}" -a "${old_ip_address}" != "${new_ip_address}" ] || \ + [ "${reason}" = "BOUND" ]; then ipv4_flush_device ${interface} fi @@ -208,7 +209,8 @@ case "${reason}" in [ ! "${old_network_number}" = "${new_network_number}" ] || \ [ ! "${old_broadcast_address}" = "${new_broadcast_address}" ] || \ [ ! "${old_routers}" = "${new_routers}" ] || \ - [ ! "${old_interface_mtu}" = "${new_interface_mtu}" ]; then + [ ! "${old_interface_mtu}" = "${new_interface_mtu}" ] || \ + [ "${reason}" = "BOUND" ]; then # Calc the prefix from the subnet mask