1 #!/bin/sh /etc/rc.common
5 PATH
="/usr/sbin:/usr/bin:/sbin:/bin"
6 EXTRA_COMMANDS
="toggle cfgup"
7 EXTRA_HELP
=" toggle Toggle adblocking 'on' or 'off'
8 cfgup Update the adblock configuration file"
11 if [ $
((adb_debug
)) -eq 0 ]
16 adb_script
="/usr/bin/adblock-update.sh"
17 adb_dnsdir
="/tmp/dnsmasq.d"
18 adb_dnshidedir
="${adb_dnsdir}/.adb_hidden"
19 adb_dnsprefix
="adb_list"
20 adb_pidfile
="/var/run/adblock.pid"
21 adb_log
="$(which logger)"
22 adb_uci
="$(which uci)"
33 if [ -r "${adb_pidfile}" ]
35 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" 2>&1
41 local value opt section
="${1}" options
="adb_src_timestamp adb_src_count"
44 "${adb_uci}" -q delete "adblock.${section}.${opt}"
55 eval "${adb_script}" ${bg_parm}
75 cfg_check
="$(${adb_uci} -q get "adblock.global.adb_overall_count
")"
76 if [ -n "${cfg_check}" ] && [ -z "${restart}" ]
80 config_foreach rm_config
source
81 "${adb_uci}" -q delete
"adblock.global.adb_dnstoggle"
82 "${adb_uci}" -q delete
"adblock.global.adb_overall_count"
83 "${adb_uci}" -q delete
"adblock.global.adb_percentage"
84 "${adb_uci}" -q delete
"adblock.global.adb_lastrun"
85 "${adb_uci}" -q commit
"adblock"
87 fw_check
="$(iptables -w -vnL | grep -Fo "adb-
")"
88 if [ -n "${fw_check}" ] && [ -z "${restart}" ]
90 iptables-save
-t nat |
grep -Fv -- "adb-" | iptables-restore
91 iptables-save
-t filter |
grep -Fv -- "adb-" | iptables-restore
92 if [ -n "$(lsmod | grep -F "ip6table_nat
")" ]
94 ip6tables-save
-t nat |
grep -Fv -- "adb-" | ip6tables-restore
95 ip6tables-save
-t filter |
grep -Fv -- "adb-" | ip6tables-restore
98 if [ -d "${adb_dnshidedir}" ]
100 find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -exec mv -f "{}" "${adb_dnsdir}" \
;
102 dns_check
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print -exec rm -f "{}" \;)"
103 if [ -n "${dns_check}" ]
105 rm -rf "${adb_dnshidedir}"
106 /etc
/init.d
/dnsmasq restart
108 www_check
="$(pgrep -f "uhttpd
-h /www
/adblock
")"
109 if [ -n "${www_check}" ]
111 for pid
in ${www_check}
116 if [ -n "${cfg_check}" ] || [ -n "${fw_check}" ] || [ -n "${dns_check}" ] || [ -n "${www_check}" ]
118 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1
125 if [ "$(${adb_uci} -q get "adblock.global.adb_restricted
")" = "1" ]
127 adb_uci
="$(which true)"
129 if [ -d "${adb_dnshidedir}" ]
131 list_dns
="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
132 list_dnshide
="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
133 if [ -n "${list_dns}" ]
135 mv -f "${adb_dnsdir}/${adb_dnsprefix}"* "${adb_dnshidedir}"
136 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=off"
137 "${adb_uci}" -q commit
"adblock"
138 /etc
/init.d
/dnsmasq restart
139 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'off'" 2>&1
140 elif [ -n "${list_dnshide}" ]
142 mv -f "${adb_dnshidedir}/${adb_dnsprefix}"* "${adb_dnsdir}"
143 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=on"
144 "${adb_uci}" -q commit
"adblock"
145 /etc
/init.d
/dnsmasq restart
146 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'on'" 2>&1
155 cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock"
159 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1
161 "${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