ds-lite: fix resolve retry for fqdn peeraddrs

If the first resolveip call will fail, peeraddr will be now empty, and
the subsequent resolveip call will try to resolve an empty string.

Fix this by storing the result in a temporary variable.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 45712
v19.07.3_mercusys_ac12_duma
Jonas Gorski 9 years ago
parent 76d079204d
commit 5caa23551e

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ds-lite PKG_NAME:=ds-lite
PKG_VERSION:=6 PKG_VERSION:=7
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0

@ -13,6 +13,7 @@ proto_dslite_setup() {
local cfg="$1" local cfg="$1"
local iface="$2" local iface="$2"
local link="ds-$cfg" local link="ds-$cfg"
local remoteip6
local mtu ttl peeraddr ip6addr tunlink zone weakif local mtu ttl peeraddr ip6addr tunlink zone weakif
json_get_vars mtu ttl peeraddr ip6addr tunlink zone weakif json_get_vars mtu ttl peeraddr ip6addr tunlink zone weakif
@ -25,16 +26,16 @@ proto_dslite_setup() {
( proto_add_host_dependency "$cfg" "::" "$tunlink" ) ( proto_add_host_dependency "$cfg" "::" "$tunlink" )
peeraddr=$(resolveip -6 $peeraddr) remoteip6=$(resolveip -6 $peeraddr)
if [ -z "$peeraddr" ]; then if [ -z "$remoteip6" ]; then
sleep 3 sleep 3
peeraddr=$(resolveip -6 $peeraddr) remoteip6=$(resolveip -6 $peeraddr)
if [ -z "$peeraddr" ]; then if [ -z "$remoteip6" ]; then
proto_notify_error "$cfg" "AFTR_DNS_FAIL" proto_notify_error "$cfg" "AFTR_DNS_FAIL"
return return
fi fi
fi fi
peeraddr="${peeraddr%% *}" peeraddr="${remoteip6%% *}"
[ -z "$ip6addr" ] && { [ -z "$ip6addr" ] && {
local wanif="$tunlink" local wanif="$tunlink"

Loading…
Cancel
Save