summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rw-r--r--methods/ftp.cc14
2 files changed, 10 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index 4fc61a8c6..21dd8f634 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -49,6 +49,8 @@ apt (0.5.9) unstable; urgency=low
- echo 3 > debian/compat
- Build-Depends: debhelper (>= 3)
* Exclude '.#*' from cvs-build
+ * Let the ftp method work with ftp servers which do not require a
+ password (Closes: #199425)
--
diff --git a/methods/ftp.cc b/methods/ftp.cc
index cc2f1395d..fb84f3f55 100644
--- a/methods/ftp.cc
+++ b/methods/ftp.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: ftp.cc,v 1.30 2003/02/10 07:34:41 doogie Exp $
+// $Id: ftp.cc,v 1.31 2003/08/10 02:24:39 mdz Exp $
/* ######################################################################
FTP Aquire Method - This is the FTP aquire method for APT.
@@ -209,11 +209,13 @@ bool FTPConn::Login()
if (Tag >= 400)
return _error->Error(_("USER failed, server said: %s"),Msg.c_str());
- // Send the Password
- if (WriteMsg(Tag,Msg,"PASS %s",Pass.c_str()) == false)
- return false;
- if (Tag >= 400)
- return _error->Error(_("PASS failed, server said: %s"),Msg.c_str());
+ if (Tag == 331) { // 331 User name okay, need password.
+ // Send the Password
+ if (WriteMsg(Tag,Msg,"PASS %s",Pass.c_str()) == false)
+ return false;
+ if (Tag >= 400)
+ return _error->Error(_("PASS failed, server said: %s"),Msg.c_str());
+ }
// Enter passive mode
if (_config->Exists("Acquire::FTP::Passive::" + ServerName.Host) == true)