Loading docs/curl.1 +9 −0 Original line number Diff line number Diff line Loading @@ -347,6 +347,15 @@ If this option is used twice, the second will again disable silent failure. using this option can be used to override a previous --ftp-port option. (Added in 7.11.0) If this option is used twice, the second will again disable silent failure. .IP "--ftp-skip-pasv-ip" (FTP) Tell curl to not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection. Instead curl will re-use the same IP address it already uses for the control connection. (Added in 7.14.1) This option has no effect if PORT, EPRT or EPSV is used instead of PASV. If this option is used twice, the second will again disable silent failure. .IP "--ftp-ssl" (FTP) Make the FTP connection switch to use SSL/TLS. (Added in 7.11.0) Loading docs/libcurl/curl_easy_setopt.3 +8 −0 Original line number Diff line number Diff line Loading @@ -767,6 +767,14 @@ curl is waiting for a response, this value overrides \fICURLOPT_TIMEOUT\fP. It is recommended that if used in conjunction with \fICURLOPT_TIMEOUT\fP, you set \fICURLOPT_FTP_RESPONSE_TIMEOUT\fP to a value smaller than \fICURLOPT_TIMEOUT\fP. (Added in 7.10.8) .IP CURLOPT_FTP_SKIP_PASV_IP Pass a long. If set to a non-zero value, it instructs libcurl to not use the IP address the server suggests in its 227-response to libcurl's PASV command when libcurl connects the data connection. Instead libcurl will re-use the same IP address it already uses for the control connection. But it will use the port number from the 227-response. (Added in 7.14.1) This option has no effect if PORT, EPRT or EPSV is used instead of PASV. .IP CURLOPT_FTP_SSL Pass a long using one of the values from below, to make libcurl use your desired level of SSL for the ftp transfer. (Added in 7.11.0) Loading include/curl/curl.h +6 −0 Original line number Diff line number Diff line Loading @@ -903,6 +903,12 @@ typedef enum { /* ignore Content-Length */ CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), /* Set to non-zero to skip the IP address received in a 227 PASV FTP server response. Typically used for FTP-SSL purposes but is not restricted to that. libcurl will then instead use the same IP address it used for the control connection. */ CINIT(FTP_SKIP_PASV_IP, LONG, 137), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; Loading lib/ftp.c +12 −4 Original line number Diff line number Diff line Loading @@ -1601,6 +1601,16 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, return CURLE_FTP_WEIRD_227_FORMAT; } /* we got OK from server */ if(data->set.ftp_skip_ip) { /* told to ignore the remotely given IP but instead use the one we used for the control connection */ infof(data, "Skips %d.%d.%d.%d for data connection, uses %s instead\n", ip[0], ip[1], ip[2], ip[3], conn->ip_addr_str); snprintf(newhost, sizeof(newhost), "%s", conn->ip_addr_str); } else snprintf(newhost, sizeof(newhost), "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); newport = (port[0]<<8) + port[1]; Loading @@ -1622,8 +1632,6 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, return CURLE_FTP_WEIRD_PASV_REPLY; } /* we got OK from server */ if(data->change.proxy && *data->change.proxy) { /* * This is a tunnel through a http proxy and we need to connect to the Loading lib/url.c +9 −1 Original line number Diff line number Diff line Loading @@ -965,6 +965,14 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, data->set.ftp_use_epsv = va_arg(param, long)?TRUE:FALSE; break; case CURLOPT_FTP_SKIP_PASV_IP: /* * Enable or disable FTP_SKIP_PASV_IP, which will disable/enable the * bypass of the IP address in PASV responses. */ data->set.ftp_skip_ip = (bool)va_arg(param, long); break; case CURLOPT_INFILE: /* * FILE pointer to read the file to be uploaded from. Or possibly Loading Loading
docs/curl.1 +9 −0 Original line number Diff line number Diff line Loading @@ -347,6 +347,15 @@ If this option is used twice, the second will again disable silent failure. using this option can be used to override a previous --ftp-port option. (Added in 7.11.0) If this option is used twice, the second will again disable silent failure. .IP "--ftp-skip-pasv-ip" (FTP) Tell curl to not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection. Instead curl will re-use the same IP address it already uses for the control connection. (Added in 7.14.1) This option has no effect if PORT, EPRT or EPSV is used instead of PASV. If this option is used twice, the second will again disable silent failure. .IP "--ftp-ssl" (FTP) Make the FTP connection switch to use SSL/TLS. (Added in 7.11.0) Loading
docs/libcurl/curl_easy_setopt.3 +8 −0 Original line number Diff line number Diff line Loading @@ -767,6 +767,14 @@ curl is waiting for a response, this value overrides \fICURLOPT_TIMEOUT\fP. It is recommended that if used in conjunction with \fICURLOPT_TIMEOUT\fP, you set \fICURLOPT_FTP_RESPONSE_TIMEOUT\fP to a value smaller than \fICURLOPT_TIMEOUT\fP. (Added in 7.10.8) .IP CURLOPT_FTP_SKIP_PASV_IP Pass a long. If set to a non-zero value, it instructs libcurl to not use the IP address the server suggests in its 227-response to libcurl's PASV command when libcurl connects the data connection. Instead libcurl will re-use the same IP address it already uses for the control connection. But it will use the port number from the 227-response. (Added in 7.14.1) This option has no effect if PORT, EPRT or EPSV is used instead of PASV. .IP CURLOPT_FTP_SSL Pass a long using one of the values from below, to make libcurl use your desired level of SSL for the ftp transfer. (Added in 7.11.0) Loading
include/curl/curl.h +6 −0 Original line number Diff line number Diff line Loading @@ -903,6 +903,12 @@ typedef enum { /* ignore Content-Length */ CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), /* Set to non-zero to skip the IP address received in a 227 PASV FTP server response. Typically used for FTP-SSL purposes but is not restricted to that. libcurl will then instead use the same IP address it used for the control connection. */ CINIT(FTP_SKIP_PASV_IP, LONG, 137), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; Loading
lib/ftp.c +12 −4 Original line number Diff line number Diff line Loading @@ -1601,6 +1601,16 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, return CURLE_FTP_WEIRD_227_FORMAT; } /* we got OK from server */ if(data->set.ftp_skip_ip) { /* told to ignore the remotely given IP but instead use the one we used for the control connection */ infof(data, "Skips %d.%d.%d.%d for data connection, uses %s instead\n", ip[0], ip[1], ip[2], ip[3], conn->ip_addr_str); snprintf(newhost, sizeof(newhost), "%s", conn->ip_addr_str); } else snprintf(newhost, sizeof(newhost), "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); newport = (port[0]<<8) + port[1]; Loading @@ -1622,8 +1632,6 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, return CURLE_FTP_WEIRD_PASV_REPLY; } /* we got OK from server */ if(data->change.proxy && *data->change.proxy) { /* * This is a tunnel through a http proxy and we need to connect to the Loading
lib/url.c +9 −1 Original line number Diff line number Diff line Loading @@ -965,6 +965,14 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, data->set.ftp_use_epsv = va_arg(param, long)?TRUE:FALSE; break; case CURLOPT_FTP_SKIP_PASV_IP: /* * Enable or disable FTP_SKIP_PASV_IP, which will disable/enable the * bypass of the IP address in PASV responses. */ data->set.ftp_skip_ip = (bool)va_arg(param, long); break; case CURLOPT_INFILE: /* * FILE pointer to read the file to be uploaded from. Or possibly Loading