Provided by: libcurl4-doc_7.88.1-8ubuntu1_all bug

NAME

       CURLOPT_FTPPORT - make FTP transfer active

SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTPPORT, char *spec);

DESCRIPTION

       Pass  a  pointer  to  a  null-terminated  string  as  parameter. It specifies that the FTP
       transfer will be made actively and the given string will be used to get the IP address  to
       use for the FTP PORT instruction.

       The  PORT  instruction tells the remote server to connect to our specified IP address. The
       string may be a plain IP address, a host name, a network interface name  (under  Unix)  or
       just  a  '-'  symbol  to let the library use your system's default IP address. Default FTP
       operations are passive, and thus will not use PORT.

       The address can be followed by a ':' to specify a port, optionally followed by  a  '-'  to
       specify  a  port  range. If the port specified is 0, the operating system will pick a free
       port. If a range is provided and all ports in the range are not  available,  libcurl  will
       report CURLE_FTP_PORT_FAILED for the handle. Invalid port/range settings are ignored. IPv6
       addresses followed by a port or port range have to be in brackets. IPv6 addresses  without
       port/range specifier can be in brackets.

       Examples with specified ports:

         eth0:0
         192.168.1.2:32000-33000
         curl.se:32123
         [::1]:1234-4567

       We  strongly advise against specifying the address with a name, as it causes libcurl to do
       a blocking name resolve call to retrieve the IP address. That name resolve operation  will
       not use DNS-over-HTTPS even if CURLOPT_DOH_URL(3) is set.

       You  disable PORT again and go back to using the passive version by setting this option to
       NULL.

       The application does not have to keep the string around after setting this option.

DEFAULT

       NULL

PROTOCOLS

       FTP

EXAMPLE

       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/old-server/file.txt");
         curl_easy_setopt(curl, CURLOPT_FTPPORT, "-");
         ret = curl_easy_perform(curl);
         curl_easy_cleanup(curl);
       }

AVAILABILITY

       Port range support was added in 7.19.5

RETURN VALUE

       Returns  CURLE_OK  if  the  option  is  supported,   CURLE_UNKNOWN_OPTION   if   not,   or
       CURLE_OUT_OF_MEMORY if there was insufficient heap space.

SEE ALSO

       CURLOPT_FTP_USE_EPRT(3), CURLOPT_FTP_USE_EPSV(3),