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 2707 to make anonymo...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/6ffcb9ff947c
branches:  trunk
changeset: 395766:6ffcb9ff947c
user:      tron <tron%pkgsrc.org@localhost>
date:      Sun Jul 12 09:45:02 2009 +0000

description:
Add fix for Squid bug 2707 to make anonymous FTP work again.

diffstat:

 www/squid31/Makefile         |   3 +-
 www/squid31/distinfo         |   3 +-
 www/squid31/patches/patch-aa |  62 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 66 insertions(+), 2 deletions(-)

diffs (92 lines):

diff -r 25159c16a571 -r 6ffcb9ff947c www/squid31/Makefile
--- a/www/squid31/Makefile      Sun Jul 12 04:46:55 2009 +0000
+++ b/www/squid31/Makefile      Sun Jul 12 09:45:02 2009 +0000
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.9 2009/07/08 15:02:01 tron Exp $
+# $NetBSD: Makefile,v 1.10 2009/07/12 09:45:02 tron Exp $
 
 DISTNAME=      squid-3.1.0.9
+PKGREVISION=   1
 PKGNAME=       ${DISTNAME}     # Necessary for "pkgsrc/www/squid/options.mk"
 CATEGORIES=    www
 MASTER_SITES=  ${SQUID_MASTER_SITES} \
diff -r 25159c16a571 -r 6ffcb9ff947c www/squid31/distinfo
--- a/www/squid31/distinfo      Sun Jul 12 04:46:55 2009 +0000
+++ b/www/squid31/distinfo      Sun Jul 12 09:45:02 2009 +0000
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.5 2009/07/07 18:25:13 tron Exp $
+$NetBSD: distinfo,v 1.6 2009/07/12 09:45:02 tron Exp $
 
 SHA1 (squid-3.1.0.9.tar.bz2) = 221cc189c1c69e61819540ceb798ded728c2579a
 RMD160 (squid-3.1.0.9.tar.bz2) = 208ec13315ba73e16f3f4051e41aa7a539d7ba45
 Size (squid-3.1.0.9.tar.bz2) = 2360740 bytes
+SHA1 (patch-aa) = 58f69e9172a218cd79d43c09b9065aafe386e8c2
 SHA1 (patch-ad) = 031e5de714610917ac0c575b42add980c0933c72
 SHA1 (patch-ae) = a512f1d521f3019e2136b5d0ad2199182e2aaabb
 SHA1 (patch-ah) = e20f7b76d6d48041efbfe1a07dce756a818e6642
diff -r 25159c16a571 -r 6ffcb9ff947c www/squid31/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/squid31/patches/patch-aa      Sun Jul 12 09:45:02 2009 +0000
@@ -0,0 +1,62 @@
+$NetBSD: patch-aa,v 1.3 2009/07/12 09:45:02 tron Exp $
+
+Fix problems with anonymous FTP, see here:
+http://www.squid-cache.org/bugs/show_bug.cgi?id=2707
+
+--- src/ftp.cc.orig    2009-06-26 11:35:38.000000000 +0100
++++ src/ftp.cc 2009-07-12 10:34:01.000000000 +0100
+@@ -93,13 +93,21 @@
+ 
+ /// \ingroup ServerProtocolFTPInternal
+ struct _ftp_flags {
++
++    /* passive mode */
++    bool pasv_supported;  ///< PASV command is allowed
++    bool epsv_all_sent;   ///< EPSV ALL has been used. Must abort on failures.
++    bool pasv_only;
++
++    /* authentication */
++    bool authenticated;         ///< authentication success
++    bool tried_auth_anonymous;  ///< auth has tried to use anonymous credentials already.
++    bool tried_auth_nopass;     ///< auth tried username with no password already.
++
++    /* other */
+     bool isdir;
+-    bool pasv_supported;
+-    bool epsv_all_sent;
+     bool skip_whitespace;
+     bool rest_supported;
+-    bool pasv_only;
+-    bool authenticated;
+     bool http_header_sent;
+     bool tried_nlst;
+     bool need_base_href;
+@@ -1432,6 +1440,9 @@
+  *
+  * Special Case: A username-only may be provided in the URL and password in the HTTP headers.
+  *
++ * TODO: we might be able to do something about locating username from other sources:
++ *       ie, external ACL user=* tag or ident lookup
++ *
+  \retval 1    if we have everything needed to complete this request.
+  \retval 0    if something is missing.
+  */
+@@ -1464,10 +1475,16 @@
+     /* Setup default FTP password settings */
+     /* this has to be done last so that we can have a no-password case above. */
+     if (!password[0]) {
+-        if (strcmp(user, "anonymous") == 0)
++        if (strcmp(user, "anonymous") == 0 && !flags.tried_auth_anonymous) {
+             xstrncpy(password, Config.Ftp.anon_user, MAX_URL);
+-        else
++            flags.tried_auth_anonymous=1;
++            return 1;
++        }
++        else if (!flags.tried_auth_nopass) {
+             xstrncpy(password, null_string, MAX_URL);
++            flags.tried_auth_nopass=1;
++            return 1;
++        }
+     }
+ 
+     return 0;                 /* different username */



Home | Main Index | Thread Index | Old Index