aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-11-07 13:24:10 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-11-07 13:24:10 +0000
commitf77a9849c03c30784e59f4c2a03a51263954a89a (patch)
treeadd1be472eaad2e32cd7bf051cd0501c2051a7c6
parent5bc6d1c39e6541fefaf357946500f1c9bca03fa5 (diff)
downloadupstream-f77a9849c03c30784e59f4c2a03a51263954a89a.tar.gz
upstream-f77a9849c03c30784e59f4c2a03a51263954a89a.tar.bz2
upstream-f77a9849c03c30784e59f4c2a03a51263954a89a.zip
add ppp ipv6 patch by farnz (from #2525)
SVN-Revision: 9508
-rw-r--r--package/ppp/Makefile2
-rw-r--r--package/ppp/files/etc/ppp/ipv6-down16
-rw-r--r--package/ppp/files/etc/ppp/ipv6-up16
-rw-r--r--package/ppp/files/ppp.sh5
4 files changed, 37 insertions, 2 deletions
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
index ee58f72e47..b8b08d8610 100644
--- a/package/ppp/Makefile
+++ b/package/ppp/Makefile
@@ -134,6 +134,8 @@ define Package/ppp/install
$(INSTALL_DIR) $(1)/etc/ppp/ip-up.d
$(INSTALL_BIN) ./files/etc/ppp/ip-down $(1)/etc/ppp/
$(INSTALL_DIR) $(1)/etc/ppp/ip-down.d
+ $(INSTALL_BIN) ./files/etc/ppp/ipv6-up $(1)/etc/ppp/
+ $(INSTALL_BIN) ./files/etc/ppp/ipv6-down $(1)/etc/ppp/
$(INSTALL_DATA) ./files/etc/ppp/options $(1)/etc/ppp/
ln -sf /tmp/resolv.conf.auto $(1)/etc/ppp/resolv.conf
endef
diff --git a/package/ppp/files/etc/ppp/ipv6-down b/package/ppp/files/etc/ppp/ipv6-down
index 76678de72c..a4e0491a80 100644
--- a/package/ppp/files/etc/ppp/ipv6-down
+++ b/package/ppp/files/etc/ppp/ipv6-down
@@ -1,2 +1,16 @@
#!/bin/sh
-route -A inet6 del $4 dev $1
+
+gw=$4
+dev=$1
+cfg=$6
+
+. /etc/functions.sh # common functions
+include /lib/network # include /lib/network/*.sh
+scan_interfaces # read and parse the network config
+
+config_get_bool defaultroute "$cfg" defaultroute 1
+
+if [ ${defaultroute} -eq 1 ]
+then
+ route -A inet6 del default gw ${gw} dev ${dev}
+fi
diff --git a/package/ppp/files/etc/ppp/ipv6-up b/package/ppp/files/etc/ppp/ipv6-up
index e349471524..9ece44ad83 100644
--- a/package/ppp/files/etc/ppp/ipv6-up
+++ b/package/ppp/files/etc/ppp/ipv6-up
@@ -1,2 +1,16 @@
#!/bin/sh
-route -A inet6 add default $4 dev $1
+
+gw=$4
+dev=$1
+cfg=$6
+
+. /etc/functions.sh # common functions
+include /lib/network # include /lib/network/*.sh
+scan_interfaces # read and parse the network config
+
+config_get_bool defaultroute "$cfg" defaultroute 1
+
+if [ ${defaultroute} -eq 1 ]
+then
+ route -A inet6 add default gw ${gw} dev ${dev}
+fi
diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index 5ca1cf9c7d..339b4e73e8 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -37,6 +37,10 @@ start_pppd() {
config_get demand "$cfg" demand
[ -n "$demand" ] && echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto
+
+ config_get_bool ipv6 "$cfg" ipv6 0
+ [ "$ipv6" -eq 1 ] && ipv6="+ipv6" || ipv6=""
+
/usr/sbin/pppd "$@" \
${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}} \
${demand:+precompiled-active-filter /etc/ppp/filter demand idle }${demand:-persist} \
@@ -48,6 +52,7 @@ start_pppd() {
ipparam "$cfg" \
${connect:+connect "$connect"} \
${disconnect:+disconnect "$disconnect"} \
+ ${ipv6} \
${pppd_options}
lock -u "/var/lock/ppp-${cfg}"