1 #!/bin/sh /etc/rc.common
5 EXTRA_COMMANDS
="toggle cfgup"
6 EXTRA_HELP
=" toggle Toggle adblocking 'on' or 'off'
7 cfgup Update the adblock configuration file"
9 PATH
="/usr/sbin:/usr/bin:/sbin:/bin"
12 if [ $
((adb_debug
)) -eq 0 ]
17 adb_script
="/usr/bin/adblock-update.sh"
18 adb_dnsdir
="/tmp/dnsmasq.d"
19 adb_dnshidedir
="${adb_dnsdir}/.adb_hidden"
20 adb_dnsprefix
="adb_list"
21 adb_pidfile
="/var/run/adblock.pid"
22 adb_log
="$(which logger)"
23 adb_uci
="$(which uci)"
34 if [ -r "${adb_pidfile}" ]
36 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" 2>&1
42 local value opt section
="${1}" options
="adb_src_timestamp adb_src_count"
45 "${adb_uci}" -q delete "adblock.${section}.${opt}"
56 eval "${adb_script}" ${bg_parm}
76 cfg_check
="$(${adb_uci} -q get "adblock.global.adb_overall_count
")"
77 if [ -n "${cfg_check}" ]
81 config_foreach rm_config
source
82 "${adb_uci}" -q delete
"adblock.global.adb_dnstoggle"
83 "${adb_uci}" -q delete
"adblock.global.adb_overall_count"
84 "${adb_uci}" -q delete
"adblock.global.adb_percentage"
85 "${adb_uci}" -q delete
"adblock.global.adb_lastrun"
86 if [ -z "${restart}" ]
88 "${adb_uci}" -q commit
"adblock"
91 fw_check
="$(iptables -w -t nat -nL | grep -F "adb-
")"
92 if [ -n "${fw_check}" ] && [ -z "${restart}" ]
94 iptables-save
-t nat |
grep -Fv -- "adb-" | iptables-restore
95 iptables-save
-t filter |
grep -Fv -- "adb-" | iptables-restore
96 if [ -n "$(lsmod | grep -F "ip6table_nat
")" ]
98 ip6tables-save
-t nat |
grep -Fv -- "adb-" | ip6tables-restore
99 ip6tables-save
-t filter |
grep -Fv -- "adb-" | ip6tables-restore
102 if [ -d "${adb_dnshidedir}" ]
104 find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -exec mv -f "{}" "${adb_dnsdir}" \
;
106 dns_check
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print -exec rm -f "{}" \;)"
107 if [ -n "${dns_check}" ]
109 rm -rf "${adb_dnshidedir}"
110 /etc
/init.d
/dnsmasq restart
112 www_check
="$(pgrep -f "uhttpd
-h /www
/adblock
")"
113 if [ -n "${www_check}" ]
115 for pid
in ${www_check}
120 if [ -n "${cfg_check}" ] || [ -n "${fw_check}" ] || [ -n "${dns_check}" ] || [ -n "${www_check}" ]
122 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1
129 if [ "$(${adb_uci} -q get "adblock.global.adb_restricted
")" = "1" ]
131 adb_uci
="$(which true)"
133 if [ -d "${adb_dnshidedir}" ]
135 list_dns
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
136 list_dnshide
="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
137 if [ -n "${list_dns}" ]
139 mv -f "${adb_dnsdir}/${adb_dnsprefix}"* "${adb_dnshidedir}"
140 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=off"
141 "${adb_uci}" -q commit
"adblock"
142 /etc
/init.d
/dnsmasq restart
143 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'off'" 2>&1
144 elif [ -n "${list_dnshide}" ]
146 mv -f "${adb_dnshidedir}/${adb_dnsprefix}"* "${adb_dnsdir}"
147 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=on"
148 "${adb_uci}" -q commit
"adblock"
149 /etc
/init.d
/dnsmasq restart
150 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'on'" 2>&1
159 cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock"
163 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1
165 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration not found, please re-install the package via 'opkg install adblock --force-maintainer'" 2>&1