summaryrefslogtreecommitdiff
path: root/www/squid31
diff options
context:
space:
mode:
authortron <tron@pkgsrc.org>2009-07-20 13:56:31 +0000
committertron <tron@pkgsrc.org>2009-07-20 13:56:31 +0000
commit1eae039a7c4fb03bfb7a73f65dc77ce5e3e6a3ea (patch)
tree95482479ee4fbd2116a328e35e6c4b8fb755b6a1 /www/squid31
parent8ff6448ced5c0857b9e317f90bfb386a16dab2ee (diff)
downloadpkgsrc-1eae039a7c4fb03bfb7a73f65dc77ce5e3e6a3ea.tar.gz
Add fix for Squid bug 2395 which makes FTP connection to e.g.
"ftp.fu-berlin.de" work again.
Diffstat (limited to 'www/squid31')
-rw-r--r--www/squid31/Makefile3
-rw-r--r--www/squid31/distinfo3
-rw-r--r--www/squid31/patches/patch-ab36
3 files changed, 40 insertions, 2 deletions
diff --git a/www/squid31/Makefile b/www/squid31/Makefile
index 453f63133f5..6b3e62de54d 100644
--- a/www/squid31/Makefile
+++ b/www/squid31/Makefile
@@ -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 --git a/www/squid31/distinfo b/www/squid31/distinfo
index c650eb0faed..42343071f98 100644
--- a/www/squid31/distinfo
+++ b/www/squid31/distinfo
@@ -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 --git a/www/squid31/patches/patch-ab b/www/squid31/patches/patch-ab
new file mode 100644
index 00000000000..a7c9364b210
--- /dev/null
+++ b/www/squid31/patches/patch-ab
@@ -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;
+ }
+