X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/75afa914774d7b53cd5948d0c7a9b33cd708b32b..e3d97e60d82760a934bb65b3f67df992c434e4a6:/package/6in4/files/6in4.hotplug?ds=sidebyside diff --git a/package/6in4/files/6in4.hotplug b/package/6in4/files/6in4.hotplug index 9499296d9..9df993498 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,11 +34,12 @@ 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="$(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" @@ -51,6 +57,9 @@ if [ "$ACTION" = ifup ]; then } done )& + } || { + logger -t 6in4-update "Re-establishing tunnel due to change on $INTERFACE ($DEVICE)" + ifup "$cfg" & } } }