curl/docs/libcurl/opts/CURLOPT_FTP_USE_EPRT.md
Daniel Stenberg b935fd4a07
docs: make each libcurl man specify protocol(s)
The mandatory header now has a mandatory list of protocols for which the
manpage is relevant.

Most man pages already has a "PROTOCOLS" section, but this introduces a
stricter way to specify the relevant protocols.

cd2nroff verifies that at least one protocol is mentioned (which can be
`*`).

This information is not used just yet, but A) the PROTOCOLS section can
now instead get generated and get a unified wording across all manpages
and B) this allows us to more reliably filter/search for protocol
specific manpages/options.

Closes #13166
2024-03-21 15:27:06 +01:00

1.6 KiB

c SPDX-License-Identifier Title Section Source Protocol See-also
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. curl CURLOPT_FTP_USE_EPRT 3 libcurl
FTP
CURLOPT_FTPPORT (3)
CURLOPT_FTP_USE_EPSV (3)

NAME

CURLOPT_FTP_USE_EPRT - use EPRT for FTP

SYNOPSIS

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_USE_EPRT, long enabled);

DESCRIPTION

Pass a long. If the value is 1, it tells curl to use the EPRT command when doing active FTP downloads (which is enabled by CURLOPT_FTPPORT(3)). Using EPRT means that libcurl first attempts to use EPRT before using PORT, but if you pass zero to this option, it avoids using EPRT, only plain PORT.

The EPRT command is a slightly newer addition to the FTP protocol than PORT and is the preferred command to use since it enables IPv6 to be used. Old FTP servers might not support it, which is why libcurl has a fallback mechanism. Sometimes that fallback is not enough and then this option might come handy.

If the server is an IPv6 host, this option has no effect as EPRT is necessary then.

DEFAULT

PROTOCOLS

EXAMPLE

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/file.txt");

    /* contact us back, aka "active" FTP */
    curl_easy_setopt(curl, CURLOPT_FTPPORT, "-");

    /* FTP the way the neanderthals did it */
    curl_easy_setopt(curl, CURLOPT_FTP_USE_EPRT, 0L);

    res = curl_easy_perform(curl);

    curl_easy_cleanup(curl);
  }
}

AVAILABILITY

Added in 7.10.5

RETURN VALUE

Returns CURLE_OK