1 #!/bin/sh /etc/rc.common
6 BIN
=/usr
/bin
/wifidog-ng
8 global_dhcp_host_white
=1
10 validate_gateway_section
() {
11 uci_load_validate wifidog-ng gateway
"$1" "$2" \
13 'interface:uci("network", "@interface"):lan' \
14 'dhcp_host_white:bool:1'
19 echo "validation gateway failed" >&2
23 [ $enabled = 1 ] ||
exit 0
25 [ $dhcp_host_white = 1 ] || global_dhcp_host_white
=0
27 # timeout = 24.855 days
28 ipset
-! create wifidog-ng-mac
hash:mac timeout
2147483
29 ipset
-! create wifidog-ng-ip
hash:ip
32 echo "enabled=1" > /proc
/wifidog-ng
/config
35 procd_set_param
command $BIN
36 procd_set_param respawn
40 validate_server_section
() {
41 uci_load_validate wifidog-ng server
"$1" "$2" \
47 echo "validation server failed" >&2
51 if validate_data ip4addr
"$host" 2> /dev
/null
; then
52 ipset add wifidog-ng-ip
$host
54 echo "ipset=/$host/wifidog-ng-ip" >> /tmp
/dnsmasq.d
/wifidog-ng
58 validate_validated_user_section
() {
59 uci_load_validate wifidog-ng validated_user
"$1" "$2" \
63 parse_validated_user
() {
65 echo "validation validated_user failed" >&2
69 [ -n "$mac" ] && ipset add wifidog-ng-mac
$mac
72 validate_validated_domain_section
() {
73 uci_load_validate wifidog-ng validated_domain
"$1" "$2" \
77 parse_validated_domain
() {
79 echo "validation validated_domain failed" >&2
83 [ -n "$domain" ] && echo "ipset=/$domain/wifidog-ng-ip" >> /tmp
/dnsmasq.d
/wifidog-ng
86 validate_dhcp_host_section
() {
87 uci_load_validate dhcp
host "$1" "$2" \
93 echo "validation validated dhcp host failed" >&2
97 [ -n "$mac" ] && ipset add wifidog-ng-mac
$mac
101 config_load wifidog-ng
102 config_foreach validate_gateway_section gateway start_wifidog
104 echo -n > /tmp
/dnsmasq.d
/wifidog-ng
106 config_foreach validate_server_section server parse_server
107 config_foreach validate_validated_user_section validated_user parse_validated_user
108 config_foreach validate_validated_domain_section validated_domain parse_validated_domain
110 [ $global_dhcp_host_white = 1 ] && {
112 config_foreach validate_dhcp_host_section
host parse_dhcp_host
115 /etc
/init.d
/dnsmasq restart
&
121 ipset destroy wifidog-ng-mac
122 ipset destroy wifidog-ng-ip
126 procd_add_reload_trigger
"wifidog-ng"
129 validate_gateway_section
130 validate_server_section
131 validate_validated_user_section
132 validate_validated_domain_section
133 validate_dhcp_host_section