Merge pull request #3461 from Mailaender/default-buffer-size

More Debug Logging for the Server/Client connection
This commit is contained in:
Chris Forbes
2013-06-23 14:37:05 -07:00
2 changed files with 12 additions and 7 deletions

View File

@@ -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;
@@ -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;
}
}
@@ -72,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)

View File

@@ -97,9 +97,9 @@ namespace OpenRA.Server
UPnP.ForwardPort();
foreach (var trait in modData.Manifest.ServerTraits)
ServerTraits.Add( modData.ObjectCreator.CreateObject<ServerTrait>(trait) );
ServerTraits.Add(modData.ObjectCreator.CreateObject<ServerTrait>(trait));
lobbyInfo = new Session( mods );
lobbyInfo = new Session(mods);
lobbyInfo.GlobalSettings.RandomSeed = randomSeed;
lobbyInfo.GlobalSettings.Map = settings.Map;
lobbyInfo.GlobalSettings.ServerName = settings.Name;
@@ -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;
}
@@ -199,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));