/// <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(); }
/// <summary> /// Starts mail server. /// </summary> public void Start() { // Server is already running, so do nothing. if(m_Running){ return; } m_ServersFileDate = DateTime.MinValue; m_pSettingsTimer_Elapsed(this,null); m_pSettingsTimer.Enabled = true; // Start management server m_pManagementServer = new MonitoringServer(this); m_pManagementServer.Start(); m_Running = true; m_StartTime = DateTime.Now; }
/// <summary> /// Stops mail server. /// </summary> public void Stop() { // Server isn't running, so do nothing. if(!m_Running){ return; } m_pSettingsTimer.Enabled = false; // Kill all running virtual servers foreach(VirtualServer server in m_pVirtualServers){ server.Stop(); } m_pVirtualServers.Clear(); // Kill management server m_pManagementServer.Dispose(); m_pManagementServer = null; m_Running = false; // Logging stuff Logger.WriteLog(m_StartupPath + "Logs\\Server\\server.log","//---- Server stopped " + DateTime.Now); }