summaryrefslogtreecommitdiffstats
path: root/package/base-files/default/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files/default/sbin')
-rwxr-xr-xpackage/base-files/default/sbin/hotplug1
-rwxr-xr-xpackage/base-files/default/sbin/ifdown32
-rwxr-xr-xpackage/base-files/default/sbin/ifup42
-rwxr-xr-xpackage/base-files/default/sbin/wifi7
4 files changed, 35 insertions, 47 deletions
diff --git a/package/base-files/default/sbin/hotplug b/package/base-files/default/sbin/hotplug
index afe52a446..b1b6f97b2 100755
--- a/package/base-files/default/sbin/hotplug
+++ b/package/base-files/default/sbin/hotplug
@@ -13,7 +13,6 @@
}
. /etc/functions.sh
-. /etc/config/network
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOGNAME=root
diff --git a/package/base-files/default/sbin/ifdown b/package/base-files/default/sbin/ifdown
index 50ffee530..7debb9559 100755
--- a/package/base-files/default/sbin/ifdown
+++ b/package/base-files/default/sbin/ifdown
@@ -3,18 +3,32 @@
[ $# = 0 ] && { echo " $0 <group>"; exit; }
. /etc/functions.sh
-. /etc/config/network
+include network
+scan_interfaces
debug "### ifdown $type ###"
type=$1
-eval "if_proto=\"\${${type}_proto}\""
-eval "if=\"\${${type}_ifname}\""
-[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
+config_get proto "$type" proto
+[ -z "$proto" ] && { echo "interface not found."; exit; }
-case "$if_proto" in
- pppoa) hotplug_dev unregister atm0; exit 0 ;;
- ""|none) exit 0;;
-esac
+# kill active ppp daemon
+pid="$(cat /var/run/ppp-${type}.pid 2>/dev/null)"
+[ -n "$pid" -a -d "/proc/$pid" ] && {
+ kill $pid
+ sleep 1
+ [ -d "/proc/$pid" ] && kill -9 $pid
+}
-hotplug_dev unregister "$if"
+# kill any other process associated with the interface
+config_get ifname "$type" ifname
+pid="$(cat /var/run/${ifname}.pid 2>/dev/null)"
+[ -n "$pid" -a -d "/proc/$pid" ] && kill -9 $pid
+
+config_get ifname "$type" ifname
+ifconfig "$ifname" >/dev/null 2>/dev/null && {
+ ifconfig "$ifname" 0.0.0.0 down
+
+ config_get iftype "$type" type
+ [ "$iftype" = "bridge" ] && brctl delbr "$ifname"
+}
diff --git a/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup
index 390f96039..c40de38ad 100755
--- a/package/base-files/default/sbin/ifup
+++ b/package/base-files/default/sbin/ifup
@@ -1,38 +1,18 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
-[ $# = 0 ] && { echo " $0 <group>"; exit; }
-. /etc/functions.sh
-. /etc/config/network
+. /sbin/ifdown "$@"
-ifdown $1
-
-debug "### ifup $type ###"
-type=$1
-
-eval "if_proto=\"\${${type}_proto}\""
-eval "if=\"\${${type}_ifname}\""
-[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
-
-case "$if_proto" in
- pppoa) hotplug_dev register atm0; exit 0 ;;
- pppoe)
- # PPPoE over ATM
- [ "$if" = "nas0" ] && {
- ifconfig nas0 2>&- >&- || {
- hotplug_dev register atm0
- exit 0
- }
- }
+config_get iftype "$1" type
+case "$iftype" in
+ bridge)
+ config_get ifname "$1" ifnames
+ ;;
+ *)
+ config_get ifname "$1" ifname
;;
- none|"") exit 0;;
esac
-if [ "${if%%[0-9]}" = "br" ]; then
- eval "ifnames=\"\${${type}_ifnames}\""
- for sif in $ifnames; do
- hotplug_dev register "$sif"
- done
-else
- hotplug_dev register "$if"
-fi
+for dev in $ifname; do
+ setup_interface "$dev" "$1"
+done
diff --git a/package/base-files/default/sbin/wifi b/package/base-files/default/sbin/wifi
index 63b2f121b..f1ac94fa3 100755
--- a/package/base-files/default/sbin/wifi
+++ b/package/base-files/default/sbin/wifi
@@ -30,12 +30,7 @@ config_cb() {
}
config_load wireless
-
-[ -d /lib/wifi -a -n "$(ls /lib/wifi/*.sh 2>&-)" ] && {
- for script in /lib/wifi/*.sh; do
- . $script
- done
-}
+include wifi
for device in $DEVICES; do (
config_get type "$device" type