Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 22 May 2002 17:42:09 +0200 From: Marcel Telka To: cygwin AT cygwin DOT com Subject: Patch for setup-2.218.2.9 (problem with FTP) Message-ID: <20020522174209.B5582@tortuga.etc.sk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="h31gzZEtNLTqOjlF" Content-Disposition: inline User-Agent: Mutt/1.2.5.1i --h31gzZEtNLTqOjlF Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi. I've found little problem in the cygwin setup program (version 2.218.2.9): There is no possibility to download files from some FTP servers (like djb's publicfile ftpd http://cr.yp.to/publicfile/ftpd.html) because the setup scans for '(' in a PASV FTP reply (code 227). djb's ftpd uses this format for PASV reply: 227 =h1,h2,h3,h4,p1,p2 RFC 1123 (in section 4.1.2.6) says: The format of the 227 reply to a PASV command is not well standardized. In particular, an FTP client cannot assume that the parentheses shown on page 40 of RFC-959 will be present (and in fact, Figure 3 on page 43 omits them). Therefore, a User-FTP program that interprets the PASV reply must scan the reply for the first digit of the host and port numbers. I've considered this as bug in the setup and created patch for nio-ftp.cc file (see attachment). Please apply this patch to the sources. Thanks. Note: I'm not subscribed to cygwin AT cygwin DOT com list. Regards. -- +-------------------------------------------+ | Marcel Telka e-mail: marcel AT telka DOT sk | | homepage: http://telka.sk/ | | jabber: marcel AT jabber DOT sk | +-------------------------------------------+ --h31gzZEtNLTqOjlF Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="cygwin-setup-ftp.patch" --- nio-ftp.cc.orig 2002-02-18 14:53:06.000000000 +0100 +++ nio-ftp.cc 2002-05-22 17:14:06.000000000 +0200 @@ -125,13 +125,13 @@ NetIO_FTP::NetIO_FTP (char const *Purl, return; char * - paren = strchr (last_line, '('); - if (!paren) + digit = strpbrk (last_line + 3, "0123456789"); + if (!digit) return; int i1, i2, i3, i4, p1, p2; - sscanf (paren + 1, "%d,%d,%d,%d,%d,%d", &i1, &i2, &i3, &i4, &p1, &p2); + sscanf (digit, "%d,%d,%d,%d,%d,%d", &i1, &i2, &i3, &i4, &p1, &p2); char tmp[20]; sprintf (tmp, "%d.%d.%d.%d", i1, i2, i3, i4); --h31gzZEtNLTqOjlF Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --h31gzZEtNLTqOjlF--