diff options
-rwxr-xr-x | package/network/ipv6/6in4/files/6in4.sh | 19 |
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 |