From dab3d99890829814aa5a6f28d9ec77b8240ad2af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 22 Jun 2013 14:28:00 +0200 Subject: [PATCH 1/4] write another socket error catch into server.log --- OpenRA.Game/Server/Connection.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenRA.Game/Server/Connection.cs b/OpenRA.Game/Server/Connection.cs index 0551e23571..098caa9515 100644 --- a/OpenRA.Game/Server/Connection.cs +++ b/OpenRA.Game/Server/Connection.cs @@ -65,6 +65,7 @@ namespace OpenRA.Server if (e.SocketErrorCode == SocketError.WouldBlock) break; server.DropClient(this); + Log.Write("server", "Dropping client {0} because reading the data failed: {1}", this.PlayerIndex.ToString(), e); return false; } } From 8ddc840370d74a469df92036198519073f488419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 22 Jun 2013 15:17:10 +0200 Subject: [PATCH 2/4] fix some plenks no logic changes --- OpenRA.Game/Server/Connection.cs | 4 ++-- OpenRA.Game/Server/Server.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenRA.Game/Server/Connection.cs b/OpenRA.Game/Server/Connection.cs index 098caa9515..76799ee660 100644 --- a/OpenRA.Game/Server/Connection.cs +++ b/OpenRA.Game/Server/Connection.cs @@ -36,7 +36,7 @@ namespace OpenRA.Server return result.ToArray(); } - bool ReadDataInner( Server server ) + bool ReadDataInner(Server server) { var rx = new byte[1024]; var len = 0; @@ -73,7 +73,7 @@ namespace OpenRA.Server return true; } - public void ReadData( Server server ) + public void ReadData(Server server) { if (ReadDataInner(server)) while (data.Count >= ExpectLength) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 7c898805a3..df58fc7449 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -97,9 +97,9 @@ namespace OpenRA.Server UPnP.ForwardPort(); foreach (var trait in modData.Manifest.ServerTraits) - ServerTraits.Add( modData.ObjectCreator.CreateObject(trait) ); + ServerTraits.Add(modData.ObjectCreator.CreateObject(trait)); - lobbyInfo = new Session( mods ); + lobbyInfo = new Session(mods); lobbyInfo.GlobalSettings.RandomSeed = randomSeed; lobbyInfo.GlobalSettings.Map = settings.Map; lobbyInfo.GlobalSettings.ServerName = settings.Name; From c18b5e424ec2d845a681f982a5dd9a6cb6d28d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 22 Jun 2013 15:46:26 +0200 Subject: [PATCH 3/4] at least write the acception we swallow here to the server.log --- OpenRA.Game/Server/Server.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index df58fc7449..50555e0710 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -186,10 +186,11 @@ namespace OpenRA.Server if (!listener.Server.IsBound) return; newSocket = listener.AcceptSocket(); } - catch + catch (Exception e) { - /* could have an exception here when listener 'goes away' when calling AcceptConnection! */ - /* alternative would be to use locking but the listener doesnt go away without a reason */ + /* TODO: Could have an exception here when listener 'goes away' when calling AcceptConnection! */ + /* Alternative would be to use locking but the listener doesnt go away without a reason. */ + Log.Write("server", "Accepting the connection failed.", e); return; } From 6a50c760aea9380cbbc41ca476505529ef6e0f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 22 Jun 2013 15:49:52 +0200 Subject: [PATCH 4/4] record socket buffer sizes to server.log for investigating #3455 --- OpenRA.Game/Server/Server.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 50555e0710..7de0d3d445 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -200,6 +200,9 @@ namespace OpenRA.Server newConn.socket.Blocking = false; newConn.socket.NoDelay = true; + Log.Write("server", "Socket.ReceiveBufferSize: {0}.".F(newConn.socket.ReceiveBufferSize)); + Log.Write("server", "Socket.SendBufferSize: {0}.".F(newConn.socket.SendBufferSize)); + // assign the player number. newConn.PlayerIndex = ChooseFreePlayerIndex(); newConn.socket.Send(BitConverter.GetBytes(ProtocolVersion.Version));