summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarekm72 <35698605+marekm72@users.noreply.github.com>2024-09-29 09:42:48 +0200
committerGitHub <noreply@github.com>2024-09-29 09:42:48 +0200
commit1e5e998a2aa8ddbe6959b3ef878ef9699568d9dd (patch)
tree8ade51681a7bfffd95ee8dd1635122c85bd593ab
parent0b4ef9862c65bffd7c2e5798cb35948548ac724d (diff)
downloadaccel-ppp-patch.tar.gz
accel-ppp-patch.zip
Don't terminate whole PPPoE session in response to client IPV6CP TermReq if IPv6 not requiredpatch
See accel-ppp/accel-ppp#57 for the bug report, please review.
-rw-r--r--accel-pppd/ppp/ppp_ipv6cp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/accel-pppd/ppp/ppp_ipv6cp.c b/accel-pppd/ppp/ppp_ipv6cp.c
index 1194b31..fc45a8a 100644
--- a/accel-pppd/ppp/ppp_ipv6cp.c
+++ b/accel-pppd/ppp/ppp_ipv6cp.c
@@ -738,7 +738,10 @@ static void ipv6cp_recv(struct ppp_handler_t*h)
if (conf_ppp_verbose)
log_ppp_info2("recv [IPV6CP TermReq id=%x]\n", hdr->id);
ppp_fsm_recv_term_req(&ipv6cp->fsm);
- ap_session_terminate(&ipv6cp->ppp->ses, TERM_USER_REQUEST, 0);
+ if (conf_ipv4 == IPV4_REQUIRE)
+ ap_session_terminate(&ipv6cp->ppp->ses, TERM_USER_REQUEST, 0);
+ else
+ ppp_layer_passive(ipv6cp->ppp, &ipv6cp->ld);
break;
case TERMACK:
if (conf_ppp_verbose)