diff options
author | Daniel Stenberg <daniel@haxx.se> | 2015-01-08 20:43:32 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2015-01-08 22:32:37 +0100 |
commit | 99e71e6a847a72b3e919b1bbaf42963536592913 (patch) | |
tree | 578e09dfef740e81f8b2a654844608f654196cde /lib/ftp.c | |
parent | 9a452ba3a16bb51249e1d1be5a5b6e47a255c064 (diff) |
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
Diffstat (limited to 'lib/ftp.c')
-rw-r--r-- | lib/ftp.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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; |