diff options
author | Kozlov Dmitry <dima@server> | 2010-08-23 13:36:50 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-08-23 18:32:37 +0400 |
commit | 76615aa33fb294f2fdfdee3e4687de94bb5efce9 (patch) | |
tree | 5ff166a087fdd349de42cca87326a85570af9a8f /accel-pptpd/ppp_lcp.c | |
parent | 1dbf2a2820c428b8ba8b04d6ec30c78f642cbfb3 (diff) | |
download | accel-ppp-xebd-76615aa33fb294f2fdfdee3e4687de94bb5efce9.tar.gz accel-ppp-xebd-76615aa33fb294f2fdfdee3e4687de94bb5efce9.zip |
implemented base IPCP module
implemented IP-Address configuration option
Diffstat (limited to 'accel-pptpd/ppp_lcp.c')
-rw-r--r-- | accel-pptpd/ppp_lcp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/accel-pptpd/ppp_lcp.c b/accel-pptpd/ppp_lcp.c index bfc9917..2bb7e38 100644 --- a/accel-pptpd/ppp_lcp.c +++ b/accel-pptpd/ppp_lcp.c @@ -6,7 +6,6 @@ #include "triton/triton.h" -#include "events.h" #include "log.h" #include "ppp.h" @@ -110,7 +109,6 @@ void lcp_layer_finish(struct ppp_layer_data_t *ld) ppp_unregister_handler(lcp->ppp,&lcp->hnd); lcp_options_free(lcp); - } void lcp_layer_free(struct ppp_layer_data_t *ld) @@ -299,9 +297,17 @@ static int lcp_recv_conf_req(struct ppp_lcp_t *lcp,uint8_t *data,int size) r=lopt->h->recv_conf_req(lcp,lopt,(uint8_t*)ropt->hdr); lopt->state=r; ropt->state=r; + ropt->lopt=lopt; if (r<ret) ret=r; } } + if (!ropt->lopt) + { + log_debug(" "); + print_ropt(ropt); + ropt->state=LCP_OPT_REJ; + ret=LCP_OPT_REJ; + } } log_debug("]\n"); @@ -520,6 +526,7 @@ static void lcp_recv(struct ppp_handler_t*h) log_debug("recv [LCP TermReq id=%x \"%s\"]\n",hdr->id,term_msg); free(term_msg); ppp_fsm_recv_term_req(&lcp->fsm); + ppp_terminate(lcp->ppp); break; case TERMACK: term_msg=strndup((uint8_t*)(hdr+1),ntohs(hdr->len)); |