commit 7261ef8b2183e1285650046bedd606a187d1846e
parent 489d1843b5ffab53e67541af4a373b12cda7008f
Author: Daniel Barlow <dan@telent.net>
Date: Tue, 4 Nov 2025 21:45:48 +0000
DHCPNAK means we can't use the requested address
so probably we should flush it
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules/dhcp4c/client.nix b/modules/dhcp4c/client.nix
@@ -17,7 +17,10 @@ let
. ${serviceFns}
exec 2>&1
action=$1
-
+ unset_address() {
+ ip -4 address flush $interface
+ ip link set up dev $interface
+ }
set_address() {
ip address replace $ip/$mask dev $interface
(in_outputs ${name}
@@ -28,8 +31,7 @@ let
}
case $action in
deconfig)
- ip address flush $interface
- ip link set up dev $interface
+ unset_address
;;
bound)
# this doesn't actually replace, it adds a new address.
@@ -40,6 +42,7 @@ let
;;
nak)
echo "received NAK on $interface"
+ unset_address
;;
esac
'';