# HG changeset patch # User rubidium # Date 1170450290 0 # Node ID 1475cf991e665045ff8bd935613716f58d8521ad # Parent 053fd8482b7dbee6e0cb17205250d226fd93b68b (svn r8543) -Codechange: make a real difference between querying the server via UDP and TCP. diff -r 053fd8482b7d -r 1475cf991e66 src/network/network.cpp --- a/src/network/network.cpp Fri Feb 02 20:57:03 2007 +0000 +++ b/src/network/network.cpp Fri Feb 02 21:04:50 2007 +0000 @@ -851,14 +851,12 @@ // Query a server to fetch his game-info // If game_info is true, only the gameinfo is fetched, // else only the client_info is fetched -NetworkGameList *NetworkQueryServer(const char* host, unsigned short port, bool game_info) +void NetworkTCPQueryServer(const char* host, unsigned short port) { - if (!_network_available) return NULL; + if (!_network_available) return; NetworkDisconnect(); - if (game_info) return NetworkUDPQueryServer(host, port); - NetworkInitialize(); _network_server = false; @@ -872,8 +870,6 @@ } else { // No networking, close everything down again NetworkDisconnect(); } - - return NULL; } /* Validates an address entered as a string and adds the server to @@ -882,7 +878,6 @@ void NetworkAddServer(const char *b) { if (*b != '\0') { - NetworkGameList *item; const char *port = NULL; const char *player = NULL; char host[NETWORK_HOSTNAME_LENGTH]; @@ -896,8 +891,7 @@ ParseConnectionString(&player, &port, host); if (port != NULL) rport = atoi(port); - item = NetworkQueryServer(host, rport, true); - item->manually = true; + NetworkUDPQueryServer(host, rport, true); } } diff -r 053fd8482b7d -r 1475cf991e66 src/network/network.h --- a/src/network/network.h Fri Feb 02 20:57:03 2007 +0000 +++ b/src/network/network.h Fri Feb 02 21:04:50 2007 +0000 @@ -163,7 +163,7 @@ VARDEF Year _network_restart_game_year; // If this year is reached, the server automaticly restarts VARDEF uint8 _network_min_players; // Minimum number of players for game to unpause -NetworkGameList *NetworkQueryServer(const char* host, unsigned short port, bool game_info); +void NetworkTCPQueryServer(const char* host, unsigned short port); byte NetworkSpectatorCount(void); diff -r 053fd8482b7d -r 1475cf991e66 src/network/network_gui.cpp --- a/src/network/network_gui.cpp Fri Feb 02 20:57:03 2007 +0000 +++ b/src/network/network_gui.cpp Fri Feb 02 21:04:50 2007 +0000 @@ -446,7 +446,7 @@ break; case 17: // Refresh if (nd->server != NULL) - NetworkQueryServer(nd->server->info.hostname, nd->server->port, true); + NetworkUDPQueryServer(nd->server->info.hostname, nd->server->port); break; case 18: // NewGRF Settings if (nd->server != NULL) ShowNewGRFSettings(false, false, false, &nd->server->info.grfconfig); @@ -945,8 +945,8 @@ NetworkClientConnectGame(_network_last_host, _network_last_port); break; case 10: /* Refresh */ - NetworkQueryServer(_network_last_host, _network_last_port, false); // company info - NetworkUDPQueryServer(_network_last_host, _network_last_port); // general data + NetworkTCPQueryServer(_network_last_host, _network_last_port); // company info + NetworkUDPQueryServer(_network_last_host, _network_last_port); // general data break; } break; @@ -994,8 +994,8 @@ Window *w; DeleteWindowById(WC_NETWORK_WINDOW, 0); - NetworkQueryServer(_network_last_host, _network_last_port, false); // company info - NetworkUDPQueryServer(_network_last_host, _network_last_port); // general data + NetworkTCPQueryServer(_network_last_host, _network_last_port); // company info + NetworkUDPQueryServer(_network_last_host, _network_last_port); // general data w = AllocateWindowDesc(&_network_lobby_window_desc); if (w != NULL) { diff -r 053fd8482b7d -r 1475cf991e66 src/network/network_udp.cpp --- a/src/network/network_udp.cpp Fri Feb 02 20:57:03 2007 +0000 +++ b/src/network/network_udp.cpp Fri Feb 02 21:04:50 2007 +0000 @@ -481,14 +481,14 @@ _network_udp_broadcast = 300; // Stay searching for 300 ticks } -NetworkGameList *NetworkUDPQueryServer(const char* host, unsigned short port) +void NetworkUDPQueryServer(const char* host, unsigned short port, bool manually) { struct sockaddr_in out_addr; NetworkGameList *item; // No UDP-socket yet.. if (!_udp_client_socket->IsConnected()) { - if (!_udp_client_socket->Listen(0, 0, true)) return NULL; + if (!_udp_client_socket->Listen(0, 0, true)) return; } out_addr.sin_family = AF_INET; @@ -500,14 +500,14 @@ memset(&item->info, 0, sizeof(item->info)); ttd_strlcpy(item->info.server_name, host, lengthof(item->info.server_name)); ttd_strlcpy(item->info.hostname, host, lengthof(item->info.hostname)); - item->online = false; + item->online = false; + item->manually = manually; // Init the packet Packet p(PACKET_UDP_CLIENT_FIND_SERVER); _udp_client_socket->SendPacket(&p, &out_addr); UpdateNetworkGameWindow(false); - return item; } /* Remove our advertise from the master-server */ diff -r 053fd8482b7d -r 1475cf991e66 src/network/network_udp.h --- a/src/network/network_udp.h Fri Feb 02 20:57:03 2007 +0000 +++ b/src/network/network_udp.h Fri Feb 02 21:04:50 2007 +0000 @@ -8,7 +8,7 @@ void NetworkUDPInitialize(void); void NetworkUDPSearchGame(void); void NetworkUDPQueryMasterServer(void); -NetworkGameList *NetworkUDPQueryServer(const char* host, unsigned short port); +void NetworkUDPQueryServer(const char* host, unsigned short port, bool manually = false); void NetworkUDPAdvertise(void); void NetworkUDPRemoveAdvertise(void); void NetworkUDPShutdown(void);