كود:
public void Accept()
{
try
{
if (Alive && Connection.Poll(0, SelectMode.SelectRead))
{
if (Connection.Poll(1, SelectMode.SelectError))
{
var close_socket = Connection.Accept();
WindowsAPI.ws2_32.shutdown(close_socket.Handle, WindowsAPI.ws2_32.ShutDownFlags.SD_BOTH);
WindowsAPI.ws2_32.closesocket(close_socket.Handle);
return;
}
var socket = Connection.Accept();
string RemoteIP = (socket.RemoteEndPoint as IPEndPoint).Address.ToString();
if (!Bruteforce.IsBanned(RemoteIP) || Bruteforce.AllowAddress(RemoteIP))
{
SecuritySocket user = new SecuritySocket(ProcessDisconnect, ProcessReceive);
user.Create(socket);
Clients.Add(user);
if (ProcessConnection != null)
{
ProcessConnection.Invoke(user);
}
user.ConnectFull = true;
Bruteforce.AddWatch(user.RemoteIp);
}
else
{
WindowsAPI.ws2_32.shutdown(socket.Handle, WindowsAPI.ws2_32.ShutDownFlags.SD_BOTH);
WindowsAPI.ws2_32.closesocket(socket.Handle);
}
}
}
catch (Exception e) { MyConsole.SaveException(e); }
}
كود:
ws2_32
private const string WS2_32 = "ws2_32.dll";
Find -> "[DllImport(WS2_32, SetLastError = true)]"
Add -> [In, Out] IntPtr[] LagMonster,
);