openwrt-packages/net/wifidog-ng/files/wifidog-ng.init

47 lines
836 B
Bash
Executable File

#!/bin/sh /etc/rc.common
USE_PROCD=1
START=95
BIN=/usr/bin/wifidog-ng
parse_whitelist() {
local cfg="$1"
local domain mac
uci_validate_section wifidog-ng whitelist "${1}" \
'domain:list(host)' \
'mac:list(macaddr)'
[ $? -ne 0 ] && {
echo "validation failed" >&2
exit 1
}
for m in $mac; do
echo "!$m" > /proc/wifidog-ng/term
done
}
start_service() {
modprobe wifidog-ng
ipset create wifidog-ng-mac hash:mac
ipset create wifidog-ng-ip hash:ip timeout 10000
config_load wifidog-ng
config_foreach parse_whitelist whitelist
procd_open_instance
procd_set_param command $BIN
procd_set_param respawn
procd_close_instance
}
stop_service() {
rmmod wifidog-ng
ipset destroy wifidog-ng-mac
ipset destroy wifidog-ng-ip
}