X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fconnection.h;h=75b7024d86fc57756a7a988bf1c3736bf97b2f9e;hb=8c10a4131f19dc27b0bc56ef48ae481d1fa03cb0;hp=b23e02b75c54564e9223c60360c6d071cea2a944;hpb=0871c3095151bce6a4031a2662aa51b7193b855c;p=tinc diff --git a/src/connection.h b/src/connection.h index b23e02b7..75b7024d 100644 --- a/src/connection.h +++ b/src/connection.h @@ -34,23 +34,25 @@ #define OPTION_CLAMP_MSS 0x0008 #define OPTION_VERSION(x) ((x) >> 24) /* Top 8 bits are for protocol minor version */ -typedef struct connection_status_t { - bool pinged: 1; /* sent ping */ - bool unused_active: 1; - bool connecting: 1; /* 1 if we are waiting for a non-blocking connect() to finish */ - bool unused_termreq: 1; /* the termination of this connection was requested */ - bool remove_unused: 1; /* Set to 1 if you want this connection removed */ - bool timeout_unused: 1; /* 1 if gotten timeout */ - bool encryptout: 1; /* 1 if we can encrypt outgoing traffic */ - bool decryptin: 1; /* 1 if we have to decrypt incoming traffic */ - bool mst: 1; /* 1 if this connection is part of a minimum spanning tree */ - 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 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 */ - uint32_t unused: 17; +typedef union connection_status_t { + struct { + bool pinged: 1; /* sent ping */ + bool unused_active: 1; + bool connecting: 1; /* 1 if we are waiting for a non-blocking connect() to finish */ + bool unused_termreq: 1; /* the termination of this connection was requested */ + bool remove_unused: 1; /* Set to 1 if you want this connection removed */ + bool timeout_unused: 1; /* 1 if gotten timeout */ + bool encryptout: 1; /* 1 if we can encrypt outgoing traffic */ + bool decryptin: 1; /* 1 if we have to decrypt incoming traffic */ + bool mst: 1; /* 1 if this connection is part of a minimum spanning tree */ + 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 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 */ + }; + uint32_t value; } connection_status_t; #include "ecdsa.h" @@ -78,10 +80,10 @@ typedef struct connection_t { #ifndef DISABLE_LEGACY rsa_t *rsa; /* his public RSA 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; + 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; uint64_t inbudget; uint64_t outbudget; #endif