diff options
author | Daniel Stenberg <daniel@haxx.se> | 2008-12-09 15:02:37 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2008-12-09 15:02:37 +0000 |
commit | 4b62cd36169505571038c99bfcf6d9ee65812872 (patch) | |
tree | 1d976ab0c1e169cfa73859930636b39cae311ba4 | |
parent | df7b1d8e64b4675880a34ac713894b2161a2e84c (diff) |
- Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any
particular state for the control connection like it did before for implicit
FTPS (libcurl assumed such control connections to be encrypted while some
FTPS servers such as FileZilla assumes such connections to be clear
mode). Use the CURLOPT_USE_SSL option to set your desired level.
-rw-r--r-- | CHANGES | 7 | ||||
-rw-r--r-- | RELEASE-NOTES | 3 | ||||
-rw-r--r-- | TODO-RELEASE | 5 | ||||
-rw-r--r-- | lib/ftp.c | 36 |
4 files changed, 16 insertions, 35 deletions
@@ -6,6 +6,13 @@ Changelog +Daniel Stenberg (9 Dec 2008) +- Ken Hirsch simplified how libcurl does FTPS: now it doesn't assume any + particular state for the control connection like it did before for implicit + FTPS (libcurl assumed such control connections to be encrypted while some + FTPS servers such as FileZilla assumes such connections to be clear + mode). Use the CURLOPT_USE_SSL option to set your desired level. + Daniel Stenberg (8 Dec 2008) - Fred Machado posted about a weird FTP problem on the curl-users list and when researching it, it turned out he got a 550 response back from a SIZE command diff --git a/RELEASE-NOTES b/RELEASE-NOTES index cf34cf41d..5c8af40ed 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -26,6 +26,7 @@ This release includes the following bugfixes: o curl_multi_remove_handle() when the handle was in use in a HTTP pipeline o GSS authentication infinite loop problem o 550 response from SIZE no longer treated as missing file + o ftps:// control connections now use explicit protection level This release includes the following known bugs: @@ -36,6 +37,6 @@ advice from friends like these: Yang Tse, Daniel Fandrich, Jim Meyering, Christian Krause, Andreas Wurf, Markus Koetter, Josef Wolf, Vlad Grachov, Pawel Kierski, Igor Novoseltsev, - Fred Machado + Fred Machado, Ken Hirsch Thanks! (and sorry if I forgot to mention someone) diff --git a/TODO-RELEASE b/TODO-RELEASE index bb5555565..19d5530bb 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -2,14 +2,15 @@ To be addressed in 7.19.3 (planned release: January 2009) ========================= 193 - Fix zero-byte file transfers + - Nobody has actually started for real on this 196 - #2351653 "crash in ConnectionExists" + - Being worked on in the bug tracker 197 - IIS-bug in Digest -198 - implicit SSL with FileZilla server - 199 - "Bug 2351645" adjustment of the patch Daniel S applied + - Suggested fix posted to list 200 - "afert redirect, the content length is not reset" by Shunlong Bai @@ -150,9 +150,6 @@ static int ftp_getsock(struct connectdata *conn, static CURLcode ftp_doing(struct connectdata *conn, bool *dophase_done); static CURLcode ftp_setup_connection(struct connectdata * conn); -#ifdef USE_SSL -static CURLcode ftps_setup_connection(struct connectdata * conn); -#endif /* easy-to-use macro: */ #define FTPSENDF(x,y,z) if((result = Curl_ftpsendf(x,y,z)) != CURLE_OK) \ @@ -189,7 +186,7 @@ const struct Curl_handler Curl_handler_ftp = { const struct Curl_handler Curl_handler_ftps = { "FTPS", /* scheme */ - ftps_setup_connection, /* setup_connection */ + ftp_setup_connection, /* setup_connection */ ftp_do, /* do_it */ ftp_done, /* done */ ftp_nextconnect, /* do_more */ @@ -2683,24 +2680,9 @@ static CURLcode ftp_statemach_act(struct connectdata *conn) break; case FTP_PBSZ: - /* FIX: check response code */ - - /* For TLS, the data connection can have one of two security levels. - - 1) Clear (requested by 'PROT C') - - 2)Private (requested by 'PROT P') - */ - if(!conn->ssl[SECONDARYSOCKET].use) { - NBFTPSENDF(conn, "PROT %c", - data->set.ftp_ssl == CURLUSESSL_CONTROL ? 'C' : 'P'); - state(conn, FTP_PROT); - } - else { - result = ftp_state_pwd(conn); - if(result) - return result; - } + NBFTPSENDF(conn, "PROT %c", + data->set.ftp_ssl == CURLUSESSL_CONTROL ? 'C' : 'P'); + state(conn, FTP_PROT); break; @@ -4179,14 +4161,4 @@ static CURLcode ftp_setup_connection(struct connectdata * conn) return CURLE_OK; } -#ifdef USE_SSL -static CURLcode ftps_setup_connection(struct connectdata * conn) -{ - struct SessionHandle *data = conn->data; - - conn->ssl[SECONDARYSOCKET].use = data->set.ftp_ssl != CURLUSESSL_CONTROL; - return ftp_setup_connection(conn); -} -#endif - #endif /* CURL_DISABLE_FTP */ |