RADIUS queries will fail.
</LI>
+<LI><B>radius_authtypes</B> (string)</BR>
+A comma separated list of supported RADIUS authentication methods
+(<B>pap</B> or <B>chap</B>), in order of preference (default <B>pap</B>).
+</LI>
+
+<LI><B>allow_duplicate_users</B> (boolean)</BR>
+Allow multiple logins with the same username. If false (the default),
+any prior session with the same username will be dropped when a new
+session is established.
+</LI>
+
<LI><B>bind_address</B> (ip address)<BR>
When the tun interface is created, it is assigned the address
specified here. If no address is given, 1.1.1.1 is used. Packets
.de Id
.ds Dt \\$4 \\$5
..
-.Id $Id: startup-config.5,v 1.8 2005-05-26 12:17:31 bodea Exp $
+.Id $Id: startup-config.5,v 1.9 2005-06-02 04:04:08 bodea Exp $
.TH STARTUP-CONFIG 5 "\*(Dt" L2TPNS "File Formats and Conventions"
.SH NAME
startup\-config \- configuration file for l2tpns
A comma separated list of supported RADIUS authentication methods
("pap" or "chap"), in order of preference (default "pap").
.TP
+.B allow_duplicate_users
+Allow multiple logins with the same username. If false (the default),
+any prior session with the same username will be dropped when a new
+session is established.
+.TP
.B bind_address
When the tun interface is created, it is assigned the address
specified here. If no address is given, 1.1.1.1 is used. Packets
// 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.105 2005-05-26 12:17:30 bodea Exp $";
+char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.106 2005-06-02 04:04:07 bodea Exp $";
#include <arpa/inet.h>
#include <assert.h>
CONFIG("radius_interim", radius_interim, INT),
CONFIG("radius_secret", radiussecret, STRING),
CONFIG("radius_authtypes", radius_authtypes_s, STRING),
+ CONFIG("allow_duplicate_users", allow_duplicate_users, BOOL),
CONFIG("bind_address", bind_address, IPv4),
CONFIG("peer_address", peer_address, IPv4),
CONFIG("send_garp", send_garp, BOOL),
for (i = 1; i <= config->cluster_highest_sessionid; i++)
{
if (i == s) continue;
- if (ip == session[i].ip) sessionkill(i, "Duplicate IP address");
- if (!session[s].walled_garden && !session[i].walled_garden && strcasecmp(user, session[i].user) == 0)
+ if (!session[s].opened) continue;
+ if (ip == session[i].ip)
+ {
+ sessionkill(i, "Duplicate IP address");
+ continue;
+ }
+
+ if (config->allow_duplicate_users) continue;
+ if (session[s].walled_garden || session[i].walled_garden) continue;
+ if (!strcasecmp(user, session[i].user))
sessionkill(i, "Duplicate session for users");
}
}
// L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.73 2005-05-26 12:17:30 bodea Exp $
+// $Id: l2tpns.h,v 1.74 2005-06-02 04:04:07 bodea Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
int radius_authtypes;
int radius_authprefer;
+ int allow_duplicate_users; // allow multiple logins with the same username
+
in_addr_t default_dns1, default_dns2;
unsigned long rl_rate; // default throttle rate