From ea014d857fb14699a46f37201ecefcb7735f2667 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= <des@FreeBSD.org>
Date: Mon, 21 Aug 2000 07:18:31 +0000
Subject: [PATCH] Grok 125 replies to passive RETR.  This fixes an
 interoperability bug with Microsoft FTP Service.

Reported by:	asmodai, eivind
---
 lib/libfetch/ftp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c
index 7da413fd77bf..78e2de1edf5f 100644
--- a/lib/libfetch/ftp.c
+++ b/lib/libfetch/ftp.c
@@ -76,6 +76,7 @@
 #define FTP_ANONYMOUS_USER	"ftp"
 #define FTP_ANONYMOUS_PASSWORD	"ftp"
 
+#define FTP_CONNECTION_ALREADY_OPEN	125
 #define FTP_OPEN_DATA_CONNECTION	150
 #define FTP_OK				200
 #define FTP_FILE_STATUS			213
@@ -452,7 +453,7 @@ _ftp_transfer(int cd, char *oper, char *file,
 	if (verbose)
 	    _fetch_info("initiating transfer");
 	e = _ftp_cmd(cd, "%s %s", oper, _ftp_filename(file));
-	if (e != FTP_OPEN_DATA_CONNECTION)
+	if (e != FTP_CONNECTION_ALREADY_OPEN && e != FTP_OPEN_DATA_CONNECTION)
 	    goto ouch;
 	
     } else {