Don't tarpit localhost connections
[tinc] / src / connection.h
index a176988..600c954 100644 (file)
@@ -27,6 +27,7 @@
 #include "rsa.h"
 #include "list.h"
 #include "sptps.h"
+#include "logger.h"
 
 #define OPTION_INDIRECT         0x0001
 #define OPTION_TCPONLY          0x0002
@@ -48,6 +49,7 @@ typedef union connection_status_t {
                bool control: 1;                /* 1 if this is a control connection */
                bool pcap: 1;                   /* 1 if this is a control connection requesting packet capture */
                bool log: 1;                    /* 1 if this is a control connection requesting log dump */
+               bool log_color: 1;              /* 1 if this connection supports ANSI escape codes */
                bool invitation: 1;             /* 1 if this is an invitation */
                bool invitation_used: 1;        /* 1 if the invitation has been consumed */
                bool tarpit: 1;                 /* 1 if the connection should be added to the tarpit */
@@ -67,7 +69,7 @@ typedef struct legacy_crypto_t {
        uint64_t budget;
 } legacy_crypto_t;
 
-bool init_crypto_by_nid(legacy_crypto_t *c, int cipher, int digest) ATTR_WARN_UNUSED;
+bool init_crypto_by_nid(legacy_crypto_t *c, nid_t cipher, nid_t digest) ATTR_WARN_UNUSED;
 bool init_crypto_by_name(legacy_crypto_t *c, const char *cipher, const char *digest) ATTR_WARN_UNUSED;
 bool decrease_budget(legacy_crypto_t *c, size_t bytes) ATTR_WARN_UNUSED;
 
@@ -77,7 +79,7 @@ typedef struct legacy_ctx_t {
        legacy_crypto_t out;           /* cipher/digest we will use to send data to him */
 } legacy_ctx_t;
 
-legacy_ctx_t *new_legacy_ctx(rsa_t *rsa) ATTR_MALLOC;
+legacy_ctx_t *new_legacy_ctx(rsa_t *rsa);
 void free_legacy_ctx(legacy_ctx_t *ctx);
 #endif
 
@@ -107,7 +109,7 @@ typedef struct connection_t {
        sptps_t sptps;
 
        int outmaclength;
-       int outcompression;             /* compression level from compression_level_t */
+       debug_t log_level;              /* used for REQ_LOG */
 
        uint8_t *hischallenge;          /* The challenge we sent to him */
        uint8_t *mychallenge;           /* The challenge we received */
@@ -115,8 +117,8 @@ typedef struct connection_t {
        struct buffer_t inbuf;
        struct buffer_t outbuf;
        io_t io;                        /* input/output event on this metadata connection */
-       int tcplen;                     /* length of incoming TCPpacket */
-       int sptpslen;                   /* length of incoming SPTPS packet */
+       uint32_t tcplen;                /* length of incoming TCPpacket */
+       uint32_t sptpslen;              /* length of incoming SPTPS packet */
        int allow_request;              /* defined if there's only one request possible */
 
        time_t last_ping_time;          /* last time we saw some activity from the other end or pinged them */
@@ -129,8 +131,8 @@ extern connection_t *everyone;
 
 extern void init_connections(void);
 extern void exit_connections(void);
-extern connection_t *new_connection(void) ATTR_MALLOC;
 extern void free_connection(connection_t *c);
+extern connection_t *new_connection(void) ATTR_MALLOC ATTR_DEALLOCATOR(free_connection);
 extern void connection_add(connection_t *c);
 extern void connection_del(connection_t *c);
 extern bool dump_connections(struct connection_t *c);