0ad/source/network
wraitii 113fefeeb7 Netcode: Identify controller client via a secret key
The 'controller' of an MP game (the host in general, though dedicated
servers would change that) is currently whoever first tells the server
that it is. This can be abused since it relies on trusting the clients.

This changes that logic: the server defines a 'controller secret', and
the first client to sent the correct controller secret is the
controller. This is safe assuming the secret is unknowable enough (the
current solution wouldn't pass strict cryptography tests, but it's
likely good enough).

Reverts 1a3fb29ff3, which introduced the 'trust the clients' mechanic,
as a change over 'the first local IP is controller'.

Necessary step towards dedicated server, if we want to use the regular
gamesetup (Refs #3556)

Differential Revision: https://code.wildfiregames.com/D3075
This was SVN commit r24952.
2021-02-27 17:44:59 +00:00
..
scripting Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
tests Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
fsm.cpp Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
fsm.h Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
NetClient.cpp Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetClient.h Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetClientTurnManager.cpp Implement NetClient PushGuiMessage using parameter pack and ScriptInterface::CreateObject from D2080 / b4626359f5 to replace remaining Eval function calls. 2019-09-07 16:51:44 +00:00
NetClientTurnManager.h Split TurnManager classes into individual files per class. Patch by echotangoecho, fixes #4095. 2017-01-24 02:04:50 +00:00
NetFileTransfer.cpp Split NetFileTransfer message parsing into one function per case, refs #5212. 2019-09-17 14:18:46 +00:00
NetFileTransfer.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
NetHost.cpp Automatically replace %hs/%ls with %s in CLogger format strings. 2015-01-22 20:36:24 +00:00
NetHost.h Hide ip and port from users until they want to join, add optional password 2021-01-20 18:31:39 +00:00
NetMessage.cpp Pass ScriptInterface as a const ref where possible. 2017-08-24 00:32:42 +00:00
NetMessage.h Fix few typos found with the Debian lintian tool. 2017-10-28 22:34:57 +00:00
NetMessages.h Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetMessageSim.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
NetServer.cpp Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetServer.h Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetServerTurnManager.cpp Fix two Clang warnings. 2021-01-05 11:49:24 +00:00
NetServerTurnManager.h Don't trigger a NetServerTurnManager debug breakpoint if a modified or unmodified client sends a non-sequential turnnumber. 2018-01-26 23:02:13 +00:00
NetSession.cpp Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetSession.h Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
NetStats.cpp Clean up ThreadUtil, use standard C++11 constructs instead of custom ones. 2019-06-06 19:30:48 +00:00
NetStats.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
NMTCreator.h Net Server: Verify password in Authenticate 2021-01-23 18:04:36 +00:00
Serialization.h Strip trailing whitespace from network code. 2015-12-21 13:58:32 +00:00
StringConverters.h Provide JSON-compatible string escaping 2011-11-04 01:18:34 +00:00
StunClient.cpp Get the public IP from the lobby if not using STUN. 2021-02-08 15:47:34 +00:00
StunClient.h Get the public IP from the lobby if not using STUN. 2021-02-08 15:47:34 +00:00