X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/75afa914774d7b53cd5948d0c7a9b33cd708b32b..b95eb02775e725afcd2f1edccf77aa43057f7eda:/package/6in4/files/6in4.hotplug?ds=sidebyside diff --git a/package/6in4/files/6in4.hotplug b/package/6in4/files/6in4.hotplug index 9499296d9..3d9def448 100644 --- a/package/6in4/files/6in4.hotplug +++ b/package/6in4/files/6in4.hotplug @@ -20,6 +20,11 @@ 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 @@ -29,14 +34,15 @@ if [ "$ACTION" = ifup ]; then 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-f0-9]/}" ] || { + [ "${#password}" == 32 -a -z "${password//[a-fA-F0-9]/}" ] || { password="$(echo -n "$password" | md5sum)"; password="${password%% *}" } - uci_set_state network "$cfg" ipaddr "$wanip" ( - local url="http://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&user_id=$username&pass=$password&tunnel_id=$tunnelid" + local url="http://ipv4.tunnelbroker.net/ipv4_end.php?ip=AUTO&apikey=$username&pass=$password&tid=$tunnelid" local try=0 local max=3 @@ -51,6 +57,9 @@ if [ "$ACTION" = ifup ]; then } done )& + } || { + logger -t 6in4-update "Re-establishing tunnel due to change on $INTERFACE ($DEVICE)" + ifup "$cfg" & } } }