Fix: only query a manually added server if it isn't there yet

But always mark it as manually, no matter if it was there or not.
This commit is contained in:
Patric Stout 2021-05-04 20:43:35 +02:00 committed by Patric Stout
parent fc91f1d1b2
commit b9ab3bd6b3
2 changed files with 6 additions and 5 deletions

View File

@ -657,7 +657,7 @@ void NetworkTCPQueryServer(const std::string &connection_string, bool request_co
* @param connection_string The IP:port of the server to add. * @param connection_string The IP:port of the server to add.
* @return The entry on the game list. * @return The entry on the game list.
*/ */
NetworkGameList *NetworkAddServer(const std::string &connection_string) NetworkGameList *NetworkAddServer(const std::string &connection_string, bool manually)
{ {
if (connection_string.empty()) return nullptr; if (connection_string.empty()) return nullptr;
@ -666,13 +666,14 @@ NetworkGameList *NetworkAddServer(const std::string &connection_string)
if (item->info.server_name.empty()) { if (item->info.server_name.empty()) {
ClearGRFConfigList(&item->info.grfconfig); ClearGRFConfigList(&item->info.grfconfig);
item->info.server_name = connection_string; item->info.server_name = connection_string;
item->manually = true;
NetworkRebuildHostList(); NetworkRebuildHostList();
UpdateNetworkGameWindow(); UpdateNetworkGameWindow();
NetworkTCPQueryServer(connection_string);
} }
NetworkTCPQueryServer(connection_string); if (manually) item->manually = true;
return item; return item;
} }
@ -1202,7 +1203,7 @@ extern "C" {
void CDECL em_openttd_add_server(const char *connection_string) void CDECL em_openttd_add_server(const char *connection_string)
{ {
NetworkAddServer(connection_string); NetworkAddServer(connection_string, false);
} }
} }

View File

@ -90,7 +90,7 @@ extern CompanyMask _network_company_passworded;
void NetworkTCPQueryServer(const std::string &connection_string, bool request_company_info = false); void NetworkTCPQueryServer(const std::string &connection_string, bool request_company_info = false);
void GetBindAddresses(NetworkAddressList *addresses, uint16 port); void GetBindAddresses(NetworkAddressList *addresses, uint16 port);
struct NetworkGameList *NetworkAddServer(const std::string &connection_string); struct NetworkGameList *NetworkAddServer(const std::string &connection_string, bool manually = true);
void NetworkRebuildHostList(); void NetworkRebuildHostList();
void UpdateNetworkGameWindow(); void UpdateNetworkGameWindow();