ds-lite: fix resolve retry for fqdn peeraddrs
authorJonas Gorski <jogo@openwrt.org>
Fri, 22 May 2015 10:24:30 +0000 (10:24 +0000)
committerJonas Gorski <jogo@openwrt.org>
Fri, 22 May 2015 10:24:30 +0000 (10:24 +0000)
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

package/network/ipv6/ds-lite/Makefile
package/network/ipv6/ds-lite/files/dslite.sh

index a232a1c..8c22c46 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ds-lite
-PKG_VERSION:=6
+PKG_VERSION:=7
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0
 
index e849b15..a7e0a10 100755 (executable)
@@ -13,6 +13,7 @@ proto_dslite_setup() {
        local cfg="$1"
        local iface="$2"
        local link="ds-$cfg"
+       local remoteip6
 
        local 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" )
 
-       peeraddr=$(resolveip -6 $peeraddr)
-       if [ -z "$peeraddr" ]; then
+       remoteip6=$(resolveip -6 $peeraddr)
+       if [ -z "$remoteip6" ]; then
                sleep 3
-               peeraddr=$(resolveip -6 $peeraddr)
-               if [ -z "$peeraddr" ]; then
+               remoteip6=$(resolveip -6 $peeraddr)
+               if [ -z "$remoteip6" ]; then
                        proto_notify_error "$cfg" "AFTR_DNS_FAIL"
                        return
                fi
        fi
-       peeraddr="${peeraddr%% *}"
+       peeraddr="${remoteip6%% *}"
 
        [ -z "$ip6addr" ] && {
                local wanif="$tunlink"