blob: a6d7f1c73e8feabb9c40f37473a22c4686f74d0f (
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2015 OpenWrt.org
START=60
USE_PROCD=1
BIN=xl2tpd
RUN_D="/var/run/xl2tpd"
PID_F="/var/run/xl2tpd.pid"
CONF_F="$RUN_D/xl2tpd.conf"
SECRETS_F="$RUN_D/xl2tp-secrets"
# Flag to use legacy config files rather than UCI-generated ones
USE_LEGACY_CONFIG=0
XL2TP_BOOLS='
ipsec_saref
access_control
debug_avp
debug_network
debug_packet
debug_state
debug_tunnel
exclusive
assign_ip
hidden_bit
length_bit
refuse_chap
require_chap
refuse_pap
require_pap
refuse_authentication
require_authentication
unix_authentication
ppp_debug
flow_bits
challenge
autodial
redial
'
config_cb() {
config_type="$1"
config_name="$2"
# ignore empty type
[ -z "$config_type" ] && return 0
# ignore 'secret' sections
[ "$config_type" = "secret" ] && return 0
echo -e "\n[$config_type]" >> "$CONF_F"
}
option_cb() {
option_name="$1"
option_value="$2"
# ignore 'secret' sections
[ "$config_type" = "secret" ] && return 0
[ "$config_type" = "global" ] && [ "$option_name" = "use_legacy_config" ] && {
[ "$option_value" = 1 ] && USE_LEGACY_CONFIG=1
return 0
}
for p in $XL2TP_BOOLS; do
[ "$p" = "$option_name" ] && {
if [ "$option_value" = 1 ]; then
option_value="yes"
else
option_value="no"
fi
}
done
echo "${option_name//_/ } = $option_value" >> "$CONF_F"
}
secrets_add() {
local cfg="$1"
config_get local "$cfg" local
config_get remote "$cfg" remote
config_get secret "$cfg" secret
echo "$local $remote $secret" >> "$SECRETS_F"
}
reload_service() {
restart
}
service_triggers() {
procd_add_reload_trigger xl2tp
}
start_service() {
rm -rf "$RUN_D"
mkdir -p "$RUN_D"
config_load xl2tp
config_foreach secrets_add secret
[ "$USE_LEGACY_CONFIG" = 1 ] && {
# set paths to legacy config files for backward compatibility
CONF_F="/etc/xl2tpd/xl2tpd.conf"
SECRETS_F="/etc/xl2tpd/xl2tp-secrets"
}
procd_open_instance
procd_set_param command $BIN -D -l -p "$PID_F" -c "$CONF_F" -s "$SECRETS_F"
procd_set_param respawn
procd_close_instance
}
stop_service() {
rm -rf "$RUN_D"
rm -rf "$PID_F"
}
|