private static void EventSink_SocketConnect( SocketConnectEventArgs e ) { try { IPAddress ip = ((IPEndPoint)e.Socket.RemoteEndPoint).Address; if ( Firewall.IsBlocked( ip ) ) { log.Error(String.Format("Client: {0}: Firewall blocked connection attempt.", ip)); e.AllowConnection = false; return; } else if ( IPLimiter.SocketBlock && !IPLimiter.Verify( ip ) ) { log.Error(String.Format("Client: {0}: Past IP limit threshold", ip)); e.AllowConnection = false; return; } } catch { e.AllowConnection = false; } }
private static void EventSink_SocketConnect(SocketConnectEventArgs e) { try { IPAddress ip = ((IPEndPoint)e.Socket.RemoteEndPoint).Address; if (Firewall.IsBlocked(ip)) { Utility.PushColor(ConsoleColor.DarkRed); Console.WriteLine("Client: {0}: Firewall blocked connection attempt.", ip); Utility.PopColor(); e.AllowConnection = false; return; } else if (IPLimiter.SocketBlock && !IPLimiter.Verify(ip)) { Utility.PushColor(ConsoleColor.DarkRed); Console.WriteLine("Client: {0}: Past IP limit threshold", ip); Utility.PopColor(); using (StreamWriter op = new StreamWriter("ipLimits.log", true)) op.WriteLine("{0}\tPast IP limit threshold\t{1}", ip, DateTime.Now); e.AllowConnection = false; return; } } catch { e.AllowConnection = false; } }
private static void EventSink_SocketConnect(SocketConnectEventArgs e) { if (e.AllowConnection && !NagleEnabled) { e.Socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1); // RunUO uses its own algorithm } }
private static void OnSocketConnect(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; } if (!IPLimiter.SocketBlock || IPLimiter.Verify(ip)) { return; } LoggingCustom.Log( "LOG_IPLimits.log", String.Format("{0}\tPast IP limit threshold\t{1}", ip, DateTime.Now.ToSimpleString("t d-m-y N"))); Console.WriteLine("Client: {0}: Past IP limit threshold", ip); e.AllowConnection = false; } catch { e.AllowConnection = false; } }
private static void EventSink_SocketConnect( SocketConnectEventArgs e ) { if ( !e.AllowConnection ) return; Socket s = e.Socket; s.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 15000 ); s.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 15000 ); if ( CoalesceBufferSize > 0 ) s.SetSocketOption( SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1 ); // RunUO uses its own algorithm }
private static void EventSink_SocketConnect(SocketConnectEventArgs e) { if (!e.AllowConnection) { return; } Socket s = e.Socket; s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 15000); s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 15000); if (CoalesceBufferSize > 0) { s.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1); // RunUO uses its own algorithm } }
public static void InvokeSocketConnect( SocketConnectEventArgs e ) { if ( SocketConnect != null ) SocketConnect( e ); }
public static void InvokeSocketConnect(SocketConnectEventArgs e) => SocketConnect?.Invoke(e);
private void OnAccept( IAsyncResult asyncResult ) { try { Socket s = m_Listener.EndAccept( asyncResult ); SocketConnectEventArgs e = new SocketConnectEventArgs( s ); EventSink.InvokeSocketConnect( e ); if ( e.AllowConnection ) { lock ( m_Accepted.SyncRoot ) m_Accepted.Enqueue( s ); } else { try{ s.Shutdown( SocketShutdown.Both ); } catch{} try{ s.Close(); } catch{} } } catch { } finally { m_Listener.BeginAccept( m_OnAccept, m_Listener ); } }
private bool VerifySocket(Socket socket) { try { SocketConnectEventArgs args = new SocketConnectEventArgs(socket); EventSink.InvokeSocketConnect(args); return args.AllowConnection; } catch (Exception ex) { NetState.TraceException(ex); return false; } }
public static void InvokeSocketConnect(SocketConnectEventArgs e) { if (SocketConnect != null) { foreach (SocketConnectEventHandler currentDelegate in SocketConnect.GetInvocationList()) { try { currentDelegate.Invoke(e); } catch (Exception ex) { // Log an exception EventSink.InvokeLogException(new LogExceptionEventArgs(ex)); } } } }