From e75a8aa51c16dc090e68514fa23c8cf86a5b8c90 Mon Sep 17 00:00:00 2001
From: Bluzume <39113159+KuromeSan@users.noreply.github.com>
Date: Thu, 25 Nov 2021 17:18:53 -0500
Subject: [PATCH] Allow users to actually connect lol
---
.../HorseIsleServer/Server/GameClient.cs | 42 +++++++++----------
.../HorseIsleServer/Server/GameServer.cs | 12 +++---
.../HorseIsleServer/Server/PacketBuilder.cs | 3 +-
3 files changed, 29 insertions(+), 28 deletions(-)
diff --git a/HorseIsleServer/HorseIsleServer/Server/GameClient.cs b/HorseIsleServer/HorseIsleServer/Server/GameClient.cs
index 76e7fd0..46f262e 100644
--- a/HorseIsleServer/HorseIsleServer/Server/GameClient.cs
+++ b/HorseIsleServer/HorseIsleServer/Server/GameClient.cs
@@ -412,20 +412,23 @@ namespace HISP.Server
*/
try
{
- if (timeoutTimer != null)
- timeoutTimer.Change(timeoutInterval, timeoutInterval); // Reset time before timing out
- else
- return;
+ if (LoggedIn)
+ {
+ if (timeoutTimer != null)
+ timeoutTimer.Change(timeoutInterval, timeoutInterval); // Reset time before timing out
+ else
+ return;
- if (keepAliveTimer != null && identifier != PacketBuilder.PACKET_KEEP_ALIVE)
- {
- if (LoggedIn)
- LoggedinUser.Idle = false;
- keepAliveTimer.Change(oneMinute, oneMinute);
- }
- else
- {
- return;
+ if (keepAliveTimer != null && identifier != PacketBuilder.PACKET_KEEP_ALIVE)
+ {
+ if (LoggedIn)
+ LoggedinUser.Idle = false;
+ keepAliveTimer.Change(oneMinute, oneMinute);
+ }
+ else
+ {
+ return;
+ }
}
if (kickTimer != null && identifier != PacketBuilder.PACKET_KEEP_ALIVE)
@@ -437,7 +440,6 @@ namespace HISP.Server
warnTimer.Change(warnInterval, warnInterval);
else
return;
-
}
catch (ObjectDisposedException)
{
@@ -454,12 +456,11 @@ namespace HISP.Server
{
if (!LoggedIn) // Must be either login or policy-file-request
{
- if (Encoding.UTF8.GetString(Packet).StartsWith("")) // Policy File Request
- {
- GameServer.OnCrossdomainPolicyRequest(this);
- }
switch (identifier)
{
+ case PacketBuilder.PACKET_FLASH_XML_CROSSDOMAIN:
+ GameServer.OnCrossdomainPolicyRequest(this, Packet);
+ break;
case PacketBuilder.PACKET_LOGIN:
GameServer.OnLoginRequest(this, Packet);
break;
@@ -547,10 +548,7 @@ namespace HISP.Server
}
catch(Exception e)
{
- Logger.ErrorPrint("Unhandled Exception: " + e.ToString());
- Logger.ErrorPrint(e.Message);
- Logger.ErrorPrint("");
- Logger.ErrorPrint(e.StackTrace);
+ Logger.ErrorPrint("Unhandled Exception: " + e.ToString() + "\n" + e.Message + "\n" + e.StackTrace);
Kick("Unhandled Exception: " + e.ToString());
}
diff --git a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs
index be93ba2..f41b294 100644
--- a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs
+++ b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs
@@ -259,13 +259,15 @@ namespace HISP.Server
*/
- public static void OnCrossdomainPolicyRequest(GameClient sender)
+ public static void OnCrossdomainPolicyRequest(GameClient sender, byte[] packet)
{
- Logger.DebugPrint("Cross-Domain-Policy request received from: " + sender.RemoteIp);
+ if (Encoding.UTF8.GetString(packet).StartsWith(""))
+ {
+ Logger.DebugPrint("Cross-Domain-Policy request received from: " + sender.RemoteIp);
+ byte[] crossDomainPolicyResponse = CrossDomainPolicy.GetPolicy();
+ sender.SendPacket(crossDomainPolicyResponse);
- byte[] crossDomainPolicyResponse = CrossDomainPolicy.GetPolicy();
-
- sender.SendPacket(crossDomainPolicyResponse);
+ }
}
public static void OnPlayerInteration(GameClient sender, byte[] packet)
diff --git a/HorseIsleServer/HorseIsleServer/Server/PacketBuilder.cs b/HorseIsleServer/HorseIsleServer/Server/PacketBuilder.cs
index bfe7e44..81be215 100644
--- a/HorseIsleServer/HorseIsleServer/Server/PacketBuilder.cs
+++ b/HorseIsleServer/HorseIsleServer/Server/PacketBuilder.cs
@@ -13,7 +13,8 @@ namespace HISP.Server
public const byte PACKET_TERMINATOR = 0x00;
public const byte PACKET_CLIENT_TERMINATOR = 0x0A;
-
+
+ public const byte PACKET_FLASH_XML_CROSSDOMAIN = 0x3C;
public const byte PACKET_LOGIN = 0x7F;
public const byte PACKET_CHAT = 0x14;