diff options
author | Kozlov Dmitry <dima@server> | 2010-08-10 17:10:57 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-08-10 17:10:57 +0400 |
commit | 5286c9d19031c93a785a4d8729abf9e6a1710f98 (patch) | |
tree | bf6d60b1e8a0593afce333c80d6514d709c1151e /accel-pptpd/ppp_lcp.c | |
parent | 4a268755565ced740c391a4c8c7fc7c98b7fc3c7 (diff) | |
download | accel-ppp-5286c9d19031c93a785a4d8729abf9e6a1710f98.tar.gz accel-ppp-5286c9d19031c93a785a4d8729abf9e6a1710f98.zip |
working on PAP
Diffstat (limited to 'accel-pptpd/ppp_lcp.c')
-rw-r--r-- | accel-pptpd/ppp_lcp.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/accel-pptpd/ppp_lcp.c b/accel-pptpd/ppp_lcp.c index dc996e0e..50ad444f 100644 --- a/accel-pptpd/ppp_lcp.c +++ b/accel-pptpd/ppp_lcp.c @@ -31,11 +31,12 @@ struct ppp_layer_t* ppp_lcp_init(struct ppp_t *ppp) struct ppp_layer_t *layer=malloc(sizeof(*layer)); memset(layer,0,sizeof(*layer)); - layer->proto=PPP_LCP; + layer->h.proto=PPP_LCP; + layer->h.recv=lcp_recv; + layer->ppp=ppp; ppp_fsm_init(layer); - layer->recv=lcp_recv; layer->send_conf_req=send_conf_req; layer->send_conf_ack=send_conf_ack; layer->send_conf_nak=send_conf_nak; @@ -43,6 +44,8 @@ struct ppp_layer_t* ppp_lcp_init(struct ppp_t *ppp) ppp_fsm_init(layer); + ppp_register_handler(&layer->h); + return layer; } @@ -324,9 +327,10 @@ void send_echo_reply(struct ppp_layer_t *layer) ppp_send(layer->ppp,&msg,msg.hdr.len+2); } -static void lcp_recv(struct ppp_layer_t*l) +static void lcp_recv(struct ppp_handler_t*h) { struct lcp_hdr_t *hdr; + struct ppp_layer_t *l=container_of(h,typeof(*l),h); if (l->ppp->in_buf_size<PPP_HEADERLEN+2) { |