Merge pull request #3107 from black-roland/libsodium
[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 chmod 600 /etc/fwknop/fwknopd.conf
57 chmod 600 /etc/fwknop/access.conf
58 UCI_ENABLED=1
59 fi
60 }
61 elif [ "$type" = "config" ]; then
62 option_cb() {
63 local option="$1"
64 local value="$2"
65 if [ $UCI_ENABLED ]; then
66 echo "$option $value" >> /etc/fwknop/fwknopd.conf #writing each option to fwknopd.conf
67 fi
68 }
69 elif [ "$type" = "access" ]
70 then
71 if [ -f /tmp/access.conf.tmp ] ; then
72 cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
73 rm /tmp/access.conf.tmp
74 fi
75 option_cb() {
76 local option="$1"
77 local value="$2"
78 if [ $UCI_ENABLED ] && [ $option = "SOURCE" ]; then
79 echo "$option $value" >> /etc/fwknop/access.conf #writing each option to access.conf
80 fi
81 if [ $UCI_ENABLED ] && [ $option != "SOURCE" ]; then
82 echo "$option $value" >> /tmp/access.conf.tmp #writing each option to access.conf
83 fi
84 }
85 fi
86 }
87
88 if [ -f /etc/config/fwknopd ]; then
89 config_load fwknopd
90 if [ -f /tmp/access.conf.tmp ] ; then
91 cat /tmp/access.conf.tmp >> /etc/fwknop/access.conf
92 rm /tmp/access.conf.tmp
93 fi
94 fi
95
96 }