Project

General

Profile

Download (2.11 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/bin/sh
2

    
3
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
4

    
5
DNSALLOWOVERRIDE=$(/usr/local/sbin/read_xml_tag.sh boolean system/dnsallowoverride)
6

    
7
IF="${1}"
8
PROTOCOL="${2}"
9
LOCAL_IP="${3}"
10
REMOTE_IP="${4}"
11
AUTH_NAME="${5}"
12
DNS1_RAW="${6}"
13
DNS2_RAW="${7}"
14

    
15
if [ "${PROTOCOL}" == "inet" ]; then
16

    
17
	OLD_ROUTER=`cat /tmp/${IF}_router`
18
	if [ -n "${OLD_ROUTER}" ]; then
19
		echo "Removing states to old router ${OLD_ROUTER}" | logger -t ppp-linkup
20
		pfctl -i ${IF} -k 0.0.0.0/0 -k ${OLD_ROUTER}/32
21
		pfctl -i ${IF} -k ${OLD_ROUTER}/32 -k 0.0.0.0/0
22
	fi
23

    
24
	# let the configuration system know that the ipv4 has changed.
25
	echo ${REMOTE_IP} > /tmp/${IF}_router
26
	echo ${LOCAL_IP} > /tmp/${IF}_ip
27
	touch /tmp/${IF}up
28

    
29
	if [ "${DNSALLOWOVERRIDE}" = "true" ]; then
30
		# write nameservers to file
31
		echo -n "" > /var/etc/nameserver_${IF}
32
		if echo "${DNS1_RAW}" | grep -q dns1; then
33
			DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'`
34
			echo "${DNS1}" >> /var/etc/nameserver_${IF}
35
			route change "${DNS1}" ${REMOTE_IP}
36
		fi
37
		if echo "${DNS2_RAW}" | grep -q dns2; then
38
			DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'`
39
			echo "${DNS2}" >> /var/etc/nameserver_${IF}
40
			route change "${DNS2}" ${REMOTE_IP}
41
		fi
42
		pfSctl -c 'service reload dns'
43
		sleep 1
44
	fi
45
	pfSctl -c "interface newip ${IF}"
46

    
47
elif [ "${PROTOCOL}" == "inet6" ]; then
48
	/usr/local/sbin/ppp-ipv6 ${IF} up
49
	# let the configuration system know that the ipv6 has changed.
50
	echo ${REMOTE_IP} |cut -d% -f1 > /tmp/${IF}_routerv6
51
	echo ${LOCAL_IP} |cut -d% -f1 > /tmp/${IF}_ipv6
52
	touch /tmp/${IF}upv6
53

    
54
	if [ "${DNSALLOWOVERRIDE}" = "true" ]; then
55
		# write nameservers to file
56
		echo -n "" > /var/etc/nameserver_v6${IF}
57
		if echo "${DNS1_RAW}" | grep -q dns1; then
58
			DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'`
59
			echo "${DNS1}" >> /var/etc/nameserver_v6${IF}
60
			route change -inet6 "${DNS1}" ${REMOTE_IP}
61
		fi
62
		if echo "${DNS2_RAW}" | grep -q dns2; then
63
			DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'`
64
			echo "${DNS2}" >> /var/etc/nameserver_v6${IF}
65
			route change -inet6 "${DNS2}" ${REMOTE_IP}
66
		fi
67
		pfSctl -c 'service reload dns'
68
		sleep 1
69
	fi
70
	pfSctl -c "interface newipv6 ${IF}"
71
fi
72

    
73
exit 0
(14-14/23)