summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--accel-pppd/logs/log_file.c2
-rw-r--r--accel-pppd/session.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/accel-pppd/logs/log_file.c b/accel-pppd/logs/log_file.c
index 42d9f3f4..481afa1e 100644
--- a/accel-pppd/logs/log_file.c
+++ b/accel-pppd/logs/log_file.c
@@ -268,7 +268,7 @@ static struct ap_private *find_pd(struct ap_session *ses, void *pd_key)
struct list_head *pos, *next;
list_for_each_safe(pos, next, &ses->pd_list) {
- pd = list_entry(pos->next, typeof(*pd), entry);
+ pd = list_entry(pos, typeof(*pd), entry);
if (pd->key == pd_key) {
return pd;
}
diff --git a/accel-pppd/session.c b/accel-pppd/session.c
index 1411f24f..78d12f95 100644
--- a/accel-pppd/session.c
+++ b/accel-pppd/session.c
@@ -278,6 +278,8 @@ void __export ap_session_terminate(struct ap_session *ses, int cause, int hard)
if (ses->terminating) {
if (hard)
ses->ctrl->terminate(ses, hard);
+ else if (ses->state == AP_STATE_FINISHING)
+ ses->ctrl->terminate(ses, 1);
return;
}