From 8d5542c45e37af5a50b6d525a61c61068f0ca0cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Ospal=C3=BD?= Date: Tue, 31 Mar 2020 21:51:06 +0200 Subject: [PATCH] B #4439: fix Alpine networking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr OspalĂ˝ --- src/etc/one-context.d/loc-10-network##apk.one | 73 +++++++++++++------ 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/src/etc/one-context.d/loc-10-network##apk.one b/src/etc/one-context.d/loc-10-network##apk.one index e7b3b64..a8fac14 100755 --- a/src/etc/one-context.d/loc-10-network##apk.one +++ b/src/etc/one-context.d/loc-10-network##apk.one @@ -294,34 +294,65 @@ configure_network() deactivate_network() { . /etc/os-release - if [ $ID = "ubuntu" ]; then - IFACES=`/sbin/ifquery --list -a` - for i in $IFACES; do - if [ $i != 'lo' ]; then - /sbin/ifdown $i - /sbin/ip addr flush dev $i - fi - done - else - service networking stop - fi + case "$ID" in + 'ubuntu') + IFACES=$(/sbin/ifquery --list -a) + + for i in $IFACES; do + if [ $i != 'lo' ]; then + /sbin/ifdown $i + /sbin/ip addr flush dev $i + fi + done + ;; + 'alpine') + service networking stop || true + + #IFACES=$(ip a | \ + # sed -n 's#^[0-9]\+:[[:space:]]\+\([^:]\+\):[[:space:]].*#\1#p') + + # took from find_ifaces in the networking service + IFACES=$(\ + awk '$1 == "auto" { + for (i = 2; i <= NF; i = i + 1) printf("%s ", $i) + }' /etc/network/interfaces) + + for i in $IFACES; do + if [ $i != 'lo' ]; then + /sbin/ip link set dev $i down || true + /sbin/ip addr flush dev $i || true + fi + done + ;; + *) + service networking stop + ;; + esac } activate_network() { . /etc/os-release - if [ $ID = "ubuntu" ]; then - IFACES=`/sbin/ifquery --list -a` - for i in $IFACES; do - /sbin/ifup $i - done - else - service networking stop - sleep 1 - service networking start - fi + case "$ID" in + 'ubuntu') + IFACES=$(/sbin/ifquery --list -a) + + for i in $IFACES; do + /sbin/ifup $i + done + ;; + 'alpine') + deactivate_network + service networking start + ;; + *) + service networking stop + sleep 1 + service networking start + ;; + esac } [ $ACTION == "reconfigure" ] && deactivate_network