Merge pull request #4853 from StevenHessing/noddos
[feed/packages.git] / net / adblock / files / adblock.init
1 #!/bin/sh /etc/rc.common
2 #
3
4 START=30
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 rc_procd start_service
20 }
21
22 start_service()
23 {
24 if [ $("${adb_init}" enabled; printf "%u" ${?}) -eq 0 ]
25 then
26 if [ -n "${adb_boot}" ]
27 then
28 local trigger="$(uci_get adblock.global.adb_trigger)"
29 if [ "${trigger}" != "timed" ]
30 then
31 return 0
32 fi
33 fi
34 procd_open_instance "adblock"
35 procd_set_param command "${adb_script}" "${@}"
36 procd_set_param stdout 1
37 procd_set_param stderr 1
38 procd_close_instance
39 fi
40 }
41
42 reload_service()
43 {
44 rc_procd start_service reload
45 }
46
47 stop_service()
48 {
49 rc_procd "${adb_script}" stop
50 rc_procd start_service
51 }
52
53 restart()
54 {
55 rc_procd start_service restart
56 }
57
58 suspend()
59 {
60 rc_procd "${adb_script}" suspend
61 }
62
63 resume()
64 {
65 rc_procd "${adb_script}" resume
66 }
67
68 query()
69 {
70 rc_procd "${adb_script}" query "${1}"
71 }
72
73 status()
74 {
75 rc_procd "${adb_script}" status
76 }
77
78 service_triggers()
79 {
80 local trigger="$(uci_get adblock.global.adb_trigger)"
81 local delay="$(uci_get adblock.global.adb_triggerdelay)"
82
83 if [ "${trigger}" != "none" ] && [ "${trigger}" != "timed" ]
84 then
85 PROCD_RELOAD_DELAY=$((${delay:=1} * 1000))
86 procd_add_interface_trigger "interface.*.up" "${trigger}" "${adb_init}" start
87 fi
88 procd_add_reload_trigger "adblock"
89 }