network_get_device adb_landev "${adb_lanif}"
network_find_wan adb_wanif4
network_find_wan6 adb_wanif6
-
- # set restricted mode
- #
- if [ "${adb_restricted}" = "1" ]
- then
- adb_uci="$(which true)"
- restricted_ok="true"
- fi
}
# f_envcheck: check/set environment prerequisites
fi
if [ "${adb_enabled}" != "1" ]
then
- rc=-1
+ rc=-10
f_log "adblock is currently disabled, please set adblock.global.adb_enabled=1' to use this service"
f_exit
fi
then
adb_nullipv4="${adb_ipv4}"
adb_nullipv6="${adb_ipv6}"
- if [ "$(${adb_uci} -q get uhttpd.main.listen_http | grep -Fo "80")" = "80" ] ||
- [ "$(${adb_uci} -q get uhttpd.main.listen_https | grep -Fo "443")" = "443" ]
+ if [ -n "$(${adb_uci} -q get uhttpd.main.listen_http | grep -Fo "80")" ] ||
+ [ -n "$(${adb_uci} -q get uhttpd.main.listen_https | grep -Fo "443")" ]
then
rc=-1
f_log "AP mode detected, please set local LuCI instance to ports <> 80/443"
check="$(${adb_uci} -q get bcp38.@bcp38[0].enabled)"
if [ "${check}" = "1" ]
then
- check="$(${adb_uci} -q get bcp38.@bcp38[0].match | grep -Fo "${adb_nullipv4%.*}")"
- if [ -n "${check}" ]
+ if [ -n "$(${adb_uci} -q get bcp38.@bcp38[0].match | grep -Fo "${adb_nullipv4%.*}")" ]
then
rc=-1
f_log "please whitelist '${adb_nullipv4}' in your bcp38 configuration to use adblock"
f_log "AP mode enabled"
fi
- # log restricted mode
+ # set/log restricted mode
#
- if [ "${restricted_ok}" = "true" ]
+ if [ "${adb_restricted}" = "1" ]
then
+ adb_uci="$(which true)"
f_log "Restricted mode enabled"
fi
local options="adb_src_timestamp adb_src_count"
local section="${1}"
- rm_cfg="${adb_lastrun}"
- if [ -n "${rm_cfg}" ]
- then
- "${adb_uci}" -q delete "adblock.global.adb_overall_count"
- "${adb_uci}" -q delete "adblock.global.adb_dnstoggle"
- "${adb_uci}" -q delete "adblock.global.adb_percentage"
- "${adb_uci}" -q delete "adblock.global.adb_lastrun"
- for opt in ${options}
- do
- "${adb_uci}" -q delete "adblock.${section}.${opt}"
- done
- fi
+ "${adb_uci}" -q delete "adblock.global.adb_overall_count"
+ "${adb_uci}" -q delete "adblock.global.adb_dnstoggle"
+ "${adb_uci}" -q delete "adblock.global.adb_percentage"
+ "${adb_uci}" -q delete "adblock.global.adb_lastrun"
+ for opt in ${options}
+ do
+ "${adb_uci}" -q delete "adblock.${section}.${opt}"
+ done
}
# f_rmdns: remove dns block lists and backups
local log_parm
local log_msg="${1}"
local class="info "
- local lastrun="$(date "+%d.%m.%Y %H:%M:%S")"
# check for terminal session
#
class="error"
fi
logger ${log_parm} -t "adblock[${adb_pid}] ${class}" "${log_msg}" 2>&1
-
- # clean exit on error
- #
- if [ $((rc)) -eq -1 ] || [ $((rc)) -gt 0 ]
- then
- f_rmdns
- f_rmuhttpd
- f_rmfirewall
- config_foreach f_rmconfig source
- "${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun} => runtime error, please check the log!"
- "${adb_uci}" -q commit "adblock"
- fi
fi
}
{
local lastrun="$(date "+%d.%m.%Y %H:%M:%S")"
+ if [ "${adb_restricted}" = "1" ]
+ then
+ adb_uci="$(which true)"
+ fi
+
+ # delete temp files & directories
+ #
rm -f "${adb_tmpfile}"
rm -rf "${adb_tmpdir}"
+ # tidy up on error
+ #
+ if [ $((rc)) -lt 0 ] || [ $((rc)) -gt 0 ]
+ then
+ f_rmdns
+ f_rmuhttpd
+ f_rmfirewall
+ config_foreach f_rmconfig source
+ if [ $((rc)) -eq -1 ]
+ then
+ "${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun} => runtime error, please check the log!"
+ fi
+ fi
+
# final log message and iptables statistics
#
if [ $((rc)) -eq 0 ]
then
f_statistics
"${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun}"
- "${adb_uci}" -q commit "adblock"
f_log "domain adblock processing finished successfully (${adb_scriptver}, ${adb_sysver}, ${lastrun})"
elif [ $((rc)) -gt 0 ]
then
else
rc=0
fi
+ "${adb_uci}" -q commit "adblock"
rm -f "${adb_pidfile}"
exit ${rc}
}
adb_helper="/usr/bin/adblock-helper.sh"
adb_pidfile="/var/run/adblock.pid"
bg_parm="&"
-if [ -t 1 ]
-then
- unset bg_parm
-fi
if [ $((adb_debug)) -eq 0 ]
then
. "${adb_helper}"
f_envload
+if [ "${adb_restricted}" = "1" ]
+then
+ adb_uci="$(which true)"
+fi
+
boot()
{
return 0
start()
{
+ if [ -t 1 ]
+ then
+ unset bg_parm
+ fi
eval "${adb_script}" ${bg_parm}
return 0
}
{
f_rmdns
f_rmuhttpd
- adb_uci="$(which uci)"
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}" ]
+ if [ -n "${rm_dns}" ] || [ -n "${rm_uhttpd}" ] || [ -n "${rm_fw}" ] || [ -n "$(${adb_uci} -q changes adblock)" ]
then
+ "${adb_uci}" -q commit adblock
f_log "all adblock related services stopped"
fi
return 0
if [ -n "${list_dns}" ] || [ -n "${list_dnshide}" ]
then
mv -f "${source}"* "${target}"
+ /etc/init.d/dnsmasq restart
"${adb_uci}" -q set "adblock.global.adb_dnstoggle=${pos}"
"${adb_uci}" -q commit "adblock"
- /etc/init.d/dnsmasq restart
f_log "adblock toggle switched '${pos}'"
fi
fi