diff options
author | rubidium42 <rubidium@openttd.org> | 2021-05-02 09:10:09 +0200 |
---|---|---|
committer | rubidium42 <rubidium42@users.noreply.github.com> | 2021-05-14 23:22:04 +0200 |
commit | 6db52d52d00516b71a982e61b3b9592a887091aa (patch) | |
tree | 0125b75c92e42e189ddce0cf347d51edad41706a /src/network | |
parent | 1de5cdeab8387b23b566142f205ac9232a6f61a3 (diff) | |
download | openttd-6db52d52d00516b71a982e61b3b9592a887091aa.tar.xz |
Codechange: [Network] Use std::string for the internal handling of server passwords
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/network_client.cpp | 7 | ||||
-rw-r--r-- | src/network/network_client.h | 6 | ||||
-rw-r--r-- | src/network/network_server.cpp | 3 |
3 files changed, 7 insertions, 9 deletions
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 675807dec..4740849a0 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -385,7 +385,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::SendNewGRFsOk() * Set the game password as requested. * @param password The game password. */ -NetworkRecvStatus ClientNetworkGameSocketHandler::SendGamePassword(const char *password) +NetworkRecvStatus ClientNetworkGameSocketHandler::SendGamePassword(const std::string &password) { Packet *p = new Packet(PACKET_CLIENT_GAME_PASSWORD); p->Send_string(password); @@ -799,9 +799,8 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_NEED_GAME_PASSW if (this->status < STATUS_JOIN || this->status >= STATUS_AUTH_GAME) return NETWORK_RECV_STATUS_MALFORMED_PACKET; this->status = STATUS_AUTH_GAME; - const char *password = _network_join.server_password; - if (!StrEmpty(password)) { - return SendGamePassword(password); + if (!_network_join.server_password.empty()) { + return SendGamePassword(_network_join.server_password); } ShowNetworkNeedPassword(NETWORK_GAME_PASSWORD); diff --git a/src/network/network_client.h b/src/network/network_client.h index c4dc4b1fd..baf4f5996 100644 --- a/src/network/network_client.h +++ b/src/network/network_client.h @@ -90,7 +90,7 @@ public: static NetworkRecvStatus SendQuit(); static NetworkRecvStatus SendAck(); - static NetworkRecvStatus SendGamePassword(const char *password); + static NetworkRecvStatus SendGamePassword(const std::string &password); static NetworkRecvStatus SendCompanyPassword(const std::string &password); static NetworkRecvStatus SendChat(NetworkAction action, DestType type, int dest, const char *msg, int64 data); @@ -114,10 +114,10 @@ void NetworkClientSetCompanyPassword(const std::string &password); /** Information required to join a server. */ struct NetworkJoinInfo { - NetworkJoinInfo() : company(COMPANY_SPECTATOR), server_password(nullptr) {} + NetworkJoinInfo() : company(COMPANY_SPECTATOR) {} std::string connection_string; ///< The address of the server to join. CompanyID company; ///< The company to join. - const char *server_password; ///< The password of the server to join. + std::string server_password; ///< The password of the server to join. std::string company_password; ///< The password of the company to join. }; diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 4d35af116..314407348 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -953,8 +953,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_GAME_PASSWORD(P return this->SendError(NETWORK_ERROR_NOT_EXPECTED); } - char password[NETWORK_PASSWORD_LENGTH]; - p->Recv_string(password, sizeof(password)); + std::string password = p->Recv_string(NETWORK_PASSWORD_LENGTH); /* Check game password. Allow joining if we cleared the password meanwhile */ if (!_settings_client.network.server_password.empty() && |