X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/6e3d21bbdc2e1cbf4627bd2c6c9f9cbeb19bf9c7..41de03f89f24afe1163012419f7e83beeed44a0a:/l2tpns.h diff --git a/l2tpns.h b/l2tpns.h index 83b0e8b..d4c8ff7 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -1,5 +1,5 @@ // L2TPNS Global Stuff -// $Id: l2tpns.h,v 1.15 2004/08/02 05:40:21 fred_nerk Exp $ +// $Id: l2tpns.h,v 1.18 2004/09/19 23:26:46 fred_nerk Exp $ #ifndef __L2TPNS_H__ #define __L2TPNS_H__ @@ -24,7 +24,7 @@ #define RADIUS_SHIFT 5 #define RADIUS_MASK ((unsigned short)(((unsigned short)~0) >> (16 - RADIUS_SHIFT))) -#define MAXRADIUS ((2 << (RADIUS_SHIFT - 1)) * 255) +#define MAXRADIUS ((unsigned long)(1L << RADIUS_SHIFT) * 255) #define T_UNDEF (0xffff) // A tunnel ID that won't ever be used. Mark session as undefined. #define T_FREE (0) // A tunnel ID that won't ever be used. Mark session as free. @@ -40,6 +40,7 @@ #define MAX_LOG_LENGTH 512 // Maximum size of log message #define ECHO_TIMEOUT 60 // Time between last packet sent and LCP ECHO generation #define IDLE_TIMEOUT 240 // Time between last packet sent and LCP ECHO generation +#define BUSY_WAIT_TIMEOUT 3000 // 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown // Constants #include "config.h" @@ -148,10 +149,10 @@ typedef struct sessions { sessionidt next; // next session in linked list sessionidt far; // far end session ID - tunnelidt tunnel; // tunnel ID + tunnelidt tunnel; // near end tunnel ID ipt ip; // IP of session set by RADIUS response (host byte order). int ip_pool_index; // index to IP pool - unsigned long sid; // session id for hsddb + unsigned long unique_id; // unique session id u16 nr; // next receive u16 ns; // next send u32 magic; // ppp magic number @@ -171,6 +172,7 @@ typedef struct sessions u16 tbf_in; // filter bucket for throttling in from the user. u16 tbf_out; // filter bucket for throttling out to the user. u8 l2tp_flags; // various bit flags from the ICCN on the l2tp tunnel. + u8 reserved_old_snoop; // No longer used - remove at some time u8 walled_garden; // is this session gardened? u8 flags1; // additional flags (currently unused); char random_vector[MAXTEL]; @@ -183,7 +185,8 @@ typedef struct sessions u32 flags; // Various session flags. ipt snoop_ip; // Interception destination IP u16 snoop_port; // Interception destination port - char reserved[28]; // Space to expand structure without changing HB_VERSION + u16 sid; // near end session id. + char reserved[20]; // Space to expand structure without changing HB_VERSION } sessiont; @@ -445,6 +448,7 @@ struct configt char bgp_peer[2][64]; u16 bgp_peer_as[2]; #endif + char hostname[256]; // our hostname - set to gethostname() by default }; struct config_descriptt @@ -543,7 +547,7 @@ int sessionsetup(tunnelidt t, sessionidt s); int cluster_send_session(int s); int cluster_send_tunnel(int t); int cluster_send_goodbye(); -void init_cli(char *hostname); +void init_cli(); void cli_do_file(FILE *fh); void cli_do(int sockfd); int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...); @@ -588,7 +592,7 @@ if (count++ < max) { \ extern struct configt *config; extern time_t basetime; // Time when this process started. extern time_t time_now; // Seconds since EPOCH. -extern u32 last_sid; +extern u32 last_id; extern struct Tstats *_statistics; extern ipt my_address; extern int tun_write(u8 *data, int size);