You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
# act on wlan devices and broken events for qca proprietary devices which all have no DEVTYPE!
|
|
[ "$DEVTYPE" = "wlan" ] ||
|
|
[ "$DEVTYPE${DEVICENAME%%[0-9]*}" = "wifi" ] ||
|
|
[ "$DEVTYPE${DEVICENAME%%[0-9]*}" = "ath" ] ||
|
|
exit 0
|
|
|
|
. /lib/config/uci.sh
|
|
# uci_ lib works on temporary config files here which are not persistent
|
|
UCI_CONFIG_DIR=/var/run
|
|
CONFIG=plc-standby
|
|
|
|
# create initial config file
|
|
uci_set_default $CONFIG <<'EOF'
|
|
config status 'status'
|
|
option timeout '0'
|
|
EOF
|
|
|
|
[ "$DEVTYPE${DEVICENAME%%[0-9]*}" = "wifi" ] && exit 0
|
|
|
|
# check added/removed device
|
|
if [ "$DEVTYPE" = "wlan" ]; then
|
|
# strange behavior on ath9/10k!
|
|
# on boot wlanX interface is added for all radios, then removed for radios without enabled interfaces,
|
|
# but not for disabled radios.
|
|
# ubus call not yet possible at this early boot stage. ignore this add when ubus fails.
|
|
# or we could ignore the first added of a phy
|
|
ubus call network.wireless status >/dev/null 2>&1 || exit
|
|
fi
|
|
|
|
devices=$(uci_get $CONFIG status wlandevs)
|
|
|
|
case "$ACTION" in
|
|
add)
|
|
logger -t dlanx-standby "device $DEVICENAME added"
|
|
devices="${devices//"$DEVICENAME "/}$DEVICENAME "
|
|
uci_set $CONFIG status wlandevs "$devices"
|
|
uci_commit $CONFIG
|
|
;;
|
|
remove)
|
|
logger -t dlanx-standby "device $DEVICENAME removed"
|
|
devices="${devices//"$DEVICENAME "/}"
|
|
uci_set $CONFIG status wlandevs "$devices"
|
|
uci_commit $CONFIG
|
|
;;
|
|
*)
|
|
exit
|
|
;;
|
|
esac
|