diff options
author | marekm72 <35698605+marekm72@users.noreply.github.com> | 2024-09-29 09:42:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-29 09:42:48 +0200 |
commit | 1e5e998a2aa8ddbe6959b3ef878ef9699568d9dd (patch) | |
tree | 8ade51681a7bfffd95ee8dd1635122c85bd593ab | |
parent | 0b4ef9862c65bffd7c2e5798cb35948548ac724d (diff) | |
download | accel-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.c | 5 |
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) |