summaryrefslogtreecommitdiffstats
path: root/package/6in4/files/6in4.hotplug
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-19 21:10:04 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-19 21:10:04 +0000
commit5fe04db16c68069745b6ace80b4e0f01e1e553c0 (patch)
tree9e6d435125d75e64d7845f2ab45c52549b476bc1 /package/6in4/files/6in4.hotplug
parent97d7f20d53ebd7b9865d9232dc18eb8770768dc9 (diff)
6in4: add netifd support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31036 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/6in4/files/6in4.hotplug')
-rw-r--r--package/6in4/files/6in4.hotplug47
1 files changed, 4 insertions, 43 deletions
diff --git a/package/6in4/files/6in4.hotplug b/package/6in4/files/6in4.hotplug
index 3d9def448..8d7855547 100644
--- a/package/6in4/files/6in4.hotplug
+++ b/package/6in4/files/6in4.hotplug
@@ -3,6 +3,9 @@
if [ "$ACTION" = ifup ]; then
. /etc/functions.sh
+ INCLUDE_ONLY=1
+ . /lib/netifd/proto/6in4.sh
+
include /lib/network
scan_interfaces
@@ -19,49 +22,7 @@ if [ "$ACTION" = ifup ]; then
local wanip=$(find_6in4_wanip "$wandev")
- [ -n "$wanip" ] && {
- lsmod | grep -q ^sit || {
- logger -t 6in4-update "Tunneling driver not loaded yet, deferring action"
- exit 0
- }
-
- local tunnelid
- config_get tunnelid "$cfg" tunnelid
-
- local username
- config_get username "$cfg" username
-
- local password
- config_get password "$cfg" password
-
- uci_set_state network "$cfg" ipaddr "$wanip"
-
- [ -n "$tunnelid" ] && [ -n "$username" ] && [ -n "$password" ] && {
- [ "${#password}" == 32 -a -z "${password//[a-fA-F0-9]/}" ] || {
- password="$(echo -n "$password" | md5sum)"; password="${password%% *}"
- }
-
- (
- local url="http://ipv4.tunnelbroker.net/ipv4_end.php?ip=AUTO&apikey=$username&pass=$password&tid=$tunnelid"
- local try=0
- local max=3
-
- while [ $((++try)) -le $max ]; do
- wget -qO/dev/null "$url" 2>/dev/null && {
- logger -t 6in4-update "Updated tunnel #$tunnelid endpoint to $wanip"
- ifup "$cfg"
- break
- } || {
- logger -t 6in4-update "Try $try/$max failed, retrying"
- sleep 1
- }
- done
- )&
- } || {
- logger -t 6in4-update "Re-establishing tunnel due to change on $INTERFACE ($DEVICE)"
- ifup "$cfg" &
- }
- }
+ [ -n "$wanip" ] && ifup "$cfg"
}
config_foreach update_tunnel interface