diff --git a/include/wx/protocol/ftp.h b/include/wx/protocol/ftp.h index 459f2bfd6c..0e7e595315 100644 --- a/include/wx/protocol/ftp.h +++ b/include/wx/protocol/ftp.h @@ -32,8 +32,8 @@ public: bool Connect(wxSockAddress& addr, bool wait = TRUE); bool Connect(const wxString& host); - // [forcibly] close the connection - bool Close(bool force = FALSE); + // close the connection + virtual bool Close(); void SetUser(const wxString& user) { m_user = user; } void SetPassword(const wxString& passwd) { m_passwd = passwd; } diff --git a/src/common/ftp.cpp b/src/common/ftp.cpp index 80c0e1a057..e9db032f8e 100644 --- a/src/common/ftp.cpp +++ b/src/common/ftp.cpp @@ -71,6 +71,11 @@ wxFTP::wxFTP() wxFTP::~wxFTP() { + if ( m_streaming ) + { + (void)Abort(); + } + Close(); } @@ -122,17 +127,12 @@ bool wxFTP::Connect(const wxString& host) return Connect(addr); } -bool wxFTP::Close(bool force) +bool wxFTP::Close() { if ( m_streaming ) { - if ( !force ) - { - m_lastError = wxPROTO_STREAMING; - return FALSE; - } - - (void)Abort(); + m_lastError = wxPROTO_STREAMING; + return FALSE; } if ( IsConnected() )