]> git.meshlink.io Git - meshlink/blobdiff - src/connection.h
Move connection_list to mesh->connections.
[meshlink] / src / connection.h
index 01c2bf406eb7aad27df8ee4d38720096ec0d6002..0cc5ae6fa5d59d526c90bcf2c70d8590c123ff77 100644 (file)
@@ -1,7 +1,6 @@
 /*
     connection.h -- header for connection.c
-    Copyright (C) 2000-2012 Guus Sliepen <guus@tinc-vpn.org>,
-                  2000-2005 Ivo Timmermans
+    Copyright (C) 2000-2013 Guus Sliepen <guus@meshlink.io>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -24,7 +23,6 @@
 #include "buffer.h"
 #include "cipher.h"
 #include "digest.h"
-#include "rsa.h"
 #include "list.h"
 #include "sptps.h"
 
@@ -41,13 +39,15 @@ typedef struct connection_status_t {
                unsigned int unused_termreq:1;          /* the termination of this connection was requested */
                unsigned int remove_unused:1;           /* Set to 1 if you want this connection removed */
                unsigned int timeout_unused:1;          /* 1 if gotten timeout */
-               unsigned int encryptout:1;              /* 1 if we can encrypt outgoing traffic */
-               unsigned int decryptin:1;               /* 1 if we have to decrypt incoming traffic */
+               unsigned int unused_encryptout:1;       /* 1 if we can encrypt outgoing traffic */
+               unsigned int unused_decryptin:1;        /* 1 if we have to decrypt incoming traffic */
                unsigned int mst:1;                     /* 1 if this connection is part of a minimum spanning tree */
                unsigned int control:1;                 /* 1 if this is a control connection */
                unsigned int pcap:1;                    /* 1 if this is a control connection requesting packet capture */
                unsigned int log:1;                     /* 1 if this is a control connection requesting log dump */
-               unsigned int unused:20;
+               unsigned int invitation:1;              /* 1 if this is an invitation */
+               unsigned int invitation_used:1;         /* 1 if the invitation has been consumed */
+               unsigned int unused:19;
 } connection_status_t;
 
 #include "ecdsa.h"
@@ -73,25 +73,15 @@ typedef struct connection_t {
        struct node_t *node;            /* node associated with the other end */
        struct edge_t *edge;            /* edge associated with this connection */
 
-       rsa_t rsa;                      /* his public RSA key */
-       ecdsa_t ecdsa;                  /* his public ECDSA key */
-       cipher_t incipher;              /* Cipher he will use to send data to us */
-       cipher_t outcipher;             /* Cipher we will use to send data to him */
-       digest_t indigest;
-       digest_t outdigest;
+       ecdsa_t *ecdsa;                 /* his public ECDSA key */
        sptps_t sptps;
 
-       int inmaclength;
-       int outmaclength;
        int incompression;
        int outcompression;
 
-       char *hischallenge;             /* The challenge we sent to him */
-
        struct buffer_t inbuf;
        struct buffer_t outbuf;
-       struct event inevent;           /* input event on this metadata connection */
-       struct event outevent;          /* output event on this metadata connection */
+       io_t io;                        /* input/output event on this metadata connection */
        int tcplen;                     /* length of incoming TCPpacket */
        int allow_request;              /* defined if there's only one request possible */
 
@@ -100,7 +90,6 @@ typedef struct connection_t {
        splay_tree_t *config_tree;      /* Pointer to configuration tree belonging to him */
 } connection_t;
 
-extern list_t *connection_list;
 extern connection_t *everyone;
 
 extern void init_connections(void);
@@ -109,6 +98,5 @@ extern connection_t *new_connection(void) __attribute__ ((__malloc__));
 extern void free_connection(connection_t *);
 extern void connection_add(connection_t *);
 extern void connection_del(connection_t *);
-extern bool dump_connections(struct connection_t *);
 
 #endif /* __TINC_CONNECTION_H__ */