summaryrefslogtreecommitdiffstats
path: root/src/usr/local/sbin/ppp-linkup
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/local/sbin/ppp-linkup')
-rwxr-xr-xsrc/usr/local/sbin/ppp-linkup62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/usr/local/sbin/ppp-linkup b/src/usr/local/sbin/ppp-linkup
new file mode 100755
index 0000000..2d1eb33
--- /dev/null
+++ b/src/usr/local/sbin/ppp-linkup
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
+
+if [ "${2}" == "inet" ]; then
+
+ OLD_ROUTER=`cat /tmp/${1}_router`
+ if [ -n "${OLD_ROUTER}" ]; then
+ echo "Removing states to old router ${OLD_ROUTER}" | logger -t ppp-linkup
+ pfctl -i ${1} -k 0.0.0.0/0 -k ${OLD_ROUTER}/32
+ pfctl -i ${1} -k ${OLD_ROUTER}/32 -k 0.0.0.0/0
+ fi
+
+ # let the configuration system know that the ipv4 has changed.
+ echo ${4} > /tmp/${1}_router
+ echo ${3} > /tmp/${1}_ip
+ touch /tmp/${1}up
+
+ if grep -q dnsallowoverride /conf/config.xml; then
+ # write nameservers to file
+ echo -n "" > /var/etc/nameserver_${1}
+ if echo "${6}" | grep -q dns1; then
+ DNS1=`echo "${6}" | awk '{print $2}'`
+ echo "${DNS1}" >> /var/etc/nameserver_${1}
+ route change "${DNS1}" ${4}
+ fi
+ if echo "${7}" | grep -q dns2; then
+ DNS2=`echo "${7}" | awk '{print $2}'`
+ echo "${DNS2}" >> /var/etc/nameserver_${1}
+ route change "${DNS2}" ${4}
+ fi
+ pfSctl -c 'service reload dns'
+ sleep 1
+ fi
+ pfSctl -c "interface newip ${1}"
+
+elif [ "${2}" == "inet6" ]; then
+ # let the configuration system know that the ipv6 has changed.
+ echo ${4} |cut -d% -f1 > /tmp/${1}_routerv6
+ echo ${3} |cut -d% -f1 > /tmp/${1}_ipv6
+ touch /tmp/${1}upv6
+
+ if grep -q dnsallowoverride /conf/config.xml; then
+ # write nameservers to file
+ echo -n "" > /var/etc/nameserver_v6${1}
+ if echo "${6}" | grep -q dns1; then
+ DNS1=`echo "${6}" | awk '{print $2}'`
+ echo "${DNS1}" >> /var/etc/nameserver_v6${1}
+ route change -inet6 "${DNS1}" ${4}
+ fi
+ if echo "${7}" | grep -q dns2; then
+ DNS2=`echo "${7}" | awk '{print $2}'`
+ echo "${DNS2}" >> /var/etc/nameserver_v6${1}
+ route change -inet6 "${DNS2}" ${4}
+ fi
+ pfSctl -c 'service reload dns'
+ sleep 1
+ fi
+ pfSctl -c "interface newipv6 ${1}"
+fi
+
+exit 0
OpenPOWER on IntegriCloud