#!/bin/sh
. /lib/functions.sh
next_peer()
{
local main_server=$(uci get wireguard.@proxy[0].main_server)
local meet_main_server=0
local first_server=""
local next_server=""
local sections=$(uci show wireguard | sed -n 's/\(.*\).name='.*'/\1/p')
[ -n "$sections" ] || return 1
for section in $sections; do
name=$(uci get $section.name)
if [ "$first_server" == "" ];then
first_server=$name
fi
if [ "$name" != "" -a "$name" == "$main_server" ];then
meet_main_server=1
elif [ "$meet_main_server" != 0 -a "$next_server" == "" ];then
next_server=$name
fi
done
if [ "$next_server" == "" -a "$first_server" != "" ];then
next_server=$first_server
fi
[ "$next_server" != "" -a "$next_server" != "$main_server" ] || return 1
uci set wireguard.@proxy[0].enable='1'
uci set wireguard.@proxy[0].main_server="$next_server"
uci commit wireguard
/etc/init.d/wireguard restart &
}
next_peer