From 49053e843dd718c30012c908cae0f248579d2de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Can=20C=C3=B6mert?= Date: Thu, 9 Oct 2025 15:31:48 +0200 Subject: [PATCH] [NET-738] Do not try to resolve ip of remote address for passive mode if the FTP Server running behind a Proxy. --- src/main/java/org/apache/commons/net/ftp/FTPClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/net/ftp/FTPClient.java b/src/main/java/org/apache/commons/net/ftp/FTPClient.java index 7b375430a..a558aa89b 100644 --- a/src/main/java/org/apache/commons/net/ftp/FTPClient.java +++ b/src/main/java/org/apache/commons/net/ftp/FTPClient.java @@ -28,6 +28,7 @@ import java.net.Inet6Address; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.Proxy; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; @@ -880,7 +881,11 @@ protected void _parsePassiveModeReply(final String reply) throws MalformedServer } else if (_socket_ == null) { pasvHost = null; // For unit testing. } else { - pasvHost = _socket_.getInetAddress().getHostAddress(); + // If a PROXY is configured, use the IP given by the reply as it is. + Proxy proy = getProxy(); + if (proy == null) { + pasvHost = _socket_.getInetAddress().getHostAddress(); + } } passiveHost = pasvHost; passivePort = pasvPort;