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