Fixed timeout issue that occurs with HLSW

This commit is contained in:
Deathmax 2011-07-09 17:26:28 +08:00
parent 07e335b780
commit 0b6777ba85

View file

@ -31,7 +31,7 @@ namespace TShockAPI
class RconHandler
{
public static string Password = "";
private static DateTime lastRequest;
private static DateTime LastRequest;
public static int ListenPort;
public static bool ContinueServer = true;
public static string Response = "";
@ -80,7 +80,7 @@ namespace TShockAPI
try
{
var listenEP = new IPEndPoint(IPAddress.Any, ListenPort);
lastRequest = DateTime.Now;
LastRequest = DateTime.Now;
byte[] bytes = listener.Receive(ref listenEP);
var packet = ParsePacket(bytes, listenEP);
listener.Send(packet, packet.Length, listenEP);
@ -118,7 +118,7 @@ namespace TShockAPI
var packetstring = Encoding.UTF8.GetString(PadPacket(bytes));
var redirect = false;
var print = true;
if ((DateTime.Now - lastRequest).Milliseconds >= 100)
if ((DateTime.Now - LastRequest).Milliseconds >= 100)
{
if (packetstring.StartsWith("rcon") || packetstring.Substring(4).StartsWith("rcon") || packetstring.Substring(5).StartsWith("rcon"))
{
@ -153,7 +153,10 @@ namespace TShockAPI
Log.Info("No password for rcon set");
}
}
else if (packetstring.StartsWith("getinfo")
else
redirect = true;
}
if (packetstring.StartsWith("getinfo")
|| packetstring.Substring(4).StartsWith("getinfo")
|| packetstring.Substring(5).StartsWith("getinfo"))
{
@ -169,6 +172,7 @@ namespace TShockAPI
infostring += @"\challenge\" + challenge;
response += infostring;
print = false;
redirect = false;
}
else if (packetstring.StartsWith("getstatus")
|| packetstring.Substring(4).StartsWith("getstatus")
@ -191,9 +195,7 @@ namespace TShockAPI
}
response += statusstring;
print = false;
}
else
redirect = true;
redirect = false;
}
if (!redirect)
return (ConstructPacket(response, print));