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}
74 if [ -n "$(${adb_uci} -q get "adblock.global.adb_overall_count
")" ]
78 config_foreach rm_config
source
79 "${adb_uci}" -q delete
"adblock.global.adb_dnstoggle"
80 "${adb_uci}" -q delete
"adblock.global.adb_overall_count"
81 "${adb_uci}" -q commit
"adblock"
83 if [ -d "${adb_dnshidedir}" ]
85 find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -exec mv -f "{}" "${adb_dnsdir}" \
;
87 rm_done
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print -exec rm -f "{}" \;)"
89 if [ $
((rc
)) -eq 0 ] && [ -n "${rm_done}" ]
91 rm -rf "${adb_dnshidedir}"
92 /etc
/init.d
/dnsmasq restart
93 /etc
/init.d
/firewall restart
95 uhttpd_pid
="$(pgrep -f "uhttpd
-h /www
/adblock
")"
96 if [ -n "${uhttpd_pid}" ]
98 kill -9 "${uhttpd_pid}"
100 if [ -n "${rm_done}" ] ||
[ -n "${uhttpd_pid}" ]
102 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1
109 if [ "$(${adb_uci} -q get "adblock.global.adb_restricted
")" = "1" ]
111 adb_uci
="$(which true)"
113 if [ -d "${adb_dnshidedir}" ]
115 list_dns
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
116 list_dnshide
="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
117 if [ -n "${list_dns}" ]
119 mv -f "${adb_dnsdir}/${adb_dnsprefix}"* "${adb_dnshidedir}"
120 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=off"
121 "${adb_uci}" -q commit
"adblock"
122 /etc
/init.d
/dnsmasq restart
123 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'off'" 2>&1
124 elif [ -n "${list_dnshide}" ]
126 mv -f "${adb_dnshidedir}/${adb_dnsprefix}"* "${adb_dnsdir}"
127 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=on"
128 "${adb_uci}" -q commit
"adblock"
129 /etc
/init.d
/dnsmasq restart
130 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'on'" 2>&1
139 cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock"
143 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1
145 "${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