summaryrefslogtreecommitdiff
path: root/src/network/network_client.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2010-04-11 17:17:12 +0000
committersmatz <smatz@openttd.org>2010-04-11 17:17:12 +0000
commit11d6e21c3ac658b065b64c5c9d0f43c45d7966db (patch)
tree1b1d234a24302144d7a5fe4907a4263a06a436f6 /src/network/network_client.cpp
parentd2dc3a2e2b76959162cb57a641c8db45787a8583 (diff)
downloadopenttd-11d6e21c3ac658b065b64c5c9d0f43c45d7966db.tar.xz
(svn r19607) -Codechange: use different packet types instead of packet subtypes
Diffstat (limited to 'src/network/network_client.cpp')
-rw-r--r--src/network/network_client.cpp70
1 files changed, 44 insertions, 26 deletions
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp
index 09dc66001..c2ddbdd39 100644
--- a/src/network/network_client.cpp
+++ b/src/network/network_client.cpp
@@ -167,18 +167,32 @@ DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_NEWGRFS_CHECKED)
return NETWORK_RECV_STATUS_OKAY;
}
-DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_PASSWORD)(NetworkPasswordType type, const char *password)
+DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password)
{
/*
- * Packet: CLIENT_PASSWORD
+ * Packet: CLIENT_GAME_PASSWORD
* Function: Send a password to the server to authorize
* Data:
* uint8: NetworkPasswordType
* String: Password
*/
- Packet *p = new Packet(PACKET_CLIENT_PASSWORD);
- p->Send_uint8 (type);
- p->Send_string(type == NETWORK_GAME_PASSWORD ? password : GenerateCompanyPasswordHash(password));
+ Packet *p = new Packet(PACKET_CLIENT_GAME_PASSWORD);
+ p->Send_string(password);
+ MY_CLIENT->Send_Packet(p);
+ return NETWORK_RECV_STATUS_OKAY;
+}
+
+DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *password)
+{
+ /*
+ * Packet: CLIENT_COMPANY_PASSWORD
+ * Function: Send a password to the server to authorize
+ * Data:
+ * uint8: NetworkPasswordType
+ * String: Password
+ */
+ Packet *p = new Packet(PACKET_CLIENT_COMPANY_PASSWORD);
+ p->Send_string(GenerateCompanyPasswordHash(password));
MY_CLIENT->Send_Packet(p);
return NETWORK_RECV_STATUS_OKAY;
}
@@ -535,30 +549,32 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_CHECK_NEWGRFS)
return ret;
}
-DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_PASSWORD)
+DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_GAME_PASSWORD)
{
- NetworkPasswordType type = (NetworkPasswordType)p->Recv_uint8();
-
const char *password = _network_join_server_password;
+ if (!StrEmpty(password)) {
+ return SEND_COMMAND(PACKET_CLIENT_GAME_PASSWORD)(password);
+ }
- switch (type) {
- case NETWORK_COMPANY_PASSWORD:
- /* Initialize the password hash salting variables. */
- _password_game_seed = p->Recv_uint32();
- p->Recv_string(_password_server_id, sizeof(_password_server_id));
- if (MY_CLIENT->HasClientQuit()) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
- password = _network_join_company_password;
- /* FALL THROUGH */
- case NETWORK_GAME_PASSWORD:
- if (StrEmpty(password)) {
- ShowNetworkNeedPassword(type);
- } else {
- return SEND_COMMAND(PACKET_CLIENT_PASSWORD)(type, password);
- }
- return NETWORK_RECV_STATUS_OKAY;
+ ShowNetworkNeedPassword(NETWORK_GAME_PASSWORD);
- default: return NETWORK_RECV_STATUS_MALFORMED_PACKET;
+ return NETWORK_RECV_STATUS_OKAY;
+}
+
+DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD)
+{
+ _password_game_seed = p->Recv_uint32();
+ p->Recv_string(_password_server_id, sizeof(_password_server_id));
+ if (MY_CLIENT->HasClientQuit()) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
+
+ const char *password = _network_join_company_password;
+ if (!StrEmpty(password)) {
+ return SEND_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)(password);
}
+
+ ShowNetworkNeedPassword(NETWORK_COMPANY_PASSWORD);
+
+ return NETWORK_RECV_STATUS_OKAY;
}
DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_WELCOME)
@@ -921,8 +937,10 @@ static NetworkClientPacket * const _network_client_packet[] = {
NULL, // PACKET_CLIENT_COMPANY_INFO,
RECEIVE_COMMAND(PACKET_SERVER_COMPANY_INFO),
RECEIVE_COMMAND(PACKET_SERVER_CLIENT_INFO),
- RECEIVE_COMMAND(PACKET_SERVER_NEED_PASSWORD),
- NULL, // PACKET_CLIENT_PASSWORD,
+ RECEIVE_COMMAND(PACKET_SERVER_NEED_GAME_PASSWORD),
+ RECEIVE_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD),
+ NULL, // PACKET_CLIENT_GAME_PASSWORD,
+ NULL, // PACKET_CLIENT_COMPANY_PASSWORD,
RECEIVE_COMMAND(PACKET_SERVER_WELCOME),
NULL, // PACKET_CLIENT_GETMAP,
RECEIVE_COMMAND(PACKET_SERVER_WAIT),