/* walled garden */
-char const *cvs_id = "$Id: garden.c,v 1.20 2004/12/16 08:49:53 bodea Exp $";
+char const *cvs_id = "$Id: garden.c,v 1.20.2.1 2005/05/07 03:51:20 bodea Exp $";
int plugin_api_version = PLUGIN_API_VERSION;
static struct pluginfuncs *p = 0;
{
/* OK, we're up! */
uint16_t r = p->radiusnew(p->get_id_by_session(s));
- p->radiussend(r, RADIUSSTART);
+ if (r) p->radiussend(r, RADIUSSTART);
}
}
// 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.73.2.7 2005/05/06 06:35:18 bodea Exp $";
+char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.73.2.8 2005/05/07 03:51:21 bodea Exp $";
#include <arpa/inet.h>
#include <assert.h>
if (!(r = radiusnew(s)))
{
LOG(1, s, session[s].tunnel, "No free RADIUS sessions for Stop message\n");
- STAT(radius_overflow);
}
else
{
if (!r)
r = radiusnew(s);
+ if (!r)
+ {
+ sessionshutdown(s, "No free RADIUS sessions for IPCP");
+ return;
+ }
+
if (radius[r].state != RADIUSIPCP)
{
radius[r].state = RADIUSIPCP;
session[s].flags &= ~SF_IPCP_ACKED; // Clear flag.
}
+static void sessionclear(sessionidt s)
+{
+ memset(&session[s], 0, sizeof(session[s]));
+ memset(&sess_local[s], 0, sizeof(sess_local[s]));
+ memset(&cli_session_actions[s], 0, sizeof(cli_session_actions[s]));
+
+ session[s].tunnel = T_FREE; // Mark it as free.
+ session[s].next = sessionfree;
+ sessionfree = s;
+}
+
// kill a session now
void sessionkill(sessionidt s, char *reason)
{
radiusclear(session[s].radius, s); // cant send clean accounting data, session is killed
LOG(2, s, session[s].tunnel, "Kill session %d (%s): %s\n", s, session[s].user, reason);
-
- memset(&session[s], 0, sizeof(session[s]));
- session[s].tunnel = T_FREE; // Mark it as free.
- session[s].next = sessionfree;
- sessionfree = s;
- cli_session_actions[s].action = 0;
+ sessionclear(s);
cluster_send_session(s);
}
if (!(r = radiusnew(s)))
{
LOG(1, s, t, "No free RADIUS sessions for ICRQ\n");
- sessionkill(s, "no free RADIUS sesions");
+ sessionclear(s);
return;
}
// L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.49.2.6 2005/05/03 05:10:52 bodea Exp $
+// $Id: l2tpns.h,v 1.49.2.7 2005/05/07 03:51:24 bodea Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
#include <sys/types.h>
#include <libcli.h>
-#define VERSION "2.0.18"
+#define VERSION "2.0.19"
// Limits
#define MAXTUNNEL 500 // could be up to 65535
Summary: A high-speed clustered L2TP LNS
Name: l2tpns
-Version: 2.0.18
+Version: 2.0.19
Release: 1
Copyright: GPL
Group: System Environment/Daemons
%attr(644,root,root) /usr/share/man/man[58]/*
%changelog
-* Tue May 3 2005 Brendan O'Dea <bod@optusnet.com.au> 2.0.18-1
-- 2.0.18 release, see /usr/share/doc/l2tpns-2.0.18/Changes
+* Sat May 7 2005 Brendan O'Dea <bod@optusnet.com.au> 2.0.19-1
+- 2.0.19 release, see /usr/share/doc/l2tpns-2.0.19/Changes