Merge pull request #2874 from dibdot/adblock
[feed/packages.git] / net / fwknop / files / fwknopd.init
1 #!/bin/sh /etc/rc.common
2 #
3 # Fwknop is developed primarily by the people listed in the file 'AUTHORS'.
4 # Copyright (C) 2009-2014 fwknop developers and contributors. For a full
5 # list of contributors, see the file 'CREDITS'.
6 #
7 . /lib/functions.sh
8 START=95
9
10 FWKNOPD_BIN=/usr/sbin/fwknopd
11
12 start()
13 {
14 gen_confs
15 $FWKNOPD_BIN
16 }
17
18 stop()
19 {
20 $FWKNOPD_BIN -K
21 }
22
23 restart()
24 {
25 stop;
26 sleep 1;
27 start;
28 }
29
30 reload()
31 {
32 gen_confs
33 $FWKNOPD_BIN -R
34 }
35
36 gen_confs()
37 {
38 [ -f /tmp/access.conf.tmp ] && rm /tmp/access.conf.tmp
39 if [ -z "$( uci get fwknopd.@config[0].PCAP_INTF )" ]
40 then
41 . /lib/functions/network.sh
42 network_get_physdev device wan
43 uci set fwknopd.@config[0].PCAP_INTF="$device"
44 uci commit
45 fi
46 config_cb() {
47 local type="$1"
48 local name="$2"
49 if [ "$type" = "global" ]; then
50 option_cb() {
51 local option="$1"
52 local value="$2"
53 if [ "$option" = "uci_enabled" ] && [ "$value" -eq 1 ] ; then
54 > /etc/fwknop/fwknopd.conf
55 > /etc/fwknop/access.conf
56 UCI_ENABLED=1
57 fi
58 }
59 elif [ "$type" = "config" ]; then
60 option_cb() {
61 local option="$1"
62 local value="$2"
63 if [ $UCI_ENABLED ]; then
64 echo "$option $value" >> /etc/fwknop/fwknopd.conf #writing each option to fwknopd.conf
65 fi
66 }
67 elif [ "$type" = "access" ]
68 then
69 if [ -f /tmp/access.conf.tmp ] ; then
70 cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
71 rm /tmp/access.conf.tmp
72 fi
73 option_cb() {
74 local option="$1"
75 local value="$2"
76 if [ $UCI_ENABLED ] && [ $option = "SOURCE" ]; then
77 echo "$option $value" >> /etc/fwknop/access.conf #writing each option to access.conf
78 fi
79 if [ $UCI_ENABLED ] && [ $option != "SOURCE" ]; then
80 echo "$option $value" >> /tmp/access.conf.tmp #writing each option to access.conf
81 fi
82 }
83 fi
84 }
85
86 if [ -f /etc/config/fwknopd ]; then
87 config_load fwknopd
88 if [ -f /tmp/access.conf.tmp ] ; then
89 cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
90 rm /tmp/access.conf.tmp
91 fi
92 fi
93
94 }