echo "num_interfaces: ${num_interfaces}"
}
+wg_error_handling () {
+ local response_code=$1
+
+ case "$response_code" in
+ 1) logger -t "wginstaller" "Server rejected request since the public key is already used!" ;;
+ *) logger -t "wginstaller" "Unknown Error Code!";;
+ esac
+}
+
wg_rpcd_register () {
local token=$5
local ip=$6
json_get_vars result result
json_select result
json_select 2
+ json_get_var response_code response_code
+ if [ "$response_code" -ne 0 ]; then
+ wg_error_handling "$response_code"
+ return 1
+ fi
json_get_var gw_pubkey gw_pubkey
json_get_var gw_ipv4 gw_ipv4
json_get_var gw_ipv6 gw_ipv6
. /usr/share/libubox/jshn.sh
. /usr/share/wginstaller/wg.sh
+wg_key_exists () {
+ local key=$1
+
+ wg show | grep -q "$key"
+}
+
wg_timeout () {
local int=$1
local mtu=$2
local public_key=$3
+ if wg_key_exists $public_key; then
+ logger -t "wginstaller" "Rejecting request since the public key is already used!" "$public_key"
+ json_init
+ json_add_int "response_code" 1
+ json_dump
+ return 1
+ fi
+
base_prefix_ipv6=$(uci get wgserver.@server[0].base_prefix_ipv6)
port_start=$(uci get wgserver.@server[0].port_start)
port_end=$(uci get wgserver.@server[0].port_end)
# craft return address
json_init
+ json_add_int "response_code" 0
json_add_string "gw_pubkey" "$wg_server_pubkey"
if test -n "${gw_ipv4_assign-}"; then
json_add_string "gw_ipv4" "$gw_ipv4_assign"