void _server_onClientConnected(object sender, ClientEventArgs e)
{
//Console.WriteLine("Client connected.");
//call plugins related to ClientConnectedHandler.
foreach (ClientConnectedHandler cch in PluginLoader.LoadPlugin(typeof(ClientConnectedHandler)))
{
try
{
if (!cch.OnConnect(e.Client, (IPEndPoint)e.Client.Sock.RemoteEndPoint))
{
e.Client.Disconnect();
return;
}
}
catch
{
}
}
SocksClient client = new SocksClient(e.Client);
e.Client.onDataReceived += Client_onDataReceived;
e.Client.onDataSent += Client_onDataSent;
client.onClientDisconnected += client_onClientDisconnected;
Clients.Add(client);
client.Begin(this.OutboundIPAddress, this.PacketSize, this.Timeout);
}