X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/8aa16e6262042b83953a89548a07459bbef3cbb9..3fdc1ce3731867455de533ab953f08073b56ffd0:/l2tpns.c diff --git a/l2tpns.c b/l2tpns.c index 93fcc29..6d0ef96 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -4,7 +4,7 @@ // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced // vim: sw=8 ts=8 -char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.121 2005-08-11 05:50:24 bodea Exp $"; +char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.125 2005-08-29 11:24:31 bodea Exp $"; #include #include @@ -1584,6 +1584,7 @@ void sendipcp(sessionidt s, tunnelidt t) uint8_t *q; CSTAT(sendipcp); + LOG(3, s, t, "IPCP: send ConfigReq\n"); if (!session[s].unique_id) { @@ -1612,6 +1613,7 @@ void sendipv6cp(sessionidt s, tunnelidt t) uint8_t *q; CSTAT(sendipv6cp); + LOG(3, s, t, "IPV6CP: send ConfigReq\n"); q = makeppp(buf,sizeof(buf), 0, 0, s, t, PPPIPV6CP); if (!q) return; @@ -2292,7 +2294,7 @@ void processudp(uint8_t *buf, int len, struct sockaddr_in *addr) controlt *c = controlnew(2); // sending SCCRP control16(c, 2, version, 1); // protocol version control32(c, 3, 3, 1); // framing - controls(c, 7, tunnel[t].hostname, 1); // host name (TBA) + controls(c, 7, hostname, 1); // host name if (chapresponse) controlb(c, 13, chapresponse, 16, 1); // Challenge response control16(c, 9, t, 1); // assigned tunnel controladd(c, 0, t); // send the resply @@ -2376,15 +2378,16 @@ void processudp(uint8_t *buf, int len, struct sockaddr_in *addr) if (amagic == 0) amagic = time_now; session[s].magic = amagic; // set magic number session[s].l2tp_flags = aflags; // set flags received + session[s].mru = DEFAULT_MRU; controlnull(t); // ack // start LCP - sendlcp(s, t, config->radius_authprefer); sess_local[s].lcp.restart = time_now + config->ppp_restart_time; sess_local[s].lcp.conf_sent = 1; sess_local[s].lcp.nak_sent = 0; sess_local[s].lcp_authtype = config->radius_authprefer; session[s].ppp.lcp = RequestSent; + sendlcp(s, t); break; case 14: // CDN @@ -2715,7 +2718,7 @@ static void regular_cleanups(double period) LOG(3, s, session[s].tunnel, "No ACK for LCP ConfigReq... resending\n"); sess_local[s].lcp.restart = time_now + config->ppp_restart_time; sess_local[s].lcp.conf_sent++; - sendlcp(s, t, sess_local[s].lcp_authtype); + sendlcp(s, session[s].tunnel); change_state(s, lcp, next_state); } else @@ -2746,7 +2749,7 @@ static void regular_cleanups(double period) LOG(3, s, session[s].tunnel, "No ACK for IPCP ConfigReq... resending\n"); sess_local[s].ipcp.restart = time_now + config->ppp_restart_time; sess_local[s].ipcp.conf_sent++; - sendipcp(s, t); + sendipcp(s, session[s].tunnel); change_state(s, ipcp, next_state); } else @@ -2777,7 +2780,7 @@ static void regular_cleanups(double period) LOG(3, s, session[s].tunnel, "No ACK for IPV6CP ConfigReq... resending\n"); sess_local[s].ipv6cp.restart = time_now + config->ppp_restart_time; sess_local[s].ipv6cp.conf_sent++; - sendipv6cp(s, t); + sendipv6cp(s, session[s].tunnel); change_state(s, ipv6cp, next_state); } else @@ -2805,7 +2808,7 @@ static void regular_cleanups(double period) LOG(3, s, session[s].tunnel, "No ACK for CCP ConfigReq... resending\n"); sess_local[s].ccp.restart = time_now + config->ppp_restart_time; sess_local[s].ccp.conf_sent++; - sendccp(s, t); + sendccp(s, session[s].tunnel); change_state(s, ccp, next_state); } else