diff options
author | datafoo <34766150+datafoo@users.noreply.github.com> | 2020-05-29 12:20:06 +0200 |
---|---|---|
committer | datafoo <34766150+datafoo@users.noreply.github.com> | 2020-05-29 12:20:06 +0200 |
commit | 8f16f66b27c6abcfaa04244f9e715376035dcfcb (patch) | |
tree | edbf6df4b3ae70e211b65ec945110118d91c79cd /nixos | |
parent | d9f9fcfd164bd7e48ad9da757979694474a223d5 (diff) | |
download | nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar.gz nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar.bz2 nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar.lz nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar.xz nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.tar.zst nixlib-8f16f66b27c6abcfaa04244f9e715376035dcfcb.zip |
nixos/networking: check interface state files exist before acting on them
Fix #89158
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/tasks/network-interfaces-scripted.nix | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index d895c58bab03..2e87197176b6 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -232,18 +232,22 @@ let ''; preStop = '' state="/run/nixos/network/routes/${i.name}" - while read cidr; do - echo -n "deleting route $cidr... " - ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" - done < "$state" - rm -f "$state" + if [ -e "$state" ]; then + while read cidr; do + echo -n "deleting route $cidr... " + ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" + done < "$state" + rm -f "$state" + fi state="/run/nixos/network/addresses/${i.name}" - while read cidr; do - echo -n "deleting address $cidr... " - ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" - done < "$state" - rm -f "$state" + if [ -e "$state" ]; then + while read cidr; do + echo -n "deleting address $cidr... " + ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" + done < "$state" + rm -f "$state" + fi ''; }; |