mirror of https://github.com/hak5/openwrt.git
47 lines
880 B
Bash
Executable File
47 lines
880 B
Bash
Executable File
#!/bin/sh
|
|
|
|
case "$0" in
|
|
*ifdown) modes=down;;
|
|
*ifup) modes="down up";;
|
|
*) echo "Invalid command: $0";;
|
|
esac
|
|
|
|
if_call() {
|
|
local interface="$1"
|
|
for mode in $modes; do
|
|
ubus call $interface $mode
|
|
done
|
|
}
|
|
|
|
[ "$modes" = "down up" ] && ubus call network reload
|
|
[[ "$1" == "-a" ]] && {
|
|
for interface in `ubus -S list 'network.interface.*'`; do
|
|
if_call "$interface"
|
|
done
|
|
exit
|
|
}
|
|
|
|
ubus -S list "network.interface.$1" > /dev/null || {
|
|
echo "Interface $1 not found"
|
|
exit
|
|
}
|
|
if_call "network.interface.$1"
|
|
|
|
grep -sq ^config /etc/config/wireless && {
|
|
local wdev
|
|
for wdev in $(
|
|
find_radio() {
|
|
local wdev wnet
|
|
config_get wdev "$1" device
|
|
config_get wnet "$1" network
|
|
[ -n "$wdev" ] && [ "$wnet" = "$2" ] && echo "$wdev"
|
|
}
|
|
|
|
source /lib/functions.sh
|
|
config_load wireless
|
|
config_foreach find_radio wifi-iface "$1" | sort -u
|
|
); do
|
|
/sbin/wifi up "$wdev"
|
|
done
|
|
}
|