packages/net/adblock/files/adblock.init
Dirk Brenken ed470f0dcc adblock: release 2.4.0
* 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>
2017-02-28 16:52:10 +01:00

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
}