examples: update NetworkManager dispatcher script
Replace most of the code with the new onoffline command.
This commit is contained in:
parent
34db671b57
commit
8a57a28177
1 changed files with 1 additions and 27 deletions
|
@ -10,32 +10,6 @@ export LC_ALL=C
|
||||||
|
|
||||||
# Note: for networkd-dispatcher routable.d ~= on and off.d ~= off
|
# Note: for networkd-dispatcher routable.d ~= on and off.d ~= off
|
||||||
|
|
||||||
# Check if there is a default route
|
chronyc onoffline > /dev/null 2>&1
|
||||||
|
|
||||||
if /sbin/ip route list 2> /dev/null | grep -q '^default'; then
|
|
||||||
chronyc online > /dev/null 2>&1
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
sources=$(chronyc -c -n sources 2> /dev/null)
|
|
||||||
|
|
||||||
[ $? -ne 0 ] && exit 0
|
|
||||||
|
|
||||||
# Check each configured source if it has a route
|
|
||||||
|
|
||||||
echo "$sources" | while IFS=, read mode state address rest; do
|
|
||||||
[ "$mode" != '^' ] && [ "$mode" != '=' ] && continue
|
|
||||||
|
|
||||||
/sbin/ip route get "$address" > /dev/null 2>&1 && command="online" || command="offline"
|
|
||||||
|
|
||||||
# Set priority of sources so that the selected source is set as
|
|
||||||
# last if offline to avoid unnecessary reselection
|
|
||||||
[ "$state" != '*' ] && priority=1 || priority=2
|
|
||||||
|
|
||||||
echo "$priority $command $address"
|
|
||||||
|
|
||||||
done | sort | while read priority command address; do
|
|
||||||
echo "$command $address"
|
|
||||||
done | chronyc > /dev/null 2>&1
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue