* add tld compression, this new "top level domain compression" removes up to 40 thousand needless host entries from the block lists and lowers the memory footprint for the dns backends by 8-10 MByte * optimize restart behavior in case of an error * cosmetics Signed-off-by: Dirk Brenken <dev@brenken.org>
91 lines
1.7 KiB
Bash
Executable file
91 lines
1.7 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
#
|
|
|
|
START=90
|
|
USE_PROCD=1
|
|
|
|
EXTRA_COMMANDS="suspend resume query"
|
|
EXTRA_HELP=" suspend Suspend adblock processing
|
|
resume Resume adblock processing
|
|
query <DOMAIN> Query active blocklists for specific domain"
|
|
|
|
adb_script="/usr/bin/adblock.sh"
|
|
|
|
boot()
|
|
{
|
|
local wanif4 wanif6 cnt=0 max_cnt=30
|
|
|
|
. "/lib/functions/network.sh"
|
|
while [ ${cnt} -le ${max_cnt} ]
|
|
do
|
|
network_find_wan wanif4
|
|
network_find_wan6 wanif6
|
|
if [ -n "${wanif4}" ] || [ -n "${wanif6}" ] || [ ${cnt} -eq ${max_cnt} ]
|
|
then
|
|
rc_procd start_service
|
|
return 0
|
|
else
|
|
sleep 1
|
|
cnt=$((cnt+1))
|
|
network_flush_cache
|
|
fi
|
|
done
|
|
}
|
|
|
|
start_service()
|
|
{
|
|
if [ $(/etc/init.d/adblock enabled; printf ${?}) -eq 0 ]
|
|
then
|
|
procd_open_instance "adblock"
|
|
procd_set_param command "${adb_script}" "${@}"
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_close_instance
|
|
fi
|
|
}
|
|
|
|
reload_service()
|
|
{
|
|
rc_procd start_service reload
|
|
}
|
|
|
|
stop_service()
|
|
{
|
|
rc_procd "${adb_script}" stop
|
|
}
|
|
|
|
restart()
|
|
{
|
|
rc_procd start_service restart
|
|
}
|
|
|
|
suspend()
|
|
{
|
|
rc_procd start_service suspend
|
|
}
|
|
|
|
resume()
|
|
{
|
|
rc_procd start_service resume
|
|
}
|
|
|
|
query()
|
|
{
|
|
rc_procd "${adb_script}" query "${1}"
|
|
}
|
|
|
|
service_triggers()
|
|
{
|
|
local iface="$(uci -q get adblock.global.adb_iface)"
|
|
|
|
if [ -z "${iface}" ]
|
|
then
|
|
procd_add_raw_trigger "interface.*.up" 1000 /etc/init.d/adblock start
|
|
else
|
|
for name in ${iface}
|
|
do
|
|
procd_add_interface_trigger "interface.*.up" "${name}" /etc/init.d/adblock start
|
|
done
|
|
fi
|
|
procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
|
|
}
|