CSTAT() adds "call_"; CHAP support

This commit is contained in:
Brendan O'Dea 2005-01-07 07:17:13 +00:00
parent c9dedbc735
commit 04d0b477be

View file

@ -1,5 +1,5 @@
// L2TPNS Global Stuff // L2TPNS Global Stuff
// $Id: l2tpns.h,v 1.50 2004-12-18 01:20:05 bodea Exp $ // $Id: l2tpns.h,v 1.51 2005-01-07 07:17:13 bodea Exp $
#ifndef __L2TPNS_H__ #ifndef __L2TPNS_H__
#define __L2TPNS_H__ #define __L2TPNS_H__
@ -72,6 +72,7 @@
#endif #endif
#define TUNDEVICE "/dev/net/tun" #define TUNDEVICE "/dev/net/tun"
#define RANDOMDEVICE "/dev/urandom" // default, not as secure as /dev/random but non-blocking
#define STATEFILE DATADIR "/state.dump" // State dump file #define STATEFILE DATADIR "/state.dump" // State dump file
#define CONFIGFILE FLASHDIR "/startup-config" // Configuration file #define CONFIGFILE FLASHDIR "/startup-config" // Configuration file
#define CLIUSERS FLASHDIR "/users" // CLI Users file #define CLIUSERS FLASHDIR "/users" // CLI Users file
@ -93,8 +94,8 @@
#define PPPIPV6 0x0057 #define PPPIPV6 0x0057
#define PPPMP 0x003D #define PPPMP 0x003D
#define MIN_IP_SIZE 0x19 #define MIN_IP_SIZE 0x19
enum
{ enum {
ConfigReq = 1, ConfigReq = 1,
ConfigAck, ConfigAck,
ConfigNak, ConfigNak,
@ -109,6 +110,15 @@ enum
IdentRequest IdentRequest
}; };
enum {
AccessRequest = 1,
AccessAccept,
AccessReject,
AccountingRequest,
AccountingResponse,
AccessChallenge = 11
};
// Types // Types
typedef uint16_t sessionidt; typedef uint16_t sessionidt;
typedef uint16_t tunnelidt; typedef uint16_t tunnelidt;
@ -213,6 +223,9 @@ sessiont;
#define SF_IPV6CP_ACKED 8 // IPv6 negotiated #define SF_IPV6CP_ACKED 8 // IPv6 negotiated
#define SF_IPV6_NACKED 16 // IPv6 rejected #define SF_IPV6_NACKED 16 // IPv6 rejected
#define AUTHPAP 1 // allow PAP
#define AUTHCHAP 2 // allow CHAP
typedef struct typedef struct
{ {
uint32_t cin; uint32_t cin;
@ -381,13 +394,14 @@ struct Tstats
uint32_t call_processrad; uint32_t call_processrad;
uint32_t call_radiussend; uint32_t call_radiussend;
uint32_t call_radiusretry; uint32_t call_radiusretry;
uint32_t call_random_data;
#endif #endif
}; };
#ifdef STATISTICS #ifdef STATISTICS
#ifdef STAT_CALLS #ifdef STAT_CALLS
#define CSTAT(x) STAT(x) #define CSTAT(x) STAT(call_ ## x)
#else #else
#define CSTAT(x) #define CSTAT(x)
#endif #endif
@ -424,6 +438,8 @@ typedef struct
char log_filename[128]; char log_filename[128];
char l2tpsecret[64]; char l2tpsecret[64];
char random_device[256]; // random device path, defaults to RANDOMDEVICE
char radiussecret[64]; char radiussecret[64];
int radius_accounting; int radius_accounting;
in_addr_t radiusserver[MAXRADSERVER]; // radius servers in_addr_t radiusserver[MAXRADSERVER]; // radius servers
@ -431,6 +447,10 @@ typedef struct
uint8_t numradiusservers; // radius server count uint8_t numradiusservers; // radius server count
short num_radfds; // Number of radius filehandles allocated short num_radfds; // Number of radius filehandles allocated
char radius_authtypes_s[32]; // list of valid authentication types (chap, pap) in order of preference
int radius_authtypes;
int radius_authprefer;
in_addr_t default_dns1, default_dns2; in_addr_t default_dns1, default_dns2;
unsigned long rl_rate; // default throttle rate unsigned long rl_rate; // default throttle rate
@ -575,6 +595,7 @@ void radiusclear(uint16_t r, sessionidt s);
clockt backoff(uint8_t try); clockt backoff(uint8_t try);
sessionidt sessionbyip(in_addr_t ip); sessionidt sessionbyip(in_addr_t ip);
sessionidt sessionbyuser(char *username); sessionidt sessionbyuser(char *username);
void random_data(uint8_t *buf, int len);
void sessionshutdown(sessionidt s, char *reason); void sessionshutdown(sessionidt s, char *reason);
void send_garp(in_addr_t ip); void send_garp(in_addr_t ip);
void tunnelsend(uint8_t *buf, uint16_t l, tunnelidt t); void tunnelsend(uint8_t *buf, uint16_t l, tunnelidt t);