summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2006-04-14 12:19:51 +0000
committertruelight <truelight@openttd.org>2006-04-14 12:19:51 +0000
commit4a4b860ee7d7d45ad1e4e45c37fe134458ef2daa (patch)
tree3c6138af656325521d9c54a8e26448f224e35d62
parent060d5143ef4935214a852f7a7fdaed2c7631751c (diff)
downloadopenttd-4a4b860ee7d7d45ad1e4e45c37fe134458ef2daa.tar.xz
(svn r4413) -Fix: fixed a bug which pushed the client back to the main menu when a
server is in the mainserver-list which sends out illegal signals. Many tnx to 'test' for finding and isolating the problem. -Fix: also specify the problem a bit better
-rw-r--r--network_data.c2
-rw-r--r--network_udp.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/network_data.c b/network_data.c
index ce008a86a..43ed7c769 100644
--- a/network_data.c
+++ b/network_data.c
@@ -125,7 +125,7 @@ static NetworkRecvStatus CloseConnection(NetworkClientState *cs)
NetworkCloseClient(cs);
// Clients drop back to the main menu
- if (!_network_server) {
+ if (!_network_server && _networking) {
_switch_mode = SM_MENU;
_networking = false;
_switch_mode_errorstr = STR_NETWORK_ERR_LOSTCONNECTION;
diff --git a/network_udp.c b/network_udp.c
index 7fed91b10..5ee2bb6ea 100644
--- a/network_udp.c
+++ b/network_udp.c
@@ -328,8 +328,12 @@ static void NetworkHandleUDPPacket(Packet* p, struct sockaddr_in* client_addr)
if (type < PACKET_UDP_END && _network_udp_packet[type] != NULL && !_udp_cs.quited) {
_network_udp_packet[type](p, client_addr);
- } else {
- DEBUG(net, 0)("[NET][UDP] Received invalid packet type %d", type);
+ } else {
+ if (!_udp_cs.quited) {
+ DEBUG(net, 0)("[NET][UDP] Received invalid packet type %d", type);
+ } else {
+ DEBUG(net, 0)("[NET][UDP] Received illegal packet");
+ }
}
}