Merge pull request #317 from s-hamann/master

Fix infinite loop when run in a network namespace with NetworkManager outside the namespace
This commit is contained in:
oblique
2020-06-23 10:19:18 +03:00
committed by GitHub

View File

@ -477,8 +477,15 @@ networkmanager_is_running() {
[[ -n "$NMCLI_OUT" ]] [[ -n "$NMCLI_OUT" ]]
} }
networkmanager_knows_iface() {
# check if the interface $1 is known to NetworkManager
# an interface may exist but may not be known to NetworkManager if it is in a different network namespace than NetworkManager
nmcli -t -f DEVICE d 2>&1 | grep -Fxq "$1"
}
networkmanager_iface_is_unmanaged() { networkmanager_iface_is_unmanaged() {
is_interface "$1" || return 2 is_interface "$1" || return 2
networkmanager_knows_iface "$1" || return 0
(nmcli -t -f DEVICE,STATE d 2>&1 | grep -E "^$1:unmanaged$" > /dev/null 2>&1) || return 1 (nmcli -t -f DEVICE,STATE d 2>&1 | grep -E "^$1:unmanaged$" > /dev/null 2>&1) || return 1
} }