From fcc2c96e9785d94ac924fa6b008549c1357f6151 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Thu, 28 Dec 2017 14:00:18 +0100 Subject: [PATCH] Reorder fields of client_t for better packing and cache utilization. --- src/client.h | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/client.h b/src/client.h index f5346bf..6f8aa39 100644 --- a/src/client.h +++ b/src/client.h @@ -62,40 +62,43 @@ struct channel; typedef struct { - int tcpfd; SSL_handle_t *ssl; - bool_t SSLready; - bool_t shutdown_wait; - cryptState_t cryptState; - bool_t readBlockedOnWrite, writeBlockedOnRead; - struct sockaddr_storage remote_tcp; - struct sockaddr_storage remote_udp; - uint8_t rxbuf[BUFSIZE], txbuf[BUFSIZE]; - uint32_t rxcount, msgsize, drainleft, txcount, txsize; - int sessionId; - uint8_t key[KEY_LENGTH]; + struct dlist node; char *username; - bool_t bUDP, authenticated, deaf, mute, self_deaf, self_mute, recording, bOpus; char *os, *release, *os_version; + uint32_t rxcount, msgsize, drainleft, txcount, txsize; + int sessionId; uint32_t version; int codec_count; struct dlist codecs; - int availableBandwidth; etimer_t lastActivity, connectTime, idleTime; - struct dlist node; struct dlist txMsgQueue; int txQueueCount; + int availableBandwidth; struct channel *channel; char *context; struct dlist chan_node; struct dlist voicetargets; struct dlist tokens; int tokencount; - uint8_t hash[20]; - bool_t isAdmin; - bool_t isSuppressed; + int tcpfd; float UDPPingAvg, UDPPingVar, TCPPingAvg, TCPPingVar; uint32_t UDPPackets, TCPPackets; + + bool_t SSLready; + bool_t shutdown_wait; + bool_t readBlockedOnWrite, writeBlockedOnRead; + bool_t bUDP, authenticated, deaf, mute, self_deaf, self_mute, recording, bOpus; + bool_t isAdmin; + bool_t isSuppressed; + + struct sockaddr_storage remote_tcp; + struct sockaddr_storage remote_udp; + + uint8_t key[KEY_LENGTH]; + uint8_t hash[20]; + cryptState_t cryptState; + uint8_t rxbuf[BUFSIZE], txbuf[BUFSIZE]; } client_t; typedef struct { -- 2.30.2