aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-09-23 19:37:23 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-09-23 19:37:23 +0000
commitf7d31bb3e35c89feb3de34b77961523eab1f66d6 (patch)
tree62665d084c16d21714a4401045de16f531383009 /src
parent9cd928674f6a66b98a6d1581fa0aed5cf69c870b (diff)
Mike Protts added --ftp-ssl-control to make curl use FTP-SSL, but only
encrypt the control connection and use the data connection "plain".
Diffstat (limited to 'src')
-rw-r--r--src/main.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index fda0f2bb4..2a433cae5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -339,6 +339,7 @@ struct Configurable {
size_t lastrecvsize;
bool ftp_ssl;
bool ftp_ssl_reqd;
+ bool ftp_ssl_control;
char *socksproxy; /* set to server string */
int socksver; /* set to CURLPROXY_SOCKS* define */
@@ -519,6 +520,7 @@ static void help(void)
" --ftp-pasv Use PASV/EPSV instead of PORT (F)",
" --ftp-skip-pasv-ip Skip the IP address for PASV (F)\n"
" --ftp-ssl Try SSL/TLS for the ftp transfer (F)",
+ " --ftp-ssl-control Try SSL/TLS for the ftp login, clear for transfer (F)",
" --ftp-ssl-reqd Require SSL/TLS for the ftp transfer (F)",
" -F/--form <name=content> Specify HTTP multipart POST data (H)",
" --form-string <name=string> Specify HTTP multipart POST data (H)",
@@ -1351,6 +1353,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
{"$u", "ftp-alternative-to-user", TRUE},
{"$v", "ftp-ssl-reqd", FALSE},
{"$w", "no-sessionid", FALSE},
+ {"$x", "ftp-ssl-control", FALSE},
{"0", "http1.0", FALSE},
{"1", "tlsv1", FALSE},
@@ -1801,6 +1804,9 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
case 'w': /* --no-sessionid */
config->disable_sessionid ^= TRUE;
break;
+ case 'x': /* --ftp-ssl-control */
+ config->ftp_ssl_control ^= TRUE;
+ break;
}
break;
case '#': /* --progress-bar */
@@ -3991,14 +3997,18 @@ operate(struct Configurable *config, int argc, char *argv[])
else
curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
- /* new in curl 7.11.0 */
- if(config->ftp_ssl)
- curl_easy_setopt(curl, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
-
/* new in curl 7.15.5 */
if(config->ftp_ssl_reqd)
curl_easy_setopt(curl, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
+ /* new in curl 7.11.0 */
+ else if(config->ftp_ssl)
+ curl_easy_setopt(curl, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
+
+ /* new in curl 7.16.0 */
+ else if(config->ftp_ssl_control)
+ curl_easy_setopt(curl, CURLOPT_FTP_SSL, CURLFTPSSL_CONTROL);
+
/* new in curl 7.11.1, modified in 7.15.2 */
if(config->socksproxy) {
curl_easy_setopt(curl, CURLOPT_PROXY, config->socksproxy);