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.

64 lines
1.3 KiB
Bash

#!/bin/sh
. /lib/functions.sh
SCRIPT=$0
# remember, if radio state was changed
radio_state_changed=0
_rm_cron_script()
{
crontab -l | grep -v "$1" | sort -u | crontab -
}
set_radio_state() {
local cfg="$1"
local wifi_disabled="$2"
# check if wifi-iface is a guest wifi-iface if not return
[ "$(config_get $1 disabled)" != "1" ] &&
[ "$(config_get $1 dvl_guest)" = "1" ] || return
uci_set wireless "$cfg" disabled $wifi_disabled
radio_state_changed=1
uci_remove wireless guest_wifi starttime
}
disable_guest_wifi()
{
_rm_cron_script "${SCRIPT} stop"
config_foreach set_radio_state wifi-iface 1
[ "$radio_state_changed" -eq 1 ] && {
uci_commit wireless
local reload=$1
[ -n "$reload" ] && reload=1
[ "$reload" -eq 1 ] && reload_config # use procd to check for config changes
}
}
usage()
{
echo ""
echo "$0 stop|help"
echo ""
echo " UCI Config File: /etc/config/wireless"
echo ""
echo " stop: Stop guest wifi."
echo " help: This description."
echo ""
}
###############################################################################
# MAIN
###############################################################################
config_load wireless
case "$1" in
stop) disable_guest_wifi "$@";;
help|--help|-h|*) usage ;;
esac