summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pptpd/ppp')
-rw-r--r--accel-pptpd/ppp/ppp_ccp.c3
-rw-r--r--accel-pptpd/ppp/ppp_lcp.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/accel-pptpd/ppp/ppp_ccp.c b/accel-pptpd/ppp/ppp_ccp.c
index 4f30aa9..9f8419f 100644
--- a/accel-pptpd/ppp/ppp_ccp.c
+++ b/accel-pptpd/ppp/ppp_ccp.c
@@ -607,7 +607,8 @@ static void ccp_recv(struct ppp_handler_t*h)
if (ccp->fsm.fsm_state == FSM_Initial || ccp->fsm.fsm_state == FSM_Closed) {
if (conf_ppp_verbose)
log_ppp_warn("CCP: discaring packet\n");
- lcp_send_proto_rej(ccp->ppp, htons(PPP_CCP));
+ if (ccp->fsm.fsm_state == FSM_Closed)
+ lcp_send_proto_rej(ccp->ppp, htons(PPP_CCP));
return;
}
diff --git a/accel-pptpd/ppp/ppp_lcp.c b/accel-pptpd/ppp/ppp_lcp.c
index 0eae8fc..e5063f3 100644
--- a/accel-pptpd/ppp/ppp_lcp.c
+++ b/accel-pptpd/ppp/ppp_lcp.c
@@ -690,6 +690,13 @@ static void lcp_recv(struct ppp_handler_t*h)
int r;
char *term_msg;
+ if (lcp->fsm.fsm_state == FSM_Initial || lcp->fsm.fsm_state == FSM_Closed) {
+ /*if (conf_ppp_verbose)
+ log_ppp_warn("LCP: discaring packet\n");
+ lcp_send_proto_rej(ccp->ppp, htons(PPP_CCP));*/
+ return;
+ }
+
if (lcp->ppp->chan_buf_size < PPP_HEADERLEN + 2) {
log_ppp_warn("LCP: short packet received\n");
return;