noddos: Noddos v0.5.0 with mDNS / DNS-SD support
[feed/packages.git] / net / adblock / files / adblock.init
1 #!/bin/sh /etc/rc.common
2 #
3
4 START=50
5 USE_PROCD=1
6
7 EXTRA_COMMANDS="suspend resume query status"
8 EXTRA_HELP=" suspend Suspend adblock processing
9 resume Resume adblock processing
10 query <DOMAIN> Query active blocklists for specific domains
11 status Print runtime information"
12
13 adb_init="/etc/init.d/adblock"
14 adb_script="/usr/bin/adblock.sh"
15
16 boot()
17 {
18 adb_boot=1
19 ubus -t 30 wait_for network.interface 2>/dev/null
20 rc_procd start_service
21 }
22
23 start_service()
24 {
25 if [ $("${adb_init}" enabled; printf "%u" ${?}) -eq 0 ]
26 then
27 if [ -n "${adb_boot}" ]
28 then
29 return 0
30 fi
31 procd_open_instance "adblock"
32 procd_set_param command "${adb_script}" "${@}"
33 procd_set_param stdout 1
34 procd_set_param stderr 1
35 procd_close_instance
36 fi
37 }
38
39 reload_service()
40 {
41 rc_procd start_service reload
42 }
43
44 stop_service()
45 {
46 rc_procd "${adb_script}" stop
47 rc_procd start_service
48 }
49
50 restart()
51 {
52 rc_procd start_service restart
53 }
54
55 suspend()
56 {
57 rc_procd "${adb_script}" suspend
58 }
59
60 resume()
61 {
62 rc_procd "${adb_script}" resume
63 }
64
65 query()
66 {
67 rc_procd "${adb_script}" query "${1}"
68 }
69
70 status()
71 {
72 rc_procd "${adb_script}" status
73 }
74
75 service_triggers()
76 {
77 local iface="$(uci -q get adblock.global.adb_iface)"
78 local delay="$(uci -q get adblock.global.adb_triggerdelay)"
79
80 PROCD_RELOAD_DELAY=$((${delay:=2} * 1000))
81 for name in ${iface}
82 do
83 procd_add_interface_trigger "interface.*.up" "${name}" "${adb_init}" start
84 done
85 PROCD_RELOAD_DELAY=1000
86 procd_add_config_trigger "config.change" "adblock" "${adb_init}" start
87 }