/// <summary> /// Releases the unmanaged resources used by the <see cref="FtpControlChannel"/> object and optionally releases the managed resources. /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (!m_disposed) { try { // This will be done regardless of whether the object is finalized or disposed. if (disposing) { m_lastResponse = null; if ((object)m_connection != null) { m_connection.Close(); } m_connection = null; } } finally { m_disposed = true; // Prevent duplicate dispose. } } }
/// <summary> /// Refresh response from control channel. /// </summary> public void RefreshResponse() { if ((object)m_connection == null) { return; } lock (this) { m_lastResponse = new FtpResponse(m_connection.GetStream()); } foreach (string s in m_lastResponse.Respones) { m_sessionHost.OnResponseReceived(s); } }
/// <summary> /// Connects the <see cref="FtpControlChannel"/>. /// </summary> public void Connect() { if ((object)m_connection == null) { return; } m_connection.Connect(m_server, m_port); try { m_lastResponse = new FtpResponse(m_connection.GetStream()); if (m_lastResponse.Code != FtpResponse.ServiceReady) { throw new FtpServerDownException("FTP service unavailable.", m_lastResponse); } } catch { Close(); throw; } }
internal FtpExceptionBase(string message, FtpResponse ftpResponse) : base(message) { m_ftpResponse = ftpResponse; }
/// <summary> /// Connects the <see cref="FtpControlChannel"/>. /// </summary> public void Connect() { if ((object)m_connection == null) return; m_connection.Connect(m_server, m_port); try { m_lastResponse = new FtpResponse(m_connection.GetStream()); if (m_lastResponse.Code != FtpResponse.ServiceReady) throw new FtpServerDownException("FTP service unavailable.", m_lastResponse); } catch { Close(); throw; } }
internal FtpResumeNotSupportedException(FtpResponse ftpResponse) : base("Data transfer error: server does not support resuming.", ftpResponse) { }
internal FtpCommandException(string message, FtpResponse ftpResponse) : base(message, ftpResponse) { }
internal FtpServerDownException(FtpResponse ftpResponse) : this("FTP service was down.", ftpResponse) { }
internal FtpAuthenticationException(string message, FtpResponse ftpResponse) : base(message, ftpResponse) { }
internal FtpInvalidResponseException(string message, FtpResponse ftpResponse) : base(message, ftpResponse) { }
/// <summary> /// Refresh response from control channel. /// </summary> public void RefreshResponse() { if ((object)m_connection == null) return; lock (this) { m_lastResponse = new FtpResponse(m_connection.GetStream()); } foreach (string s in m_lastResponse.Respones) { m_sessionHost.OnResponseReceived(s); } }
/// <summary> /// Connects the <see cref="FtpControlChannel"/>. /// </summary> public void Connect() { if ((object)m_connection == null) return; m_connection.Connect(m_server, m_port); try { NetworkStream stream = m_connection.GetStream(); stream.ReadTimeout = m_timeout; stream.WriteTimeout = m_timeout; m_lastResponse = new FtpResponse(stream); if (m_lastResponse.Code != FtpResponse.ServiceReady) throw new FtpServerDownException("FTP service unavailable.", m_lastResponse); } catch { Close(); throw; } }
/// <summary> /// Releases the unmanaged resources used by the <see cref="FtpControlChannel"/> object and optionally releases the managed resources. /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (!m_disposed) { try { // This will be done regardless of whether the object is finalized or disposed. if (disposing) { m_lastResponse = null; if ((object)m_connection != null) m_connection.Close(); m_connection = null; } } finally { m_disposed = true; // Prevent duplicate dispose. } } }
internal FtpServerDownException(string message, FtpResponse ftpResponse) : base(message, ftpResponse) { }
internal FtpDataTransferException(string message, FtpResponse ftpResponse) : base(message, ftpResponse) { }