fastd-2-uci and fix start/stop #219

Closed
rohammer wants to merge 2 commits from rohammer:fastd-2-uci into master
1 changed files with 12 additions and 21 deletions
Showing only changes of commit 653e78cc41 - Show all commits

View File

@ -1,34 +1,25 @@
protocol=fastd
fastd_clear() {
rm /tmp/fastd_fff_peers/*
while uci -q delete fastd.@peer[0];do :; done
}
fastd_addpeer() {
[ -d /tmp/fastd_fff_peers ] || mkdir /tmp/fastd_fff_peers
# write fastd-config
json_get_var servername name
filename="/etc/fastd/fff/peers/$servername"
echo "#name \"${servername}\";" > "$filename"
json_get_var key key
echo "key \"${key}\";" >> "$filename"
json_get_var address address
json_get_var port port
echo "remote \"${address}\" port ${port};" >> "$filename"
echo "" >> "$filename"
echo "float yes;" >> "$filename"
uci add fastd peer
uci set fastd.@peer[-1].enabled=1
uci set fastd.@peer[-1].net=fff
uci set fastd.@peer[-1].key="$key"
uci add_list fastd.@peer[-1].remote="\"$address\" port $port"
uci set fastd.@peer[-1].float=1
}
fastd_start_stop() {
/etc/init.d/fastd reload # does nothing if fastd was not running
# fastd start/stop for various situations
# this is needed for first start and if fastd comes up or disappears in hoodfile
pidfile="/tmp/run/fastd.fff.pid"
if [ "$(ls /etc/fastd/fff/peers/* 2>/dev/null)" ]; then
([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) || /etc/init.d/fastd start
else
([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) && /etc/init.d/fastd stop
fi
uci commit
[ "$0" = "/usr/sbin/vpn-stop" ] && /etc/init.d/fastd stop && return
[ "$new_hoodfile" = "yes" ] && /etc/init.d/fastd restart && return
/etc/init.d/fastd start
}