diff options
author | rubidium <rubidium@openttd.org> | 2011-01-19 16:37:06 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2011-01-19 16:37:06 +0000 |
commit | e54a1f67213218f52d8e27bce3aeda5d7dc16ad9 (patch) | |
tree | 8280435b51df9d855d217e9da1c973e5b134d455 /src/network/network_server.cpp | |
parent | e95718bf43a7d34868ee11002108ff0dd6e1ab2a (diff) | |
download | openttd-e54a1f67213218f52d8e27bce3aeda5d7dc16ad9.tar.xz |
(svn r21853) -Codechange: HashCurrentCompanyPassword is only used by servers, so move it to network_server.* (dihedral)
Diffstat (limited to 'src/network/network_server.cpp')
-rw-r--r-- | src/network/network_server.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index c9fe3c181..83352f702 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1629,6 +1629,26 @@ bool NetworkServerChangeClientName(ClientID client_id, const char *new_name) return true; } +/** + * Hash the current company password; used when the server 'company' sets his/her password. + * @param password The password to hash. + */ +void HashCurrentCompanyPassword(const char *password) +{ + uint32 password_game_seed; + char password_server_id[NETWORK_SERVER_ID_LENGTH]; + + password_game_seed = _settings_game.game_creation.generation_seed; + strecpy(password_server_id, _settings_client.network.network_id, lastof(password_server_id)); + + const char *new_pw = GenerateCompanyPasswordHash(password, password_server_id, password_game_seed); + strecpy(_network_company_states[_local_company].password, new_pw, lastof(_network_company_states[_local_company].password)); + + if (_network_server) { + NetworkServerUpdateCompanyPassworded(_local_company, !StrEmpty(_network_company_states[_local_company].password)); + } +} + /* Handle the local command-queue */ static void NetworkHandleCommandQueue(NetworkClientSocket *cs) { |