aboutsummaryrefslogtreecommitdiffstats
path: root/package/ppp/files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-05-05 23:24:11 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-05-05 23:24:11 +0000
commit2a8c7ceaf4a1b8b7efc230148082b64d53bbf1e2 (patch)
tree4bb3c9934306627fd565eb8f47392887e93d4cd2 /package/ppp/files
parent60ea4c934972b76037bb1e08a4f4ab0da3afe634 (diff)
downloadmaster-187ad058-2a8c7ceaf4a1b8b7efc230148082b64d53bbf1e2.tar.gz
master-187ad058-2a8c7ceaf4a1b8b7efc230148082b64d53bbf1e2.tar.bz2
master-187ad058-2a8c7ceaf4a1b8b7efc230148082b64d53bbf1e2.zip
[package] base-files, ppp: remove protocol specific cleanup code from /sbin/ifdown and move it to protocol stop callbacks
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21383 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/ppp/files')
-rw-r--r--package/ppp/files/ppp.sh7
1 files changed, 6 insertions, 1 deletions
diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index bc18d1ec9a..b3c9e53655 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -10,8 +10,13 @@ stop_interface_ppp() {
local link="${proto:-ppp}-$ifname"
[ -f "/var/run/ppp-${link}.pid" ] && {
local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)"
- grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid
+ grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid && \
+ while grep -qs pppd "/proc/$pid/cmdline"; do sleep 1; done
+ rm -f "/var/run/ppp-${link}.pid"
}
+
+ local lock="/var/lock/ppp-$link"
+ [ -f "$lock" ] && lock -u "$lock"
}
start_pppd() {