From 99e71e6a847a72b3e919b1bbaf42963536592913 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 8 Jan 2015 20:43:32 +0100 Subject: FTP: if EPSV fails on IPV6 connections, bail out MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... instead of trying PASV, since PASV can't work with IPv6. Reported-by: Vojtěch Král --- lib/ftp.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/ftp.c b/lib/ftp.c index 528b4c13c..68610f958 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -1815,6 +1815,13 @@ static CURLcode ftp_state_quote(struct connectdata *conn, static CURLcode ftp_epsv_disable(struct connectdata *conn) { CURLcode result = CURLE_OK; + + if(conn->bits.ipv6) { + /* We can't disable EPSV when doing IPv6, so this is instead a fail */ + failf(conn->data, "Failed EPSV attempt, exiting\n"); + return CURLE_FTP_WEIRD_SERVER_REPLY; + } + infof(conn->data, "Failed EPSV attempt. Disabling EPSV\n"); /* disable it for next transfer */ conn->bits.ftp_use_epsv = FALSE; -- cgit v1.2.3