/// <summary> /// Default constructor. /// </summary> /// <param name="sessionID">Session ID.</param> /// <param name="socket">Server connected socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> /// <param name="server">Reference to server.</param> internal FTP_Session(string sessionID,SocketEx socket,IPBindInfo bindInfo,FTP_Server server) : base(sessionID,socket,bindInfo,server) { m_pServer = server; // Start session proccessing StartSession(); }
/// <summary> /// Default constructor. /// </summary> /// <param name="sessionID">Session ID.</param> /// <param name="socket">Server connected socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> /// <param name="server">Reference to server.</param> internal MonitoringServerSession(string sessionID,SocketEx socket,BindInfo bindInfo,MonitoringServer server) : base(sessionID,socket,bindInfo,server) { m_pServer = server; // Start session proccessing StartSession(); }
private string m_UserName = ""; // Holds USER command value #endregion Fields #region Constructors /// <summary> /// Default constructor. /// </summary> /// <param name="sessionID">Session ID.</param> /// <param name="socket">Server connected socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> /// <param name="server">Reference to server.</param> internal POP3_Session(string sessionID,SocketEx socket,IPBindInfo bindInfo,POP3_Server server) : base(sessionID,socket,bindInfo,server) { m_pServer = server; m_POP3_Messages = new POP3_MessageCollection(); // Start session proccessing StartSession(); }
/// <summary> /// Default constructor. /// </summary> /// <param name="sessionID">Session ID.</param> /// <param name="socket">Server connected socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> /// <param name="server">Reference to server.</param> internal SMTP_Session(string sessionID,SocketEx socket,IPBindInfo bindInfo,SMTP_Server server) : base(sessionID,socket,bindInfo,server) { m_pServer = server; m_BodyType = BodyType.x7_bit; m_Forward_path = new Hashtable(); m_CmdValidator = new SMTP_Cmd_Validator(); // Start session proccessing StartSession(); }
/// <summary> /// Initialize and start new session here. Session isn't added to session list automatically, /// session must add itself to server session list by calling AddSession(). /// </summary> /// <param name="socket">Connected client socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> protected override void InitNewSession(Socket socket,IPBindInfo bindInfo) { // Check maximum conncurent connections from 1 IP. if(m_MaxConnectionsPerIP > 0){ lock(this.Sessions){ int nSessions = 0; foreach(SocketServerSession s in this.Sessions){ IPEndPoint ipEndpoint = s.RemoteEndPoint; if(ipEndpoint != null){ if(ipEndpoint.Address.Equals(((IPEndPoint)socket.RemoteEndPoint).Address)){ nSessions++; } } // Maimum allowed exceeded if(nSessions >= m_MaxConnectionsPerIP){ socket.Send(System.Text.Encoding.ASCII.GetBytes("421 Maximum connections from your IP address is exceeded, try again later !\r\n")); socket.Shutdown(SocketShutdown.Both); socket.Close(); return; } } } } string sessionID = Guid.NewGuid().ToString(); SocketEx socketEx = new SocketEx(socket); if(LogCommands){ socketEx.Logger = new SocketLogger(socket,this.SessionLog); socketEx.Logger.SessionID = sessionID; } SMTP_Session session = new SMTP_Session(sessionID,socketEx,bindInfo,this); }
/// <summary> /// Default constructor. /// </summary> public Server() { m_pSocket = new SocketEx(); m_pLockSynchronizer = m_pSocket; }
/// <summary> /// Default constructor. /// </summary> /// <param name="socket">Socket where to write data.</param> public SocketBufferedWriter(SocketEx socket) { m_pSocket = socket; m_Buffer = new byte[m_BufferSize]; }
/// <summary> /// Default constructor. /// </summary> /// <param name="sessionID">Session ID.</param> /// <param name="socket">Server connected socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> /// <param name="server">Reference to server.</param> public SocketServerSession(string sessionID,SocketEx socket,BindInfo bindInfo,SocketServer server) { m_SessionID = sessionID; m_pSocket = socket; m_pBindInfo = bindInfo; m_pServer = server; m_SessionStartTime = DateTime.Now; }
/// <summary> /// Initialize and start new session here. Session isn't added to session list automatically, /// session must add itself to server session list by calling AddSession(). /// </summary> /// <param name="socket">Connected client socket.</param> /// <param name="bindInfo">BindInfo what accepted socket.</param> protected override void InitNewSession(Socket socket,BindInfo bindInfo) { string sessionID = Guid.NewGuid().ToString(); SocketEx socketEx = new SocketEx(socket); /*if(LogCommands){ socketEx.Logger = new SocketLogger(socket,this.SessionLog); socketEx.Logger.SessionID = sessionID; }*/ MonitoringServerSession session = new MonitoringServerSession(sessionID,socketEx,bindInfo,this); }