X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/811379c1a6bed85a984578256646e70a9f203b57..b3335712110224f0a27e58320ebc6b4459d7ac34:/l2tpns.c diff --git a/l2tpns.c b/l2tpns.c index 7bc0d75..1f47934 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.87 2005/03/10 06:16:05 bodea Exp $"; +char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.90 2005/04/18 05:07:20 bodea Exp $"; #include #include @@ -68,11 +68,10 @@ static int rand_fd = -1; // Random data source time_t basetime = 0; // base clock char hostname[1000] = ""; // us. static int tunidx; // ifr_ifindex of tun device -static uint32_t sessionid = 0; // session id for radius accounting static int syslog_log = 0; // are we logging to syslog static FILE *log_stream = NULL; // file handle for direct logging (i.e. direct into file, not via syslog). extern int cluster_sockfd; // Intra-cluster communications socket. -uint32_t last_id = 0; // Last used PPP SID. Can I kill this?? -- mo +uint32_t last_id = 0; // Unique ID for radius accounting struct cli_session_actions *cli_session_actions = NULL; // Pending session changes requested by CLI struct cli_tunnel_actions *cli_tunnel_actions = NULL; // Pending tunnel changes required by CLI @@ -1433,7 +1432,7 @@ static void filter_session(sessionidt s, int filter_in, int filter_out) } // start tidy shutdown of session -void sessionshutdown(sessionidt s, char *reason, int result, int code) +void sessionshutdown(sessionidt s, char *reason, int result, int error) { int walled_garden = session[s].walled_garden; @@ -1453,7 +1452,7 @@ void sessionshutdown(sessionidt s, char *reason, int result, int code) run_plugins(PLUGIN_KILL_SESSION, &data); } - if (!walled_garden && !session[s].die) + if (session[s].ip && !walled_garden && !session[s].die) { // RADIUS Stop message uint16_t r = session[s].radius; @@ -2319,7 +2318,6 @@ void processudp(uint8_t * buf, int len, struct sockaddr_in *addr) } c = controlnew(11); // sending ICRP - session[s].id = sessionid++; session[s].opened = time_now; session[s].tunnel = t; session[s].far = asession; @@ -2644,7 +2642,7 @@ static int regular_cleanups(void) continue; } - // No data in IDLE_TIMEOUT seconds, send LCP ECHO + // No data in ECHO_TIMEOUT seconds, send LCP ECHO if (session[s].user[0] && (time_now - session[s].last_packet >= ECHO_TIMEOUT)) { uint8_t b[MAXCONTROL] = {0};