summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp/ppp_ccp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2010-09-27 13:27:12 +0400
committerKozlov Dmitry <dima@server>2010-09-27 13:27:12 +0400
commit59d9616d73973c529b08578f3596acaa081cd8bf (patch)
tree947fd1ab82c41beb57bba81e4e51ee5a4951bc6f /accel-pptpd/ppp/ppp_ccp.c
parentf122327288ae4429bb88a0fefdcef0bf80f54023 (diff)
downloadaccel-ppp-xebd-59d9616d73973c529b08578f3596acaa081cd8bf.tar.gz
accel-ppp-xebd-59d9616d73973c529b08578f3596acaa081cd8bf.zip
bug fixes
Diffstat (limited to 'accel-pptpd/ppp/ppp_ccp.c')
-rw-r--r--accel-pptpd/ppp/ppp_ccp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/accel-pptpd/ppp/ppp_ccp.c b/accel-pptpd/ppp/ppp_ccp.c
index 301c238..e2ee48a 100644
--- a/accel-pptpd/ppp/ppp_ccp.c
+++ b/accel-pptpd/ppp/ppp_ccp.c
@@ -78,6 +78,7 @@ static struct ppp_layer_data_t *ccp_layer_init(struct ppp_t *ppp)
ppp_register_unit_handler(ppp,&ccp->hnd);
+ ccp->fsm.proto = PPP_CCP;
ppp_fsm_init(&ccp->fsm);
ccp->fsm.layer_up=ccp_layer_up;
@@ -544,14 +545,13 @@ static void ccp_recv(struct ppp_handler_t*h)
ppp_fsm_recv_conf_rej(&ccp->fsm);
break;
case TERMREQ:
- term_msg=_strndup((char*)(hdr+1),ntohs(hdr->len));
+ term_msg=_strndup((char*)(hdr+1),ntohs(hdr->len) - 4);
log_ppp_debug("recv [CCP TermReq id=%x \"%s\"]\n",hdr->id,term_msg);
_free(term_msg);
ppp_fsm_recv_term_req(&ccp->fsm);
- ppp_terminate(ccp->ppp, 0);
break;
case TERMACK:
- term_msg=_strndup((char*)(hdr+1),ntohs(hdr->len));
+ term_msg=_strndup((char*)(hdr+1),ntohs(hdr->len) - 4);
log_ppp_debug("recv [CCP TermAck id=%x \"%s\"]\n",hdr->id,term_msg);
_free(term_msg);
ppp_fsm_recv_term_ack(&ccp->fsm);