From 1e5e998a2aa8ddbe6959b3ef878ef9699568d9dd Mon Sep 17 00:00:00 2001 From: marekm72 <35698605+marekm72@users.noreply.github.com> Date: Sun, 29 Sep 2024 09:42:48 +0200 Subject: Don't terminate whole PPPoE session in response to client IPV6CP TermReq if IPv6 not required See accel-ppp/accel-ppp#57 for the bug report, please review. --- accel-pppd/ppp/ppp_ipv6cp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'accel-pppd/ppp/ppp_ipv6cp.c') 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) -- cgit v1.2.3