base-files: remove an old network tunable tweak which is messing up network stack...
[openwrt.git] / package / base-files / files / sbin / ifdown
index 7c6a5b7..1455a9d 100755 (executable)
@@ -1,16 +1,20 @@
 #!/bin/sh
 #!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
 
 . /etc/functions.sh
 [ $# = 0 ] && { echo "  $0 <group>"; exit; }
 
 . /etc/functions.sh
 [ $# = 0 ] && { echo "  $0 <group>"; exit; }
-[ "x$1" = "x-a" ] && {
-       [ -e "/tmp/resolv.conf.auto" ] && rm /tmp/resolv.conf.auto
-       config_cb() {
-               [ interface != "$1" -o -z "$2" ] || eval "$0 $2"
-       }
-       config_load network
-       exit
-}
+
+case "$1" in
+       "-a")
+               [ -e "/tmp/resolv.conf.auto" ] && rm /tmp/resolv.conf.auto
+               config_cb() {
+                       [ interface != "$1" -o -z "$2" ] || eval "$0 -w $2"
+               }
+               config_load network
+               exit 0
+       ;;
+       "-w") shift ;;
+esac
 
 include /lib/network
 scan_interfaces
 
 include /lib/network
 scan_interfaces
@@ -40,6 +44,9 @@ done
 config_get iftype "$cfg" type
 [ "bridge" = "$iftype" ] && brctl delbr "$ifname" >/dev/null 2>/dev/null
 
 config_get iftype "$cfg" type
 [ "bridge" = "$iftype" ] && brctl delbr "$ifname" >/dev/null 2>/dev/null
 
+# remove the interface's dns entries
+remove_dns "$cfg"
+
 # remove the interface's network state
 uci_revert_state network "$1"
 
 # remove the interface's network state
 uci_revert_state network "$1"
 
This page took 0.026912 seconds and 4 git commands to generate.