aboutsummaryrefslogtreecommitdiffstats
path: root/package/ppp/files/ppp.sh
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-05-07 01:22:48 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-05-07 01:22:48 +0000
commit4c686abd91aab45c07b75063be2a081e7f8cec38 (patch)
tree9441db39cb28cdf7f5634ffc9261adc38f9ab85c /package/ppp/files/ppp.sh
parent58cc0f2aceaa138174e6da26cd2ecc2a1fa3b66c (diff)
downloadupstream-4c686abd91aab45c07b75063be2a081e7f8cec38.tar.gz
upstream-4c686abd91aab45c07b75063be2a081e7f8cec38.tar.bz2
upstream-4c686abd91aab45c07b75063be2a081e7f8cec38.zip
[package] ppp:
- don't let pppd control resolv.conf.auto because it will wipe foreign dns entries - handle dns setup in ip-up handler - use add_dns() and remove_dns() to only add/remove dns entries related to the corresponding pppd instance - make pppd shutdown work for interfaces without ifname option, e.g. pptp git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21392 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/ppp/files/ppp.sh')
-rw-r--r--package/ppp/files/ppp.sh18
1 files changed, 5 insertions, 13 deletions
diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index 42daef9220..53cfb1be1a 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -4,10 +4,7 @@ stop_interface_ppp() {
local proto
config_get proto "$cfg" proto
- local ifname
- config_get ifname "$cfg" ifname
-
- local link="$proto-${ifname#$proto-}"
+ local link="$proto-$cfg"
[ -f "/var/run/ppp-${link}.pid" ] && {
local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)"
local try=0
@@ -18,6 +15,8 @@ stop_interface_ppp() {
rm -f "/var/run/ppp-${link}.pid"
}
+ remove_dns "$cfg"
+
local lock="/var/lock/ppp-$link"
[ -f "$lock" ] && lock -u "$lock"
}
@@ -85,17 +84,11 @@ start_pppd() {
local peerdns
config_get_bool peerdns "$cfg" peerdns $peer_default
- if [ "$peerdns" -eq 1 ] || [ ! -e /tmp/resolv.conf.auto ]; then
- echo -n "" > /tmp/resolv.conf.auto
- fi
-
[ "$peerdns" -eq 1 ] && {
peerdns="usepeerdns"
} || {
peerdns=""
- for dns in $dns; do
- echo "nameserver $dns" >> /tmp/resolv.conf.auto
- done
+ add_dns "$cfg" $dns
}
local demand
@@ -104,8 +97,7 @@ start_pppd() {
local demandargs
[ "$demand" -eq 1 ] && {
demandargs="precompiled-active-filter /etc/ppp/filter demand idle"
- [ "$has_dns" -eq 0 ] && \
- echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto
+ [ "$has_dns" -eq 0 ] && add_dns "$cfg" 1.1.1.1
} || {
demandargs="persist"
}