X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet.h;h=829255b217a5b64932d411f275d10ef66fea9e44;hb=5afc1e98f436c4a2ed5da4b64293275b09632c79;hp=3b194cdbc3011f6eb60d0fcabb89eba248aa7ca4;hpb=d335c6d0d7328fd86154dc60b22deb7953ab0228;p=tinc diff --git a/src/net.h b/src/net.h index 3b194cdb..829255b2 100644 --- a/src/net.h +++ b/src/net.h @@ -16,7 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: net.h,v 1.9.4.10 2000/09/14 14:32:34 zarq Exp $ + $Id: net.h,v 1.9.4.12 2000/09/15 12:58:40 zarq Exp $ */ #ifndef __TINC_NET_H__ @@ -53,6 +53,7 @@ #define TCPONLY 0x0004 /* Tells sender to send packets over TCP instead of UDP (for firewalls) */ typedef unsigned long ip_t; +typedef unsigned short port_t; typedef short length_t; struct conn_list_t; @@ -95,9 +96,14 @@ typedef struct status_bits_t { int dataopen:1; /* 1 if we have a valid UDP connection open */ int encryptout:1; /* 1 if we can encrypt outgoing traffic */ int encryptin:1; /* 1 if we have to decrypt incoming traffic */ - int unused:19; + int encrypted:1; + int unused:18; } status_bits_t; +typedef struct option_bits_t { + int unused:32; +} option_bits_t; + typedef struct queue_element_t { void *packet; struct queue_element_t *prev; @@ -127,12 +133,13 @@ typedef struct conn_list_t { int meta_socket; /* our tcp meta socket */ int protocol_version; /* used protocol */ status_bits_t status; /* status info */ + int options; /* options turned on for this connection */ passphrase_t *pp; /* encoded passphrase */ packet_queue_t *sq; /* pending outgoing packets */ packet_queue_t *rq; /* pending incoming packets (they have no valid key to be decrypted with) */ enc_key_t *public_key; /* the other party's public key */ - enc_key_t *key; /* encrypt with this key */ + enc_key_t *datakey; /* encrypt data packets with this key */ char *buffer; /* metadata input buffer */ int buflen; /* bytes read into buffer */ int reqlen; /* length of first request in buffer */ @@ -141,7 +148,7 @@ typedef struct conn_list_t { int want_ping; /* 0 if there's no need to check for activity */ int allow_request; /* defined if there's only one request possible */ char *chal_answer; /* answer to the given challenge */ - enc_key_t *metakey; + enc_key_t *rsakey; struct conn_list_t *nexthop; /* nearest meta-hop in this direction */ struct conn_list_t *next; /* after all, it's a list of connections */ } conn_list_t; @@ -157,7 +164,10 @@ extern conn_list_t *conn_list; extern conn_list_t *myself; extern char *request_name[256]; +extern char *status_text[10]; +extern int str2opt(const char *); +extern char *opt2str(int); extern int send_packet(ip_t, vpn_packet_t *); extern int setup_network_connections(void); extern void close_network_connections(void);