0ad/source/ps/GameSetup
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
..
tests Add a mod installer, fixes #4027. 2018-04-15 01:46:28 +00:00
Atlas.cpp Add the ability to specify a log level when using dlopen and change it to normal for Atlas. 2014-06-05 17:07:04 +00:00
Atlas.h Add basic help page into the main menu. 2010-07-07 21:47:31 +00:00
CmdLineArgs.cpp Add a mod installer, fixes #4027. 2018-04-15 01:46:28 +00:00
CmdLineArgs.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
Config.cpp Refactor HWDetect and rendering options setup. 2020-06-07 13:16:57 +00:00
Config.h Refactor HWDetect and rendering options setup. 2020-06-07 13:16:57 +00:00
GameSetup.cpp Netcode: Identify controller client via a secret key 2021-02-27 17:44:59 +00:00
GameSetup.h Address concerns in 5473393e30 (RL interface) 2021-01-15 16:30:05 +00:00
HWDetect.cpp Replaces UNICODE characters in the code by consistent ASCII characters. 2021-01-15 10:07:36 +00:00
HWDetect.h Add script-based system for doing messy stuff based on system configuration. 2010-11-20 19:46:49 +00:00
Paths.cpp Actually remove trailing whitespace for non-header files as well. 2016-11-23 13:02:58 +00:00
Paths.h Updates data paths on OS X and Windows. On OS X only write to locations inside ~/Library. On Windows make the distinction between local and roaming appdata, and use folder inside My Documents for user-created data. Fixes #1145. 2012-03-22 00:23:31 +00:00