38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
# do_flush() flushes every active network interface. It is intended to
|
|
# run before NetworkManager starts, so that when it does it will be able
|
|
# to set up the network using the regular host configuration.
|
|
do_flush() {
|
|
for f in /sys/class/net/*; do
|
|
iface="${f##*/}"
|
|
[ "${iface}" = "lo" ] && continue
|
|
echo "Preparing to flush interface ${iface}" >&2
|
|
ip -statistics address flush dev "${iface}"
|
|
rm -f /run/NetworkManager/system-connections/default_connection.nmconnection >&2
|
|
done
|
|
}
|
|
|
|
# reset_autoconn_prio() will reset the autoconnect priority
|
|
# of the existing NM connections to zero.
|
|
reset_autoconn_prio() {
|
|
nmcli -t -f NAME connection show 2>/dev/null | while read -r _c; do
|
|
if ! _prio="$(nmcli -t connection show "${_c}" \
|
|
| grep connection.autoconnect-priority: \
|
|
| cut -d: -f2)" || [ -z "${_prio}" ]; then
|
|
continue
|
|
fi
|
|
[ "${_prio}" -ge 0 ] && continue
|
|
echo "Setting autoconnect-priority of connection ${_c} to zero" >&2
|
|
nmcli connection modify "${_c}" connection.autoconnect-priority 0
|
|
done
|
|
}
|
|
|
|
case "${1}" in
|
|
reset-autoconn-prio)
|
|
reset_autoconn_prio;;
|
|
flush)
|
|
do_flush;;
|
|
esac
|
|
|
|
# vim:set ts=2 sw=2 et:
|