pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www/squid31 Add fix for Squid bug 2395 which makes FTP...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a3b1913ca802
branches:  trunk
changeset: 396220:a3b1913ca802
user:      tron <tron%pkgsrc.org@localhost>
date:      Mon Jul 20 13:56:31 2009 +0000

description:
Add fix for Squid bug 2395 which makes FTP connection to e.g.
"ftp.fu-berlin.de" work again.

diffstat:

 www/squid31/Makefile         |   3 ++-
 www/squid31/distinfo         |   3 ++-
 www/squid31/patches/patch-ab |  36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)

diffs (68 lines):

diff -r 8feedfc5939d -r a3b1913ca802 www/squid31/Makefile
--- a/www/squid31/Makefile      Mon Jul 20 13:09:41 2009 +0000
+++ b/www/squid31/Makefile      Mon Jul 20 13:56:31 2009 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.11 2009/07/19 23:05:38 tron Exp $
+# $NetBSD: Makefile,v 1.12 2009/07/20 13:56:31 tron Exp $
 
 DISTNAME=      squid-3.1.0.11
 PKGNAME=       ${DISTNAME}     # Necessary for "pkgsrc/www/squid/options.mk"
+PKGREVISION=   1
 CATEGORIES=    www
 MASTER_SITES=  http://www.squid-cache.org/Versions/v3/3.1/ \
                ${SQUID_MASTER_SITES}
diff -r 8feedfc5939d -r a3b1913ca802 www/squid31/distinfo
--- a/www/squid31/distinfo      Mon Jul 20 13:09:41 2009 +0000
+++ b/www/squid31/distinfo      Mon Jul 20 13:56:31 2009 +0000
@@ -1,9 +1,10 @@
-$NetBSD: distinfo,v 1.9 2009/07/20 10:49:16 tron Exp $
+$NetBSD: distinfo,v 1.10 2009/07/20 13:56:31 tron Exp $
 
 SHA1 (squid-3.1.0.11.tar.bz2) = 374c2a5d664320109d92405a44926fc93dce4526
 RMD160 (squid-3.1.0.11.tar.bz2) = c654e229ed6c060798e290ef7f7491cae4fa0356
 Size (squid-3.1.0.11.tar.bz2) = 2381394 bytes
 SHA1 (patch-aa) = a9ca6f8536262a7645f8efdcbcd05b9c190b57df
+SHA1 (patch-ab) = 122834b04e8ab4983bbe7a5ce08c41db775357a7
 SHA1 (patch-ad) = cb2591bebcbcf22f6cb1858f243b0c808d3db589
 SHA1 (patch-ae) = a1f8a6bfa49a3e7c46fc6228b22ef374f3bd3964
 SHA1 (patch-ah) = e20f7b76d6d48041efbfe1a07dce756a818e6642
diff -r 8feedfc5939d -r a3b1913ca802 www/squid31/patches/patch-ab
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/squid31/patches/patch-ab      Mon Jul 20 13:56:31 2009 +0000
@@ -0,0 +1,36 @@
+$NetBSD: patch-ab,v 1.3 2009/07/20 13:56:31 tron Exp $
+
+Fix for Squid bug 2395, taken from here:
+
+http://www.squid-cache.org/bugs/show_bug.cgi?id=2395
+http://www.squid-cache.org/bugs/attachment.cgi?id=2017
+
+--- src/ftp.cc.orig    2009-07-19 06:11:14.000000000 +0100
++++ src/ftp.cc 2009-07-20 14:44:35.000000000 +0100
+@@ -2447,9 +2447,13 @@
+         /* server response with list of supported methods   */
+         /*   522 Network protocol not supported, use (1)    */
+         /*   522 Network protocol not supported, use (1,2)  */
++        /* TODO: handle the (1,2) case. We might get it back after EPSV ALL 
++         * which means close data + control without self-destructing and re-open from scratch. */
+         debugs(9, 5, HERE << "scanning: " << ftpState->ctrl.last_reply);
++        buf = ftpState->ctrl.last_reply;
++        while (buf != NULL && *buf != '\0' && *buf != '\n' && *buf != '(') ++buf;
++        if (buf != NULL && *buf == '\n') ++buf;
+ 
+-        buf = ftpState->ctrl.last_reply + strcspn(ftpState->ctrl.last_reply, "(1,2)");
+         if (buf == NULL || *buf == '\0') {
+             /* handle broken server (RFC 2428 says MUST specify supported protocols in 522) */
+             debugs(9, DBG_IMPORTANT, "Broken FTP Server at " << fd_table[ftpState->ctrl.fd].ipaddr << ". 522 error missing protocol negotiation hints");
+@@ -2473,6 +2477,11 @@
+             ftpSendPassive(ftpState);
+ #endif
+         }
++        else {
++            /* handle broken server (RFC 2428 says MUST specify supported protocols in 522) */
++            debugs(9, DBG_IMPORTANT, "WARNING: Server at " << fd_table[ftpState->ctrl.fd].ipaddr << " sent unknown protocol negotiation hint: " << buf);
++            ftpSendPassive(ftpState);
++        }
+         return;
+     }
+ 



Home | Main Index | Thread Index | Old Index