From: Daniel Stenberg Date: Thu, 8 Jan 2015 19:43:32 +0000 (+0100) Subject: FTP: if EPSV fails on IPV6 connections, bail out X-Git-Tag: curl-7_41_0~151 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=99e71e6a847a72b3e919b1bbaf42963536592913;p=curl FTP: if EPSV fails on IPV6 connections, bail out ... instead of trying PASV, since PASV can't work with IPv6. Reported-by: Vojtěch Král --- 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;