From 0fbbae3732027279cb77935dd2d891255889e758 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 19 Feb 2024 21:18:45 +0100 Subject: [PATCH] Engine: fix bug regarding packet compression override Only encrypt and decrypt packets if the initial argument tells it to do so. Some connectionless packets aren't supposed to be encrypted --- src/engine/net.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/engine/net.cpp b/src/engine/net.cpp index fe249ac9..0bce7f2e 100644 --- a/src/engine/net.cpp +++ b/src/engine/net.cpp @@ -27,13 +27,16 @@ //----------------------------------------------------------------------------- bool NET_ReceiveDatagram(int iSocket, netpacket_s* pInpacket, bool bEncrypted) { - bool result = v_NET_ReceiveDatagram(iSocket, pInpacket, net_encryptionEnable->GetBool()); + const bool decryptPacket = (bEncrypted && net_encryptionEnable->GetBool()); + const bool result = v_NET_ReceiveDatagram(iSocket, pInpacket, decryptPacket); + if (result && net_tracePayload->GetBool()) { // Log received packet data. - HexDump("[+] NET_ReceiveDatagram ", "net_trace", + HexDump("[+] NET_ReceiveDatagram ", "net_trace", pInpacket->pData, size_t(pInpacket->wiresize)); } + return result; } @@ -48,12 +51,15 @@ bool NET_ReceiveDatagram(int iSocket, netpacket_s* pInpacket, bool bEncrypted) //----------------------------------------------------------------------------- int NET_SendDatagram(SOCKET s, void* pPayload, int iLenght, netadr_t* pAdr, bool bEncrypt) { - int result = v_NET_SendDatagram(s, pPayload, iLenght, pAdr, net_encryptionEnable->GetBool()); + const bool encryptPacket = (bEncrypt && net_encryptionEnable->GetBool()); + const int result = v_NET_SendDatagram(s, pPayload, iLenght, pAdr, encryptPacket); + if (result && net_tracePayload->GetBool()) { // Log transmitted packet data. HexDump("[+] NET_SendDatagram ", "net_trace", pPayload, size_t(iLenght)); } + return result; }