ds-lite: add support for fqdn peeraddrs
[openwrt/svn-archive/archive.git] / package / network / ipv6 / ds-lite / files / dslite.sh
index 670f93cd6ec12e2197d86aae218ce8c9aa415d20..7b686390b3e8bec03dc8f28bf0f5059869a3c691 100755 (executable)
@@ -25,6 +25,17 @@ proto_dslite_setup() {
 
        ( proto_add_host_dependency "$cfg" "::" "$tunlink" )
 
+       peeraddr=$(resolveip -6 $peeraddr)
+       if [ -z "$peeraddr" ]; then
+               sleep 3
+               peeraddr=$(resolveip -6 $peeraddr)
+               if [ -z "$peeraddr" ]; then
+                       proto_notify_error "$cfg" "AFTR_DNS_FAIL"
+                       return
+               fi
+       fi
+       peeraddr="${peeraddr%% *}"
+
        [ -z "$ip6addr" ] && {
                local wanif="$tunlink"
                if [ -z "$wanif" ] && ! network_find_wan6 wanif; then
@@ -56,6 +67,13 @@ proto_dslite_setup() {
 
        proto_add_data
        [ -n "$zone" ] && json_add_string zone "$zone"
+
+       json_add_array firewall
+         json_add_object ""
+           json_add_string type nat
+           json_add_string target ACCEPT
+         json_close_object
+       json_close_array
        proto_close_data
 
        proto_send_update "$cfg"