Convert movement, actions (lift/use), combat, and spells to use Core.TickCount and avoid DateTime caveats (performance, system time dependency, etc) Refactor DateTime.Now to DateTime.UtcNow Add LOS check for Iron Maiden addon
46 lines
No EOL
1.1 KiB
C#
46 lines
No EOL
1.1 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
using Server;
|
|
using Server.Misc;
|
|
|
|
namespace Server
|
|
{
|
|
public class AccessRestrictions
|
|
{
|
|
public static void Initialize()
|
|
{
|
|
EventSink.SocketConnect += new SocketConnectEventHandler( EventSink_SocketConnect );
|
|
}
|
|
|
|
private static void EventSink_SocketConnect( SocketConnectEventArgs e )
|
|
{
|
|
try
|
|
{
|
|
IPAddress ip = ((IPEndPoint)e.Socket.RemoteEndPoint).Address;
|
|
|
|
if ( Firewall.IsBlocked( ip ) )
|
|
{
|
|
Console.WriteLine( "Client: {0}: Firewall blocked connection attempt.", ip );
|
|
e.AllowConnection = false;
|
|
return;
|
|
}
|
|
else if ( IPLimiter.SocketBlock && !IPLimiter.Verify( ip ) )
|
|
{
|
|
Console.WriteLine( "Client: {0}: Past IP limit threshold", ip );
|
|
|
|
using ( StreamWriter op = new StreamWriter( "ipLimits.log", true ) )
|
|
op.WriteLine( "{0}\tPast IP limit threshold\t{1}", ip, DateTime.UtcNow );
|
|
|
|
e.AllowConnection = false;
|
|
return;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
e.AllowConnection = false;
|
|
}
|
|
}
|
|
}
|
|
} |