#pragma hdrstop
#endif
-#if wxUSE_SOCKETS
+#include "wx/setup.h"
+
+#if wxUSE_SOCKETS && wxUSE_STREAMS
#ifndef __MWERKS__
#include <memory.h>
wxFTP::~wxFTP()
{
+ if ( m_streaming )
+ {
+ (void)Abort();
+ }
+
Close();
}
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() )
: wxSocketOutputStream(*sock), m_ftp(ftp_clt) {}
virtual ~wxOutputFTPStream(void)
{
- if (LastError() != wxStream_NOERROR)
- m_ftp->GetResult('2');
- else
- m_ftp->Abort();
- delete m_o_socket;
+ if ( IsOk() )
+ {
+ // close data connection first, this will generate "transfer
+ // completed" reply
+ delete m_o_socket;
+
+ // read this reply
+ m_ftp->GetResult('2');
+ }
+ else
+ {
+ // abort data connection first
+ m_ftp->Abort();
+
+ // and close it after
+ delete m_o_socket;
+ }
}
};