aboutsummaryrefslogtreecommitdiffstats
path: root/package/network
diff options
context:
space:
mode:
Diffstat (limited to 'package/network')
-rwxr-xr-xpackage/network/ipv6/6in4/files/6in4.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/package/network/ipv6/6in4/files/6in4.sh b/package/network/ipv6/6in4/files/6in4.sh
index 941dc43d68..0f631b78ba 100755
--- a/package/network/ipv6/6in4/files/6in4.sh
+++ b/package/network/ipv6/6in4/files/6in4.sh
@@ -9,6 +9,20 @@
init_proto "$@"
}
+# Function taken from 6to4 package (6to4.sh), flipped returns
+test_6in4_rfc1918()
+{
+ local oIFS="$IFS"; IFS="."; set -- $1; IFS="$oIFS"
+ [ $1 -eq 10 ] && return 1
+ [ $1 -eq 192 ] && [ $2 -eq 168 ] && return 1
+ [ $1 -eq 172 ] && [ $2 -ge 16 ] && [ $2 -le 31 ] && return 1
+
+ # RFC 6598
+ [ $1 -eq 100 ] && [ $2 -ge 64 ] && [ $2 -le 127 ] && return 1
+
+ return 0
+}
+
proto_6in4_update() {
sh -c '
timeout=5
@@ -97,6 +111,11 @@ proto_6in4_setup() {
}
local url="$http://ipv4.tunnelbroker.net/nic/update?hostname=$tunnelid"
+
+ test_6in4_rfc1918 "$ipaddr" && {
+ local url="${url}&myip=${ipaddr}"
+ }
+
local try=0
local max=3