![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package ppp for openSUSE:Factory checked in at 2013-09-04 14:02:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ppp (Old) and /work/SRC/openSUSE:Factory/.ppp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ppp" Changes: -------- --- /work/SRC/openSUSE:Factory/ppp/ppp.changes 2013-08-01 17:14:06.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ppp.new/ppp.changes 2013-09-04 14:02:57.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Sep 2 14:41:21 UTC 2013 - max@suse.com + +- Add ppp-terminate-correct.patch, fix the pppd's hang after exit + (bnc#693469). + +------------------------------------------------------------------- New: ---- ppp-terminate-correct.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ppp.spec ++++++ --- /var/tmp/diff_new_pack.C9Bz4i/_old 2013-09-04 14:02:58.000000000 +0200 +++ /var/tmp/diff_new_pack.C9Bz4i/_new 2013-09-04 14:02:58.000000000 +0200 @@ -71,6 +71,7 @@ Patch21: ppp-2.4.4-lib64.patch Patch22: ppp-2.4.4-var_run_resolv_conf.patch Patch23: ppp-send-padt.patch +Patch24: ppp-terminate-correct.patch %description The ppp package contains the PPP (Point-to-Point Protocol) daemon, @@ -112,6 +113,7 @@ %endif %patch22 %patch23 -p1 +%patch24 -p1 sed -i -e '1s/local\///' scripts/secure-card find scripts -type f | xargs chmod a-x ++++++ ppp-terminate-correct.patch ++++++
From 3eb9e810cfa515543655659b72dde30c54fea0a5 Mon Sep 17 00:00:00 2001 From: Paul Mackerras
Date: Sun, 7 Mar 2010 15:21:38 +1100 Subject: [PATCH 1/1] pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup
Cameron Hutchison noticed that if pppd gets asked to terminate the
link in the period between when lcp_lowerup() is called and when
fsm_lowerup() is called from lcp_delayed_up() (i.e. when listen_time
is non-zero), pppd never exits.
The reason is that lcp_close() doesn't handle the delayed-up case
properly. Since the FSM is still in STOPPED state, we don't call
lcp_finished() and therefore never exit the main event loop.
This fixes it by handling the delayed-up case in lcp_close() as if
we had done the lowerup but the OPT_SILENT bit was set. We use the
silent case because we don't want to actually send a configure-request
at this point.
Signed-off-by: Paul Mackerras