handle routing properly in lone-master case
[l2tpns.git] / l2tpns.h
index 0220517..cbd455c 100644 (file)
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -1,5 +1,5 @@
 // L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.26 2004/11/02 04:35:04 bodea Exp $
+// $Id: l2tpns.h,v 1.30 2004/11/05 04:55:27 bodea Exp $
 
 #ifndef __L2TPNS_H__
 #define __L2TPNS_H__
@@ -15,7 +15,7 @@
 #include <sys/types.h>
 #include <libcli.h>
 
-#define VERSION        "2.0.2"
+#define VERSION        "2.0.3"
 
 // Limits
 #define MAXTUNNEL      500             // could be up to 65535
@@ -203,16 +203,16 @@ typedef struct sessions
 }
 sessiont;
 
-#define SF_IPCP_ACKED  (1<<0)          // Has this session seen an IPCP Ack?
+#define SF_IPCP_ACKED  1       // Has this session seen an IPCP Ack?
+#define SF_LCP_ACKED   2       // LCP negotiated
 
 typedef struct {
        u32     cin;
        u32     cout;
 } sessioncountt;
 
-#define        SESSIONPFC      1            // PFC negotiated flags
-#define        SESSIONACFC     2           // ACFC negotiated flags
-#define SESSIONLCPACK  4       // LCP negotiated
+#define        SESSIONPFC      1       // PFC negotiated flags
+#define        SESSIONACFC     2       // ACFC negotiated flags
 
 // 168 bytes per tunnel
 typedef struct tunnels
@@ -427,6 +427,7 @@ struct configt
        int             save_state;
        char            accounting_dir[128];
        ipt             bind_address;
+       ipt             peer_address;
        int             send_garp;                      // Set to true to garp for vip address on startup
 
        int             target_uid;
@@ -539,12 +540,14 @@ int cmd_show_ipcache(struct cli_def *cli, char *command, char **argv, int argc);
 int cmd_show_hist_idle(struct cli_def *cli, char *command, char **argv, int argc);
 int cmd_show_hist_open(struct cli_def *cli, char *command, char **argv, int argc);
 
-#define log _log
-#ifndef log_hex
-#define log_hex(a,b,c,d) do{if (a <= config->debug) _log_hex(a,0,0,0,b,c,d);}while (0)
-#endif
+#undef LOG
+#undef LOG_HEX
+#define LOG(D, a, s, t, f, ...)        ({ if (D <= config->debug) _log(D, a, s, t, f, ## __VA_ARGS__); })
+#define LOG_HEX(D, t, d, s)    ({ if (D <= config->debug) _log_hex(D, t, d, s); })
+
 void _log(int level, ipt address, sessionidt s, tunnelidt t, const char *format, ...) __attribute__((format (printf, 5, 6)));
-void _log_hex(int level, ipt address, sessionidt s, tunnelidt t, const char *title, const char *data, int maxsize);
+void _log_hex(int level, const char *title, const char *data, int maxsize);
+
 void build_chap_response(char *challenge, u8 id, u16 challenge_length, char **challenge_response);
 int sessionsetup(tunnelidt t, sessionidt s);
 int cluster_send_session(int s);
@@ -581,12 +584,12 @@ if (count++ < max) { \
        void *array[20]; \
        char **strings; \
        int size, i; \
-       log(0, 0, 0, t, "Backtrace follows"); \
+       LOG(0, 0, 0, t, "Backtrace follows"); \
        size = backtrace(array, 10); \
        strings = backtrace_symbols(array, size); \
        if (strings) for (i = 0; i < size; i++) \
        { \
-               log(0, 0, 0, t, "%s\n", strings[i]); \
+               LOG(0, 0, 0, t, "%s\n", strings[i]); \
        } \
        free(strings); \
 }