summaryrefslogtreecommitdiffstats
path: root/src/os-plugins/plugins/qemukvm/files/ifdown
diff options
context:
space:
mode:
Diffstat (limited to 'src/os-plugins/plugins/qemukvm/files/ifdown')
-rw-r--r--src/os-plugins/plugins/qemukvm/files/ifdown16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/os-plugins/plugins/qemukvm/files/ifdown b/src/os-plugins/plugins/qemukvm/files/ifdown
index f740cd42..b56be1df 100644
--- a/src/os-plugins/plugins/qemukvm/files/ifdown
+++ b/src/os-plugins/plugins/qemukvm/files/ifdown
@@ -14,11 +14,21 @@
# -----------------------------------------------------------------------------
# get VM_ID through tap name
-#VM_ID=$(echo $1 | grep -oE "0[0-4]$")
+VM_ID=$(echo $1 | grep -oE "0[0-4]$")
#QKTMPDIR=/tmp/qemukvm/${USER}/${VM_ID}
# not optimal if multiple machines run
-sudo /opt/openslx/rootfs/usr/bin/killall -9 udhcpd || exit 0
-sudo /opt/openslx/rootfs/bin/ip link set dev $1 down || exit 0
+case "$1" in
+ tapbridge0*)
+ sudo /sbin/sysctl -q -w net.ipv4.conf.$1.forwarding=0 || failed=1
+ ;;
+ tapnat0*)
+ sudo /sbin/sysctl -q -w net.ipv4.conf.$1.forwarding=0 || failed=1
+ sudo /sbin/iptables -t nat -D POSTROUTING -s 192.168.1${VM_ID}.0/24 -o br0 \
+ -j MASQUERADE || failed=1
+ ;;
+esac
+sudo /opt/openslx/rootfs/usr/bin/killall -9 udhcpd || failed=1
+sudo /opt/openslx/rootfs/bin/ip link set dev $1 down || failed=1
# Produce a clean exit status
exit 0