From fa375333df424897bcbd8138329d334648082256 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 14 Apr 2021 21:05:11 +0200 Subject: [PATCH] Fix get interface IP when server have multiple IPs --- luci-app-openmptcprouter/root/bin/omr-ip-intf | 18 +++++++++++------- luci-app-openmptcprouter/root/bin/omr-ip6-intf | 17 ++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/luci-app-openmptcprouter/root/bin/omr-ip-intf b/luci-app-openmptcprouter/root/bin/omr-ip-intf index 16434c5a4..d09dfa07d 100755 --- a/luci-app-openmptcprouter/root/bin/omr-ip-intf +++ b/luci-app-openmptcprouter/root/bin/omr-ip-intf @@ -4,14 +4,18 @@ intf=$1 get_ip_from_server() { - serverip=$(uci -q get openmptcprouter.$1.ip) serverport=$(uci -q get openmptcprouter.$1.port) - getip="$(curl -s -k -4 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" - [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') - if expr "$getip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then - ip=$getip - break - fi + get_ip() { + serverip=$1 + getip="$(curl -s -k -4 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" + [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') + if expr "$getip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then + ip=$getip + break + fi + } + config_list_foreach $1 ip get_ip + [ -n "$ip" ] && break } get_ip_from_website() { diff --git a/luci-app-openmptcprouter/root/bin/omr-ip6-intf b/luci-app-openmptcprouter/root/bin/omr-ip6-intf index c096503ea..12e3bdbc3 100755 --- a/luci-app-openmptcprouter/root/bin/omr-ip6-intf +++ b/luci-app-openmptcprouter/root/bin/omr-ip6-intf @@ -4,14 +4,17 @@ intf=$1 get_ip_from_server() { - serverip=$(uci -q get openmptcprouter.$1.ip) serverport=$(uci -q get openmptcprouter.$1.port) - getip="$(curl -s -k -6 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" - [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') - if [ -n "$(echo "$getip" | grep :)" ]; then - ip=$getip - break - fi + get_ip() { + getip="$(curl -s -k -6 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" + [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') + if [ -n "$(echo "$getip" | grep :)" ]; then + ip=$getip + break + fi + } + config_list_foreach $1 ip get_ip + [ -n "$ip" ] && break } get_ip_from_website() {