// 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.9 2004-06-28 02:43:13 fred_nerk Exp $";
+char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.10 2004-07-02 07:31:23 bodea Exp $";
#include <arpa/inet.h>
#include <assert.h>
t = session[s].tunnel;
sp = &session[s];
+ log(5, session[s].ip, s, t, "Ethernet -> Tunnel (%d bytes)\n", len);
+
// Snooping this session, send it to intercept box
if (sp->snoop_ip && sp->snoop_port)
snoop_send_packet(buf, len, sp->snoop_ip, sp->snoop_port);
- log(5, session[s].ip, s, t, "Ethernet -> Tunnel (%d bytes)\n", len);
-
// Add on L2TP header
{
u8 *p = makeppp(b, sizeof(b), buf, len, t, s, PPPIP);
routeset(s, new->route[i].ip, new->route[i].mask, new->ip, 1);
}
-
-
if (new->tunnel && s > config->cluster_highest_sessionid) // Maintain this in the slave. It's used
// for walking the sessions to forward byte counts to the master.
config->cluster_highest_sessionid = s;
// Do fixups into address pool.
if (new->ip_pool_index != -1)
fix_address_pool(s);
+
return 1;
}
if (log_stream && config->debug >= 4)
{
- log(4, ntohl(addr->sin_addr.s_addr), 0, 0, "Received ");
+ log(4, ntohl(addr->sin_addr.s_addr), 0, 0, "Received ");
dump_packet(buf, log_stream);
}
// L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.8 2004-06-28 02:43:13 fred_nerk Exp $
+// $Id: l2tpns.h,v 1.9 2004-07-02 07:31:23 bodea Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
#include <arpa/inet.h>
#include <sys/types.h>
#include <libcli.h>
-#include "config.h"
#define VERSION "2.0.0"
#define IDLE_TIMEOUT 240 // Time between last packet sent and LCP ECHO generation
// Constants
+#include "config.h"
#ifndef PLUGINDIR
#define PLUGINDIR LIBDIR // Plugins
#endif
// Don't use this unless you have a dual processor machine!
int icmp_rate; // Max number of ICMP unreachable per second to send
- u32 cluster_address; // Multicast address of cluster.
+ u32 cluster_address; // Multicast address of cluster.
// Send to this address to have everyone hear.
char cluster_interface[64]; // Which interface to listen for multicast on.
int cluster_iam_master; // Are we the cluster master???
int cluster_iam_uptodate; // Set if we've got a full set of state from the master.
- u32 cluster_master_address; // The network address of the cluster master.
+ u32 cluster_master_address; // The network address of the cluster master.
// Zero if i am the cluster master.
int cluster_seq_number; // Sequence number of the next heartbeat we'll send out
// (or the seq number we're next expecting if we're a slave).
// L2TPNS Radius Stuff
-char const *cvs_id_radius = "$Id: radius.c,v 1.5 2004-06-28 02:43:13 fred_nerk Exp $";
+char const *cvs_id_radius = "$Id: radius.c,v 1.6 2004-07-02 07:31:23 bodea Exp $";
#include <time.h>
#include <stdio.h>
{
return next_radius_id;
}
-
- }
- log(0, 0, 0, 0, "Can't find a free radius session! This is very bad!\n");
- return 0;
+ }
+
+ log(0, 0, 0, 0, "Can't find a free radius session! This is very bad!\n");
+ return 0;
}
u16 radiusnew(sessionidt s)
// L2TPNS: token bucket filters
-char const *cvs_id_tbf = "$Id: tbf.c,v 1.2 2004-06-28 02:43:13 fred_nerk Exp $";
+char const *cvs_id_tbf = "$Id: tbf.c,v 1.3 2004-07-02 07:31:23 bodea Exp $";
#include <malloc.h>
#include <string.h>
cli_print(cli, "%d tbf entries used, %d total", count, filter_list_size);
return CLI_OK;
}
-