50 lines
995 B
Bash
50 lines
995 B
Bash
#!/bin/sh /etc/rc.common
|
|
# Author Qier LU <lvqier@gmail.com>
|
|
|
|
START=55
|
|
|
|
DNSMASQ="/etc/dnsmasq.conf"
|
|
|
|
gen_config_file() {
|
|
local section="${1}"
|
|
config_get ipset_name "${section}" "ipset_name"
|
|
sname="#$ipset_name-1"
|
|
ename="#$ipset_name-2"
|
|
sed -i "/$sname/,/$ename/d" "$DNSMASQ"
|
|
config_get enabled "${section}" "enabled"
|
|
if [ -z $enabled ]; then
|
|
enabled=0
|
|
fi
|
|
if [ ${enabled} -eq 0 ]
|
|
then
|
|
return
|
|
fi
|
|
|
|
handle_domain() {
|
|
local domain="${1}"
|
|
ipline=$ipline"${domain}/"
|
|
}
|
|
|
|
ipline="ipset=/"
|
|
echo "#$ipset_name-1" >> "$DNSMASQ"
|
|
config_list_foreach "${section}" "managed_domain" handle_domain
|
|
echo "$ipline${ipset_name}" >> "$DNSMASQ"
|
|
echo "#$ipset_name-2" >> "$DNSMASQ"
|
|
ipset -N -exist "$ipset_name" iphash
|
|
/etc/init.d/dnsmasq reload
|
|
}
|
|
|
|
gen_config_files() {
|
|
config_load 'dnsmasq-ipset'
|
|
config_foreach gen_config_file 'ipsets'
|
|
}
|
|
|
|
start() {
|
|
gen_config_files
|
|
}
|
|
|
|
reload() {
|
|
sleep 5
|
|
gen_config_files
|
|
}
|