propagate select error
[l2tpns.git] / l2tpns.h
index 3ad2cf5..628b8a1 100644 (file)
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -1,5 +1,5 @@
 // L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.116 2006/04/27 14:37:28 bodea Exp $
+// $Id: l2tpns.h,v 1.120 2006/10/23 02:51:53 bodea Exp $
 
 #ifndef __L2TPNS_H__
 #define __L2TPNS_H__
 #define RINGBUFFER_SIZE        10000           // Number of ringbuffer entries to allocate
 #define MAX_LOG_LENGTH 512             // Maximum size of log message
 #define ECHO_TIMEOUT   10              // Time between last packet sent and LCP ECHO generation
-#define IDLE_TIMEOUT   240             // Time between last packet sent and LCP ECHO generation
+#define IDLE_TIMEOUT   240             // Time between last packet seen and session shutdown
 #define BUSY_WAIT_TIME 3000            // 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown
 
 #define MP_BEGIN       0x80            // This value is used when (b)egin bit is set in MP header
 #define MP_END         0x40            // This value is used when (e)nd bit is set in MP header
 #define MP_BOTH_BITS   0xC0            // This value is used when both bits (begin and end) are set in MP header
 
-#define DEFAULT_EPDIS_ADDRESS  "L2TPNetServer"         // Company name may goes here!
-
 // Constants
 #ifndef ETCDIR
 #define ETCDIR         "/etc/l2tpns"
@@ -284,7 +282,10 @@ typedef struct
        uint16_t mru;                   // maximum receive unit
        clockt opened;                  // when started
        clockt die;                     // being closed, when to finally free
+       uint32_t session_timeout;       // Maximum session time in seconds
+       uint32_t idle_timeout;          // Maximum idle time in seconds
        time_t last_packet;             // Last packet from the user (used for idle timeouts)
+       time_t last_data;               // Last data packet to/from the user (used for idle timeouts)
        in_addr_t dns1, dns2;           // DNS servers
        routet route[MAXROUTE];         // static routes
        uint16_t tbf_in;                // filter bucket for throttling in from the user.
@@ -296,7 +297,6 @@ typedef struct
        char calling[MAXTEL];           // calling number
        uint32_t tx_connect_speed;
        uint32_t rx_connect_speed;
-       clockt timeout;                 // Session timeout
        uint32_t mrru;                  // Multilink Max-Receive-Reconstructed-Unit
        uint8_t mssf;                   // Multilink Short Sequence Number Header Format
        epdist epdis;                   // Multilink Endpoint Discriminator
@@ -635,7 +635,9 @@ typedef struct
        uint16_t        radiusport[MAXRADSERVER];       // radius base ports
        uint8_t         numradiusservers;               // radius server count
 
-       uint16_t        radius_dae_port;                // local port for radius dae
+       uint16_t        radius_dae_port;                // port for radius DAE
+       uint16_t        radius_bind_min;                // port range for udp sockets used to send/recv radius packets
+       uint16_t        radius_bind_max;
 
        char            radius_authtypes_s[32];         // list of valid authentication types (chap, pap) in order of preference
        int             radius_authtypes;