blob: 8c49874a2465022d7be2aee67ddc422957844774 [file] [log] [blame]
.\" **************************************************************************
.\" * _ _ ____ _
.\" * Project ___| | | | _ \| |
.\" * / __| | | | |_) | |
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * are also available at https://curl.se/docs/copyright.html.
.\" *
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" * SPDX-License-Identifier: curl
.\" *
.\" **************************************************************************
.\"
.TH CURLOPT_FTP_USE_EPSV 3 "17 Jun 2014" libcurl libcurl
.SH NAME
CURLOPT_FTP_USE_EPSV \- use EPSV for FTP
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_USE_EPSV, long epsv);
.fi
.SH DESCRIPTION
Pass \fIepsv\fP as a long. If the value is 1, it tells curl to use the EPSV
command when doing passive FTP downloads (which it does by default). Using
EPSV means that libcurl first attempts to use the EPSV command before using
PASV. If you pass zero to this option, it does not use EPSV, only plain PASV.
The EPSV command is a slightly newer addition to the FTP protocol than PASV
and is the preferred command to use since it enables IPv6 to be used. Very 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.
.SH DEFAULT
1
.SH PROTOCOLS
FTP
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/old-server/file.txt");
/* let's shut off this modern feature */
curl_easy_setopt(curl, CURLOPT_FTP_USE_EPSV, 0L);
ret = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
.fi
.SH AVAILABILITY
Along with FTP
.SH RETURN VALUE
Returns CURLE_OK if FTP is supported, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_FTP_USE_EPRT (3),
.BR CURLOPT_FTPPORT (3)