return CURLE_FTP_PORT_FAILED;
}
- for (modep = (char **)mode; modep && *modep; modep++) {
+ for (modep = (char **)(data->set.ftp_use_eprt?&mode[0]:&mode[2]);
+ modep && *modep; modep++) {
int lprtaf, eprtaf;
int alen=0, plen=0;
data->set.httpreq = HTTPREQ_GET; /* Default HTTP request */
data->set.ftp_use_epsv = TRUE; /* FTP defaults to EPSV operations */
+ data->set.ftp_use_eprt = TRUE; /* FTP defaults to EPRT operations */
data->set.dns_cache_timeout = 60; /* Timeout every 60 seconds by default */
data->set.ftp_use_port = data->set.ftpport?1:0;
break;
+ case CURLOPT_FTP_USE_EPRT:
+ data->set.ftp_use_eprt = va_arg(param, long)?TRUE:FALSE;
+ break;
+
case CURLOPT_FTP_USE_EPSV:
data->set.ftp_use_epsv = va_arg(param, long)?TRUE:FALSE;
break;
-
+
case CURLOPT_HTTPHEADER:
/*
* Set a list with HTTP headers to use (or replace internals with)
bool reuse_fresh; /* do not re-use an existing connection */
bool expect100header; /* TRUE if we added Expect: 100-continue */
bool ftp_use_epsv; /* if EPSV is to be attempted or not */
+ bool ftp_use_eprt; /* if EPRT is to be attempted or not */
bool no_signal; /* do not use any signal/alarm handler */
bool global_dns_cache;