blob: 41718c5361d0af4bbfebd219cf08a95d7c8ff90b (
plain) (
blame)
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
|
#!/bin/sh /etc/rc.common
# SPDX-License-Identifier: LGPL-3.0-or-later
#
# Copyright 2019 Hristo Venev
START=50
STOP=50
USE_PROCD=1
handle_interface() {
local iface="$1"
local val
mkdir -p "/tmp/wgconfd/$1" "/tmp/wgconfd/$1/cache"
procd_open_instance
procd_set_param env RUNTIME_DIRECTORY="/tmp/wgconfd/$1" CACHE_DIRECTORY="/tmp/wgconfd/$1/cache"
procd_set_param command /usr/bin/wgconfd "$1" --cmdline
config_get val "$1" refresh_sec
[ -n "$val" ] && procd_append_param command refresh_sec "$val"
config_get val "$1" min_keepalive
[ -n "$val" ] && procd_append_param command min_keepalive "$val"
config_get val "$1" max_keepalive
[ -n "$val" ] && procd_append_param command max_keepalive "$val"
config_list_foreach "$1" source handle_source
procd_set_param respawn 30 5 5
procd_set_param stderr 1
procd_close_instance
}
handle_source() {
local val
config_get val "$1" url
procd_append_param command source "$1" "$val"
config_get val "$1" psk
[ -n "$val" ] && procd_append_param command psk "$val"
config_get_bool val "$1" required 0
[ "$val" -eq 1 ] && procd_append_param command required
config_list_foreach "$1" ipv4 handle_source_arg ipv4
config_list_foreach "$1" ipv6 handle_source_arg ipv6
}
handle_source_arg() {
procd_append_param command "$2" "$1"
}
start_service() {
config_load wgconfd
config_foreach handle_interface interface
}
|