0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-11 21:06:19 +03:00

nixos/networking: check interface state files exist before acting on them

Fix #89158
This commit is contained in:
datafoo 2020-05-29 12:20:06 +02:00
parent d9f9fcfd16
commit 8f16f66b27

View file

@ -232,18 +232,22 @@ let
''; '';
preStop = '' preStop = ''
state="/run/nixos/network/routes/${i.name}" state="/run/nixos/network/routes/${i.name}"
while read cidr; do if [ -e "$state" ]; then
echo -n "deleting route $cidr... " while read cidr; do
ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" echo -n "deleting route $cidr... "
done < "$state" ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
rm -f "$state" done < "$state"
rm -f "$state"
fi
state="/run/nixos/network/addresses/${i.name}" state="/run/nixos/network/addresses/${i.name}"
while read cidr; do if [ -e "$state" ]; then
echo -n "deleting address $cidr... " while read cidr; do
ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed" echo -n "deleting address $cidr... "
done < "$state" ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
rm -f "$state" done < "$state"
rm -f "$state"
fi
''; '';
}; };