#!/bin/sh /etc/rc.common # START=99 EXTRA_COMMANDS="toggle cfgup" EXTRA_HELP=" toggle Toggle adblocking 'on' or 'off' cfgup Update the adblock configuration file" adb_debug=0 adb_pid="${$}" adb_script="/usr/bin/adblock-update.sh" adb_helper="/usr/bin/adblock-helper.sh" adb_pidfile="/var/run/adblock.pid" bg_parm="&" unset log_parm if [ $((adb_debug)) -eq 0 ] then exec 2>/dev/null fi if [ -t 1 ] then log_parm="-s" unset bg_parm fi if [ -r "${adb_pidfile}" ] then logger ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" 2>&1 exit 255 fi boot() { return 0 } start() { eval "${adb_script}" ${bg_parm} return 0 } restart() { stop start } reload() { reload="true" stop start } stop() { . "${adb_helper}" f_envload f_rmdns f_rmuhttpd config_foreach f_rmconfig source if [ -n "$(${adb_uci} -q changes adblock)" ] then "${adb_uci}" -q commit adblock fi if [ -z "${reload}" ] then f_rmfirewall fi if [ -n "${rm_dns}" ] || [ -n "${rm_uhttpd}" ] || [ -n "${rm_fw}" ] || [ -n "${rm_cfg}" ] then logger ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1 fi return 0 } toggle() { . "${adb_helper}" if [ -d "${adb_dnshidedir}" ] then list_dns="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)" list_dnshide="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)" if [ -n "${list_dns}" ] then source="${adb_dnsdir}/${adb_dnsprefix}" target="${adb_dnshidedir}" pos="off" elif [ -n "${list_dnshide}" ] then source="${adb_dnshidedir}/${adb_dnsprefix}" target="${adb_dnsdir}" pos="on" fi if [ -n "${list_dns}" ] || [ -n "${list_dnshide}" ] then if [ "$(${adb_uci} -q get adblock.global.adb_restricted)" = "1" ] then adb_uci="$(which true)" fi mv -f "${source}"* "${target}" "${adb_uci}" -q set "adblock.global.adb_dnstoggle=${pos}" "${adb_uci}" -q commit "adblock" /etc/init.d/dnsmasq restart logger ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblock switched '${pos}'" 2>&1 fi fi return 0 } cfgup() { stop cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock" rc=$? if [ $((rc)) -eq 0 ] then logger ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1 else logger ${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 fi return 0 }