1 #!/bin/sh /etc/rc.common
3 .
$IPKG_INSTROOT/lib
/functions
/network.sh
7 NAME
=tunneldigger-broker
10 CONFIGFILE
=/var
/etc
/tunneldigger-broker.cfg
11 HOOKPATH
=/usr
/lib
/tunneldigger-broker
/hooks
14 echo "Not starting tunneldigger-broker - missing $1" >&2
20 echo "$value" >> $CONFIGFILE
23 cfg_append_section
() {
25 cfg_append
"[${name}]"
31 cfg_append
"${key}=${value}"
38 config_get value
"$cfg" "${option}"
39 [ -z "${value}" ] && missing
${option}
40 cfg_append_kv
"${key}" "${value}"
45 cfg_append_section broker
46 config_get interface
"$section" interface
48 [ ! -z "${interface}" ] && {
49 # Resolve logical interface name.
50 unset _interface address
51 network_get_device _interface
"${interface}" || _interface
="${interface}"
52 cfg_append_kv interface
"${_interface}"
53 network_get_ipaddr address
"${interface}"
54 cfg_append_kv address
"${address}"
57 OPTIONS
="max_cookies max_tunnels port_base tunnel_id_base tunnel_timeout namespace connection_rate_limit pmtu"
58 for option
in ${OPTIONS}; do
59 cfg_append_option
"$section" "${option}" "${option}"
62 config_get port
"$section" port
63 cfg_append_kv
"port" "${port// /,}"
65 cfg_append_section hooks
66 cfg_append_kv
"session.up" "${HOOKPATH}/setup"
67 cfg_append_kv
"session.pre-down" "${HOOKPATH}/teardown"
68 cfg_append_kv
"session.mtu-changed" "${HOOKPATH}/mtu-changed"
73 cfg_append_section log
75 OPTIONS
="filename verbosity"
76 for option
in ${OPTIONS}; do
77 cfg_append_option
"$section" "${option}" "${option}"
80 config_get_bool log_ip_addresses
"$section" log_ip_addresses
1
81 if [ "${log_ip_addresses}" -eq 1 ]; then
82 cfg_append_kv
"log_ip_addresses" "true"
84 cfg_append_kv
"log_ip_addresses" "false"
89 # Prepare the configuration file from UCI settings.
91 config_load tunneldigger-broker
92 config_foreach parse_broker broker
93 config_foreach parse_log log
95 # Start the service using procd.
97 procd_set_param
command "/usr/bin/python"
98 procd_append_param
command -m tunneldigger_broker.main
99 procd_append_param
command "${CONFIGFILE}"
100 procd_set_param respawn
101 procd_set_param stdout
1
102 procd_set_param stderr
1