@@ -33,6 +33,11 @@ enum Connection_Mode {Mode_Passive = 0, Mode_Active = 1, Mode_ConnectionMax = 2}
3333enum Transfer_Mode {Mode_Binary = 0 , Mode_ASCII = 1 , Mode_TransferMax = 2 };
3434enum AuthenticationMethods {Method_Password=0x01 , Method_Key=0x02 , Method_Interactive=0x04 , Method_All=0x07 };
3535
36+
37+ // =================================================================================================
38+ // FtpSSLWrapper
39+ // =================================================================================================
40+
3641class FtpSSLWrapper : public CUT_FTPClient {
3742public:
3843 FtpSSLWrapper ();
@@ -46,6 +51,8 @@ class FtpSSLWrapper : public CUT_FTPClient {
4651
4752 virtual int SetCertificates (vX509 * x509Vect);
4853
54+ virtual DWORD LastAction ();
55+
4956 virtual BOOL IsConnected ();
5057protected:
5158 virtual int GetResponseCode (CUT_WSClient *ws,LPSTR string = NULL ,int maxlen = 0 );
@@ -64,8 +71,14 @@ class FtpSSLWrapper : public CUT_FTPClient {
6471 ProgressMonitor* m_progmon;
6572 long m_currentTotal; // kinda hacky
6673 vX509* m_certificates;
74+
75+ DWORD m_lastAction;
6776};
6877
78+ // =================================================================================================
79+ // FTPClientWrapper
80+ // =================================================================================================
81+
6982class FTPClientWrapper {
7083public:
7184 FTPClientWrapper (Client_Type type, const char * host, int port, const char * user, const char * password);
@@ -82,6 +95,8 @@ class FTPClientWrapper {
8295 virtual int Connect () = 0;
8396 virtual int Disconnect () = 0;
8497
98+ virtual int NoOp () = 0;
99+
85100 // Don't forget to call releasedir
86101 virtual int GetDir (const char * path, FTPFile** files) = 0;
87102 static int ReleaseDir (FTPFile* files, int size);
@@ -103,6 +118,8 @@ class FTPClientWrapper {
103118 virtual int ReceiveFile (HANDLE hFile, const char * ftpfile) = 0;
104119 virtual int DeleteFile (const char * path) = 0;
105120
121+ virtual DWORD LastAction () = 0;
122+
106123 virtual bool IsConnected ();
107124 virtual int Abort ();
108125protected:
@@ -125,6 +142,10 @@ class FTPClientWrapper {
125142 vX509* m_certificates;
126143};
127144
145+ // =================================================================================================
146+ // FTPClientWrapperSSH
147+ // =================================================================================================
148+
128149class FTPClientWrapperSSH : public FTPClientWrapper {
129150public:
130151 FTPClientWrapperSSH (const char * host, int port, const char * user, const char * password);
@@ -140,6 +161,8 @@ class FTPClientWrapperSSH : public FTPClientWrapper {
140161 virtual int Cwd (const char * path);
141162 virtual int Pwd (char * buf, size_t size);
142163
164+ virtual int NoOp ();
165+
143166 // Modifying operations
144167 virtual int Rename (const char * from, const char * to);
145168 virtual int ChmodFile (const char * path, const char * mode);
@@ -154,6 +177,8 @@ class FTPClientWrapperSSH : public FTPClientWrapper {
154177 virtual int ReceiveFile (HANDLE hFile, const char * ftpfile);
155178 virtual int DeleteFile (const char * path);
156179
180+ virtual DWORD LastAction ();
181+
157182 virtual bool IsConnected ();
158183
159184 // Class specific operations
@@ -182,6 +207,10 @@ class FTPClientWrapperSSH : public FTPClientWrapper {
182207 unsigned int m_acceptedMethods;
183208};
184209
210+ // =================================================================================================
211+ // FTPClientWrapperSSL
212+ // =================================================================================================
213+
185214class FTPClientWrapperSSL : public FTPClientWrapper {
186215public:
187216 FTPClientWrapperSSL (const char * host, int port, const char * user, const char * password);
@@ -196,6 +225,8 @@ class FTPClientWrapperSSL : public FTPClientWrapper {
196225 virtual int Connect ();
197226 virtual int Disconnect ();
198227
228+ virtual int NoOp ();
229+
199230 virtual int GetDir (const char * path, FTPFile** files);
200231
201232 virtual int Cwd (const char * path);
@@ -215,6 +246,8 @@ class FTPClientWrapperSSL : public FTPClientWrapper {
215246 virtual int ReceiveFile (HANDLE hFile, const char * ftpfile);
216247 virtual int DeleteFile (const char * path);
217248
249+ virtual DWORD LastAction ();
250+
218251 virtual bool IsConnected ();
219252 virtual int Abort ();
220253 virtual int OnReturn (int ret);
@@ -235,9 +268,12 @@ class FTPClientWrapperSSL : public FTPClientWrapper {
235268 FILETIME ConvertFiletime (int day, int month, int year, int hour, int minute);
236269};
237270
238- // ///////////////////////////////////////////////////////
239- // ///Class extending some classes from CUT
240- // ///////////////////////////////////////////////////////
271+
272+ // =================================================================================================
273+ // MemoryDataSource
274+ // =================================================================================================
275+
276+ // Class extending some classes from CUT
241277
242278class MemoryDataSource : public CUT_DataSource {
243279protected:
0 commit comments