summaryrefslogtreecommitdiffstats
path: root/package/6to4/files/6to4.hotplug
blob: 1e3d26c418843cfd763d3ef50958d43f020edd6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

if [ "$ACTION" = ifup ]; then
	. /etc/functions.sh

	include /lib/network
	scan_interfaces

	update_tunnel() {
		local cfg="$1"

		local proto
		config_get proto "$cfg" proto
		[ "$proto" = 6to4 ] || return 0

		local wandev
		config_get wandev "$cfg" wan_device "$(find_6to4_wanif)"
		[ "$wandev" = "$DEVICE" ] || return 0

		local wanip=$(find_6to4_wanip "$wandev")

		[ -n "$wanip" ] && {
			lsmod | grep -q ^sit || {
				logger -t 6to4 "Tunneling driver not loaded yet, deferring action"
				exit 0
			}

			uci_set_state network "$cfg" ipaddr "$wanip"
			( ifup "$cfg" )&
		}
	}

	config_foreach update_tunnel interface
fi