Mercurial > hg > openttd
changeset 14996:9e5144f34303 draft
(svn r19608) -Fix: do not kick client if he entered password and the password was cleared meanwhile
author | smatz <smatz@openttd.org> |
---|---|
date | Sun, 11 Apr 2010 17:23:11 +0000 |
parents | 807715f421a8 |
children | eada19c57056 |
files | src/network/network_server.cpp |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -754,8 +754,9 @@ char password[NETWORK_PASSWORD_LENGTH]; p->Recv_string(password, sizeof(password)); - /* Check game password */ - if (strcmp(password, _settings_client.network.server_password) != 0) { + /* Check game password. Allow joining if we cleared the password meanwhile */ + if (!StrEmpty(_settings_client.network.server_password) && + strcmp(password, _settings_client.network.server_password) != 0) { /* Password is invalid */ return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD); } @@ -778,9 +779,10 @@ char password[NETWORK_PASSWORD_LENGTH]; p->Recv_string(password, sizeof(password)); - /* Check company password */ + /* Check company password. Allow joining if we cleared the password meanwhile */ const NetworkClientInfo *ci = cs->GetInfo(); - if (strcmp(password, _network_company_states[ci->client_playas].password) != 0) { + if (!StrEmpty(_network_company_states[ci->client_playas].password) && + strcmp(password, _network_company_states[ci->client_playas].password) != 0) { /* Password is invalid */ return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD); }