13 Commits

Author SHA1 Message Date
Kawe Mazidjatari
7eb6017c16 Core: update copyright notice headers
Fix corrupted copyright symbol.
2024-07-29 21:09:55 +02:00
Kawe Mazidjatari
a5e05d3996 NetworkSystem: significant performance improvements
Now uses new JSON member lookup utilities implemented in commit f6e93ee457876ce869ce04067fe9344ff81083ca. All lookups (typically 3 per member) have been reduced to 1 by caching and reusing all value pointers or iterators. Also added error strings for 2 missing error cases in CPylon::GetEULA(), previously it would only set the error string during fetch error, but not when the data is missing or the schema is incorrect.
2024-06-11 10:16:16 +02:00
Kawe Mazidjatari
f6e93ee457 Tier2: create json utilities for performance
This will be used to improve performance on the current RapidJSON implementation in the SDK by cutting out a lot of common operations (such as checking if a var exists and then getting it by name, automatically creating 2 expensive lookups).
2024-06-11 09:55:10 +02:00
Kawe Mazidjatari
94002305a3 Tier2: use utlvector for cylinder points and initialize buffer 2024-04-12 00:45:10 +02:00
Kawe Mazidjatari
ee39e0b014 Tier2: move random generator from tier0 to tier2
Moved into cryptutils.cpp.
2024-04-10 15:28:47 +02:00
Kawe Mazidjatari
f8dd1fe88c Engine: implement encryption for RCON protocol
RCON lacked encryption, added AES-CTR encryption on RCON frames. Slightly adjusted protocol to take this into account (sending nonces, encrypted data itself, etc).
2024-04-10 14:08:52 +02:00
Kawe Mazidjatari
d910149648 Tier2: check initialization state before init/shutdown 2024-04-03 01:06:28 +02:00
Kawe Mazidjatari
728038b9b1 Tier2: fix websocket bug
CWebSocket::ConnContext_s::webSocket can be null, added a check.
2024-04-01 01:04:58 +02:00
Kawe Mazidjatari
5e8887c6d9 Tier2: WebSocket system improvements
Naming improvements, additional new comments/documentation and a few assertions. No logic has been changed.
2024-03-31 14:53:14 +02:00
Kawe Mazidjatari
f89ec937d4 Tier2: only enforce retry timer on (state == CS_RETRY)
Fixes a bug where the initial connect is only initiated after lastQueryTime + params.retryTime seconds.
2024-03-30 02:57:59 +01:00
Kawe Mazidjatari
ab7e02ef36 Tier2: create modular WebSocket system
This code was actually part of the LiveAPI system, but there were many opportunities to make this particular code modular, so it has been decoupled and moved to Tier2. The LiveAPI system will soon use this class instead. The implementation has also been improved by adding dedicated routines for updating socket parameters, disconnecting/reconnecting and destroying sockets.

This commit also removes legacy workaround code in UtlVector which was used for before we had early enough access to the game's memalloc singleton. This code was no longer used.

This commit also implements the CUtlStringList class, which is now used for the new websocket class to split each socket connection up by a comma delimiter.
2024-03-30 02:53:12 +01:00
Kawe Mazidjatari
078c241a0d Tools: rename NETCONSOLE define to _TOOLS
Rename since this would actually be used for all tools. Also moved 'plat_time.cpp' to tier0 so anything could compile it.
2024-01-12 00:25:19 +01:00
Kawe Mazidjatari
fd3e227a86 Align folder structure with p4 2023-09-19 22:13:22 +02:00