header file. */
#undef HAVE_ASSERT_H
-/* Define to 1 if you have __sync_add_and_fetch() and such */
+/* Define to 1 if you have GCC __sync_add_and_fetch() and such */
#undef HAVE_ATOMIC_OPS
/* Basic auth module is built */
diff -u -r -N squid-3.5.2/include/version.h squid-3.5.3/include/version.h
--- squid-3.5.2/include/version.h 2015-02-18 04:18:57.000000000 -0800
+++ squid-3.5.3/include/version.h 2015-03-28 04:00:06.000000000 -0700
@@ -7,7 +7,7 @@
*/
#ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1424261814
+#define SQUID_RELEASE_TIME 1427540278
#endif
/*
diff -u -r -N squid-3.5.2/INSTALL squid-3.5.3/INSTALL
--- squid-3.5.2/INSTALL 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/INSTALL 2015-03-28 03:58:05.000000000 -0700
@@ -1,3 +1,11 @@
+/*
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
To build and install the Squid Cache, type:
% ./configure --prefix=/usr/local/squid
@@ -16,5 +24,5 @@
% /usr/local/squid/sbin/squid
If you want to use the WWW interface to the Cache Manager, copy
-the cachemgr.cgi program into your httpd server's cgi-bin
+the tools/cachemgr.cgi program into your httpd server's cgi-bin
directory.
diff -u -r -N squid-3.5.2/lib/libTrie/Makefile.in squid-3.5.3/lib/libTrie/Makefile.in
--- squid-3.5.2/lib/libTrie/Makefile.in 2015-02-18 04:18:22.000000000 -0800
+++ squid-3.5.3/lib/libTrie/Makefile.in 2015-03-28 03:59:34.000000000 -0700
@@ -1275,7 +1275,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/lib/ntlmauth/Makefile.in squid-3.5.3/lib/ntlmauth/Makefile.in
--- squid-3.5.2/lib/ntlmauth/Makefile.in 2015-02-18 04:18:23.000000000 -0800
+++ squid-3.5.3/lib/ntlmauth/Makefile.in 2015-03-28 03:59:35.000000000 -0700
@@ -1156,7 +1156,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/lib/profiler/Makefile.in squid-3.5.3/lib/profiler/Makefile.in
--- squid-3.5.2/lib/profiler/Makefile.in 2015-02-18 04:18:24.000000000 -0800
+++ squid-3.5.3/lib/profiler/Makefile.in 2015-03-28 03:59:35.000000000 -0700
@@ -1162,7 +1162,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/lib/tests/testRFC1738.cc squid-3.5.3/lib/tests/testRFC1738.cc
--- squid-3.5.2/lib/tests/testRFC1738.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/lib/tests/testRFC1738.cc 2015-03-28 03:58:05.000000000 -0700
@@ -17,6 +17,11 @@
CPPUNIT_TEST_SUITE_REGISTRATION( testRFC1738 );
+#if _SQUID_OPENBSD_
+// the quite old GCC on OpenBSD 5.4 needs this when linking to libmisc-util.la
+time_t squid_curtime;
+#endif
+
/* Regular Format de-coding tests */
void testRFC1738::testUrlDecode()
{
diff -u -r -N squid-3.5.2/QUICKSTART squid-3.5.3/QUICKSTART
--- squid-3.5.2/QUICKSTART 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/QUICKSTART 2015-03-28 03:58:05.000000000 -0700
@@ -20,40 +20,38 @@
acl, http_access
Access control lists. This is important because it prevents people
- from stealing your network resources. To fill in the
- "localnet" ACL, use your network address (for instance 192.168.10.0
- your CIDR network mask (for instance 255.255.255.0 or /24):
+ from stealing your network resources.
+
+ Edit the "localnet" ACL definition to be your LAN network address
+ ranges in CIDR format. For instance:
- acl manager proto cache_object
- acl localhost src 127.0.0.1
acl localnet src 192.168.10.0/24
- http_access deny manager all
- http_access allow localnet
- http_access deny all
+ Add any other ACLs and edit the http_access lines to match your policy
+ requirements for use of the proxy. See Squid FAQ for more details.
cache_mgr
- Put here the e-mail address of the manager:
+ Put here the e-mail address of the manager.
+
+==============================================================================
+
+Some configuration lines which are optional but may be needed.
visible_hostname
- The host name you advertise for the cache.
+ The publicly visible host name advertised for the cache. This will
+ be used for URLs generated by Squid for clients to fetch certain
+ objects from.
cache_effective_user
If building your own squid; use ./configure --with-default-user=X
- If you must start Squid as root, find a safe user and group to run
+ You must start Squid as root, with a safe user and group to run
as after startup (typically "nobody" and "nogroup"). Do not use
"root", for security reasons.
-
-==============================================================================
-
-Some configuration lines which are optional but may be needed.
-
-
cache_dir ufs /usr/local/squid/var/cache 100 16 256
Add here (first number, here 100) the amount of hard disk space
@@ -98,5 +96,15 @@
start Squid at startup (it depends heavily on the Unix you use, you'll
typically have to modify something in a /etc/rc_something).
-This quick start file written by: Stephane Bortzmeyer and Duane
-Wessels.
+==============================================================================
+
+/*
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
+This quick start file written by:
+ Stephane Bortzmeyer and Duane Wessels.
diff -u -r -N squid-3.5.2/RELEASENOTES.html squid-3.5.3/RELEASENOTES.html
--- squid-3.5.2/RELEASENOTES.html 2015-02-18 04:57:35.000000000 -0800
+++ squid-3.5.3/RELEASENOTES.html 2015-03-28 04:50:18.000000000 -0700
@@ -2,10 +2,10 @@
- Squid 3.5.2 release notes
+ Squid 3.5.3 release notes
-Squid 3.5.2 release notes
+Squid 3.5.3 release notes
Squid Developers
@@ -63,7 +63,7 @@
-The Squid Team are pleased to announce the release of Squid-3.5.2.
+The Squid Team are pleased to announce the release of Squid-3.5.3.
This new release is available for download from
http://www.squid-cache.org/Versions/v3/3.5/ or the
mirrors.
diff -u -r -N squid-3.5.2/src/acl/Makefile.in squid-3.5.3/src/acl/Makefile.in
--- squid-3.5.2/src/acl/Makefile.in 2015-02-18 04:18:28.000000000 -0800
+++ squid-3.5.3/src/acl/Makefile.in 2015-03-28 03:59:39.000000000 -0700
@@ -1345,7 +1345,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/adaptation/ecap/Makefile.in squid-3.5.3/src/adaptation/ecap/Makefile.in
--- squid-3.5.2/src/adaptation/ecap/Makefile.in 2015-02-18 04:18:29.000000000 -0800
+++ squid-3.5.3/src/adaptation/ecap/Makefile.in 2015-03-28 03:59:40.000000000 -0700
@@ -1214,7 +1214,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/adaptation/icap/Makefile.in squid-3.5.3/src/adaptation/icap/Makefile.in
--- squid-3.5.2/src/adaptation/icap/Makefile.in 2015-02-18 04:18:30.000000000 -0800
+++ squid-3.5.3/src/adaptation/icap/Makefile.in 2015-03-28 03:59:41.000000000 -0700
@@ -1187,7 +1187,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/adaptation/Makefile.in squid-3.5.3/src/adaptation/Makefile.in
--- squid-3.5.2/src/adaptation/Makefile.in 2015-02-18 04:18:29.000000000 -0800
+++ squid-3.5.3/src/adaptation/Makefile.in 2015-03-28 03:59:40.000000000 -0700
@@ -1321,7 +1321,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/anyp/Makefile.in squid-3.5.3/src/anyp/Makefile.in
--- squid-3.5.2/src/anyp/Makefile.in 2015-02-18 04:18:30.000000000 -0800
+++ squid-3.5.3/src/anyp/Makefile.in 2015-03-28 03:59:41.000000000 -0700
@@ -1163,7 +1163,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/auth/basic/Makefile.in squid-3.5.3/src/auth/basic/Makefile.in
--- squid-3.5.2/src/auth/basic/Makefile.in 2015-02-18 04:18:31.000000000 -0800
+++ squid-3.5.3/src/auth/basic/Makefile.in 2015-03-28 03:59:42.000000000 -0700
@@ -1163,7 +1163,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/auth/digest/Makefile.in squid-3.5.3/src/auth/digest/Makefile.in
--- squid-3.5.2/src/auth/digest/Makefile.in 2015-02-18 04:18:32.000000000 -0800
+++ squid-3.5.3/src/auth/digest/Makefile.in 2015-03-28 03:59:43.000000000 -0700
@@ -1163,7 +1163,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/auth/Makefile.in squid-3.5.3/src/auth/Makefile.in
--- squid-3.5.2/src/auth/Makefile.in 2015-02-18 04:18:31.000000000 -0800
+++ squid-3.5.3/src/auth/Makefile.in 2015-03-28 03:59:42.000000000 -0700
@@ -1313,7 +1313,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/auth/negotiate/Makefile.in squid-3.5.3/src/auth/negotiate/Makefile.in
--- squid-3.5.2/src/auth/negotiate/Makefile.in 2015-02-18 04:18:32.000000000 -0800
+++ squid-3.5.3/src/auth/negotiate/Makefile.in 2015-03-28 03:59:43.000000000 -0700
@@ -1164,7 +1164,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/auth/ntlm/Makefile.in squid-3.5.3/src/auth/ntlm/Makefile.in
--- squid-3.5.2/src/auth/ntlm/Makefile.in 2015-02-18 04:18:33.000000000 -0800
+++ squid-3.5.3/src/auth/ntlm/Makefile.in 2015-03-28 03:59:44.000000000 -0700
@@ -1163,7 +1163,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/base/Makefile.in squid-3.5.3/src/base/Makefile.in
--- squid-3.5.2/src/base/Makefile.in 2015-02-18 04:18:33.000000000 -0800
+++ squid-3.5.3/src/base/Makefile.in 2015-03-28 03:59:44.000000000 -0700
@@ -1269,7 +1269,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/clients/Makefile.in squid-3.5.3/src/clients/Makefile.in
--- squid-3.5.2/src/clients/Makefile.in 2015-02-18 04:18:34.000000000 -0800
+++ squid-3.5.3/src/clients/Makefile.in 2015-03-28 03:59:45.000000000 -0700
@@ -1163,7 +1163,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/client_side.cc squid-3.5.3/src/client_side.cc
--- squid-3.5.2/src/client_side.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/client_side.cc 2015-03-28 03:58:05.000000000 -0700
@@ -233,7 +233,8 @@
debugs(33, 4, HERE << clientConnection << ": reading request...");
- if (!in.maybeMakeSpaceAvailable())
+ // we can only read if there is more than 1 byte of space free
+ if (Config.maxRequestBufferSize - in.buf.length() < 2)
return;
typedef CommCbMemFunT Dialer;
@@ -2874,7 +2875,12 @@
// default to the configured pipeline size.
// add 1 because the head of pipeline is counted in concurrent requests and not prefetch queue
- const int concurrentRequestLimit = pipelinePrefetchMax() + 1;
+#if USE_OPENSSL
+ const int internalRequest = (transparent() && sslBumpMode == Ssl::bumpSplice) ? 1 : 0;
+#else
+ const int internalRequest = 0;
+#endif
+ const int concurrentRequestLimit = pipelinePrefetchMax() + 1 + internalRequest;
// when queue filled already we cant add more.
if (existingRequestCount >= concurrentRequestLimit) {
@@ -3232,6 +3238,7 @@
* Plus, it breaks our lame *HalfClosed() detection
*/
+ in.maybeMakeSpaceAvailable();
CommIoCbParams rd(this); // will be expanded with ReadNow results
rd.conn = io.conn;
switch (Comm::ReadNow(rd, in.buf)) {
@@ -3525,9 +3532,6 @@
BodyProducer::start();
HttpControlMsgSink::start();
- // ensure a buffer is present for this connection
- in.maybeMakeSpaceAvailable();
-
if (port->disable_pmtu_discovery != DISABLE_PMTU_OFF &&
(transparent() || port->disable_pmtu_discovery == DISABLE_PMTU_ALWAYS)) {
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT)
diff -u -r -N squid-3.5.2/src/comm/Makefile.in squid-3.5.3/src/comm/Makefile.in
--- squid-3.5.2/src/comm/Makefile.in 2015-02-18 04:18:34.000000000 -0800
+++ squid-3.5.3/src/comm/Makefile.in 2015-03-28 03:59:45.000000000 -0700
@@ -1193,7 +1193,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/errorpage.cc squid-3.5.3/src/errorpage.cc
--- squid-3.5.2/src/errorpage.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/errorpage.cc 2015-03-28 03:58:05.000000000 -0700
@@ -914,7 +914,10 @@
case 'm':
if (building_deny_info_url) break;
#if USE_AUTH
- p = auth_user_request->denyMessage("[not available]");
+ if (auth_user_request.getRaw())
+ p = auth_user_request->denyMessage("[not available]");
+ else
+ p = "[not available]";
#else
p = "-";
#endif
diff -u -r -N squid-3.5.2/src/esi/Makefile.in squid-3.5.3/src/esi/Makefile.in
--- squid-3.5.2/src/esi/Makefile.in 2015-02-18 04:18:35.000000000 -0800
+++ squid-3.5.3/src/esi/Makefile.in 2015-03-28 03:59:46.000000000 -0700
@@ -1213,7 +1213,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/eui/Makefile.in squid-3.5.3/src/eui/Makefile.in
--- squid-3.5.2/src/eui/Makefile.in 2015-02-18 04:18:35.000000000 -0800
+++ squid-3.5.3/src/eui/Makefile.in 2015-03-28 03:59:46.000000000 -0700
@@ -1162,7 +1162,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/format/Makefile.in squid-3.5.3/src/format/Makefile.in
--- squid-3.5.2/src/format/Makefile.in 2015-02-18 04:18:36.000000000 -0800
+++ squid-3.5.3/src/format/Makefile.in 2015-03-28 03:59:47.000000000 -0700
@@ -1165,7 +1165,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ftp/Makefile.in squid-3.5.3/src/ftp/Makefile.in
--- squid-3.5.2/src/ftp/Makefile.in 2015-02-18 04:18:37.000000000 -0800
+++ squid-3.5.3/src/ftp/Makefile.in 2015-03-28 03:59:48.000000000 -0700
@@ -1157,7 +1157,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/helper/Makefile.in squid-3.5.3/src/helper/Makefile.in
--- squid-3.5.2/src/helper/Makefile.in 2015-02-18 04:18:38.000000000 -0800
+++ squid-3.5.3/src/helper/Makefile.in 2015-03-28 03:59:48.000000000 -0700
@@ -1160,7 +1160,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/http/Makefile.in squid-3.5.3/src/http/Makefile.in
--- squid-3.5.2/src/http/Makefile.in 2015-02-18 04:18:38.000000000 -0800
+++ squid-3.5.3/src/http/Makefile.in 2015-03-28 03:59:49.000000000 -0700
@@ -1162,7 +1162,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/icmp/Makefile.in squid-3.5.3/src/icmp/Makefile.in
--- squid-3.5.2/src/icmp/Makefile.in 2015-02-18 04:18:39.000000000 -0800
+++ squid-3.5.3/src/icmp/Makefile.in 2015-03-28 03:59:50.000000000 -0700
@@ -1473,7 +1473,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ident/Makefile.in squid-3.5.3/src/ident/Makefile.in
--- squid-3.5.2/src/ident/Makefile.in 2015-02-18 04:18:40.000000000 -0800
+++ squid-3.5.3/src/ident/Makefile.in 2015-03-28 03:59:50.000000000 -0700
@@ -1158,7 +1158,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ip/Makefile.in squid-3.5.3/src/ip/Makefile.in
--- squid-3.5.2/src/ip/Makefile.in 2015-02-18 04:18:40.000000000 -0800
+++ squid-3.5.3/src/ip/Makefile.in 2015-03-28 03:59:51.000000000 -0700
@@ -1241,7 +1241,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ipc/Makefile.in squid-3.5.3/src/ipc/Makefile.in
--- squid-3.5.2/src/ipc/Makefile.in 2015-02-18 04:18:41.000000000 -0800
+++ squid-3.5.3/src/ipc/Makefile.in 2015-03-28 03:59:51.000000000 -0700
@@ -1257,7 +1257,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ipc/mem/Segment.cc squid-3.5.3/src/ipc/mem/Segment.cc
--- squid-3.5.2/src/ipc/mem/Segment.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/ipc/mem/Segment.cc 2015-03-28 03:58:05.000000000 -0700
@@ -88,7 +88,8 @@
assert(aSize > 0);
assert(theFD < 0);
- theFD = shm_open(theName.termedBuf(), O_CREAT | O_RDWR | O_TRUNC,
+ // OS X does not allow using O_TRUNC here.
+ theFD = shm_open(theName.termedBuf(), O_CREAT | O_RDWR,
S_IRUSR | S_IWUSR);
if (theFD < 0) {
debugs(54, 5, HERE << "shm_open " << theName << ": " << xstrerror());
@@ -97,14 +98,19 @@
}
if (ftruncate(theFD, aSize)) {
- debugs(54, 5, HERE << "ftruncate " << theName << ": " << xstrerror());
+ const int savedError = errno;
+ unlink();
+ debugs(54, 5, HERE << "ftruncate " << theName << ": " << xstrerr(savedError));
fatalf("Ipc::Mem::Segment::create failed to ftruncate(%s): %s\n",
- theName.termedBuf(), xstrerror());
+ theName.termedBuf(), xstrerr(savedError));
}
+ // We assume that the shm_open(O_CREAT)+ftruncate() combo zeros the segment.
+
+ theSize = statSize("Ipc::Mem::Segment::create");
- assert(statSize("Ipc::Mem::Segment::create") == aSize); // paranoid
+ // OS X will round up to a full page, so not checking for exact size match.
+ assert(theSize >= aSize);
- theSize = aSize;
theReserved = 0;
doUnlink = true;
diff -u -r -N squid-3.5.2/src/log/Makefile.in squid-3.5.3/src/log/Makefile.in
--- squid-3.5.2/src/log/Makefile.in 2015-02-18 04:18:41.000000000 -0800
+++ squid-3.5.3/src/log/Makefile.in 2015-03-28 03:59:52.000000000 -0700
@@ -1197,7 +1197,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/main.cc squid-3.5.3/src/main.cc
--- squid-3.5.2/src/main.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/main.cc 2015-03-28 03:58:05.000000000 -0700
@@ -59,6 +59,7 @@
#include "profiler/Profiler.h"
#include "redirect.h"
#include "refresh.h"
+#include "SBufStatsAction.h"
#include "send-announce.h"
#include "SquidConfig.h"
#include "SquidDns.h"
@@ -1089,6 +1090,8 @@
/* register the modules in the cache manager menus */
cbdataRegisterWithCacheManager();
+ SBufStatsAction::RegisterWithCacheManager();
+
/* These use separate calls so that the comm loops can eventually
* coexist.
*/
diff -u -r -N squid-3.5.2/src/mgr/Makefile.in squid-3.5.3/src/mgr/Makefile.in
--- squid-3.5.2/src/mgr/Makefile.in 2015-02-18 04:18:42.000000000 -0800
+++ squid-3.5.3/src/mgr/Makefile.in 2015-03-28 03:59:52.000000000 -0700
@@ -1229,7 +1229,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/parser/Makefile.in squid-3.5.3/src/parser/Makefile.in
--- squid-3.5.2/src/parser/Makefile.in 2015-02-18 04:18:43.000000000 -0800
+++ squid-3.5.3/src/parser/Makefile.in 2015-03-28 03:59:53.000000000 -0700
@@ -1355,7 +1355,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/peer_select.cc squid-3.5.3/src/peer_select.cc
--- squid-3.5.2/src/peer_select.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/peer_select.cc 2015-03-28 03:58:05.000000000 -0700
@@ -955,6 +955,7 @@
callback (NULL),
callback_data (NULL),
lastError(NULL),
+ paths(NULL),
servers (NULL),
first_parent_miss(),
closest_parent_miss(),
diff -u -r -N squid-3.5.2/src/SBufStatsAction.cc squid-3.5.3/src/SBufStatsAction.cc
--- squid-3.5.2/src/SBufStatsAction.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/SBufStatsAction.cc 2015-03-28 03:58:05.000000000 -0700
@@ -82,7 +82,9 @@
msg.getPod(mbdata);
}
-static const bool Registered = (Mgr::RegisterAction("sbuf",
- "String-Buffer statistics", &SBufStatsAction::Create, 0 , 1),
- true);
+void
+SBufStatsAction::RegisterWithCacheManager()
+{
+ Mgr::RegisterAction("sbuf", "String-Buffer statistics", &SBufStatsAction::Create, 0 , 1);
+}
diff -u -r -N squid-3.5.2/src/SBufStatsAction.h squid-3.5.3/src/SBufStatsAction.h
--- squid-3.5.2/src/SBufStatsAction.h 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/SBufStatsAction.h 2015-03-28 03:58:05.000000000 -0700
@@ -21,6 +21,7 @@
public:
/// Mgr::ClassActionCreationHandler for Mgr::RegisterAction()
static Pointer Create(const Mgr::CommandPointer &cmd);
+ static void RegisterWithCacheManager(void);
protected:
explicit SBufStatsAction(const Mgr::CommandPointer &cmd);
diff -u -r -N squid-3.5.2/src/servers/Makefile.in squid-3.5.3/src/servers/Makefile.in
--- squid-3.5.2/src/servers/Makefile.in 2015-02-18 04:18:44.000000000 -0800
+++ squid-3.5.3/src/servers/Makefile.in 2015-03-28 03:59:54.000000000 -0700
@@ -1157,7 +1157,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/snmp/Makefile.in squid-3.5.3/src/snmp/Makefile.in
--- squid-3.5.2/src/snmp/Makefile.in 2015-02-18 04:18:45.000000000 -0800
+++ squid-3.5.3/src/snmp/Makefile.in 2015-03-28 03:59:55.000000000 -0700
@@ -1174,7 +1174,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/ssl/bio.cc squid-3.5.3/src/ssl/bio.cc
--- squid-3.5.2/src/ssl/bio.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/ssl/bio.cc 2015-03-28 03:58:05.000000000 -0700
@@ -151,12 +151,15 @@
bool
Ssl::ClientBio::isClientHello(int state)
{
- return (state == SSL2_ST_GET_CLIENT_HELLO_A ||
- state == SSL3_ST_SR_CLNT_HELLO_A ||
- state == SSL23_ST_SR_CLNT_HELLO_A ||
- state == SSL23_ST_SR_CLNT_HELLO_B ||
- state == SSL3_ST_SR_CLNT_HELLO_B ||
- state == SSL3_ST_SR_CLNT_HELLO_C
+ return (
+#if defined(SSL2_ST_GET_CLIENT_HELLO_A)
+ state == SSL2_ST_GET_CLIENT_HELLO_A ||
+#endif
+ state == SSL3_ST_SR_CLNT_HELLO_A ||
+ state == SSL23_ST_SR_CLNT_HELLO_A ||
+ state == SSL23_ST_SR_CLNT_HELLO_B ||
+ state == SSL3_ST_SR_CLNT_HELLO_B ||
+ state == SSL3_ST_SR_CLNT_HELLO_C
);
}
@@ -325,7 +328,12 @@
// If the client supports compression but our context does not support
// we can not adjust.
- if (features.compressMethod && ssl->ctx->comp_methods == NULL) {
+#if !defined(OPENSSL_NO_COMP)
+ const bool requireCompression = (features.compressMethod && ssl->ctx->comp_methods == NULL);
+#else
+ const bool requireCompression = features.compressMethod;
+#endif
+ if (requireCompression) {
debugs(83, 5, "Client Hello Data supports compression, but we do not!");
return false;
}
@@ -669,9 +677,11 @@
debugs(83, 7, "SNI server name: " << serverName);
#endif
+#if !defined(OPENSSL_NO_COMP)
if (ssl->session->compress_meth)
compressMethod = ssl->session->compress_meth;
else if (sslVersion >= 3) //if it is 3 or newer version then compression is disabled
+#endif
compressMethod = 0;
debugs(83, 7, "SSL compression: " << compressMethod);
diff -u -r -N squid-3.5.2/src/ssl/Makefile.in squid-3.5.3/src/ssl/Makefile.in
--- squid-3.5.2/src/ssl/Makefile.in 2015-02-18 04:18:46.000000000 -0800
+++ squid-3.5.3/src/ssl/Makefile.in 2015-03-28 03:59:55.000000000 -0700
@@ -1284,7 +1284,7 @@
$(OBJS): $(top_srcdir)/include/version.h $(top_builddir)/include/autoconf.h
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
.PHONY: testHeaders
diff -u -r -N squid-3.5.2/src/TestHeaders.am squid-3.5.3/src/TestHeaders.am
--- squid-3.5.2/src/TestHeaders.am 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/TestHeaders.am 2015-03-28 03:58:05.000000000 -0700
@@ -14,7 +14,7 @@
## .h dependency test script
## aborts build process on errors; XXX: even with "make -k"
testHeaders: $(srcdir)/*.h
- $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)" || exit 1
+ $(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" $^ || exit 1
## XXX: this is only needed because testheaders.sh creates a dummy file called
## testHeaders and distclean does not know about it.
diff -u -r -N squid-3.5.2/src/tunnel.cc squid-3.5.3/src/tunnel.cc
--- squid-3.5.2/src/tunnel.cc 2015-02-18 04:17:02.000000000 -0800
+++ squid-3.5.3/src/tunnel.cc 2015-03-28 03:58:05.000000000 -0700
@@ -12,6 +12,7 @@
#include "acl/FilledChecklist.h"
#include "base/CbcPointer.h"
#include "CachePeer.h"
+#include "cbdata.h"
#include "client_side.h"
#include "client_side_request.h"
#include "comm.h"
@@ -113,7 +114,8 @@
{
public:
- Connection() : len (0), buf ((char *)xmalloc(SQUID_TCP_SO_RCVBUF)), size_ptr(NULL) {}
+ Connection() : len (0), buf ((char *)xmalloc(SQUID_TCP_SO_RCVBUF)), size_ptr(NULL), delayedLoops(0),
+ readPending(NULL), readPendingFunc(NULL) {}
~Connection();
@@ -135,7 +137,11 @@
int64_t *size_ptr; /* pointer to size in an ConnStateData for logging */
Comm::ConnectionPointer conn; ///< The currently connected connection.
+ uint8_t delayedLoops; ///< how many times a read on this connection has been postponed.
+ // XXX: make these an AsyncCall when event API can handle them
+ TunnelStateData *readPending;
+ EVH *readPendingFunc;
private:
#if USE_DELAY_POOLS
@@ -206,6 +212,8 @@
static CLCB tunnelClientClosed;
static CTCB tunnelTimeout;
static PSC tunnelPeerSelectComplete;
+static EVH tunnelDelayedClientRead;
+static EVH tunnelDelayedServerRead;
static void tunnelConnected(const Comm::ConnectionPointer &server, void *);
static void tunnelRelayConnectRequest(const Comm::ConnectionPointer &server, void *);
@@ -258,6 +266,8 @@
connectReqWriting(false)
{
debugs(26, 3, "TunnelStateData constructed this=" << this);
+ client.readPendingFunc = &tunnelDelayedClientRead;
+ server.readPendingFunc = &tunnelDelayedServerRead;
}
TunnelStateData::~TunnelStateData()
@@ -271,6 +281,9 @@
TunnelStateData::Connection::~Connection()
{
+ if (readPending)
+ eventDelete(readPendingFunc, readPending);
+
safe_free(buf);
}
@@ -327,6 +340,7 @@
TunnelStateData::readServer(char *buf, size_t len, Comm::Flag errcode, int xerrno)
{
debugs(26, 3, HERE << server.conn << ", read " << len << " bytes, err=" << errcode);
+ server.delayedLoops=0;
/*
* Bail out early on Comm::ERR_CLOSING
@@ -472,6 +486,7 @@
TunnelStateData::readClient(char *buf, size_t len, Comm::Flag errcode, int xerrno)
{
debugs(26, 3, HERE << client.conn << ", read " << len << " bytes, err=" << errcode);
+ client.delayedLoops=0;
/*
* Bail out early on Comm::ERR_CLOSING
@@ -672,13 +687,49 @@
conn->close();
}
+static void
+tunnelDelayedClientRead(void *data)
+{
+ if (!data)
+ return;
+
+ TunnelStateData *tunnel = static_cast(data);
+ tunnel->client.readPending = NULL;
+ static uint64_t counter=0;
+ debugs(26, 7, "Client read(2) delayed " << ++counter << " times");
+ tunnel->copyRead(tunnel->client, TunnelStateData::ReadClient);
+}
+
+static void
+tunnelDelayedServerRead(void *data)
+{
+ if (!data)
+ return;
+
+ TunnelStateData *tunnel = static_cast(data);
+ tunnel->server.readPending = NULL;
+ static uint64_t counter=0;
+ debugs(26, 7, "Server read(2) delayed " << ++counter << " times");
+ tunnel->copyRead(tunnel->server, TunnelStateData::ReadServer);
+}
+
void
TunnelStateData::copyRead(Connection &from, IOCB *completion)
{
assert(from.len == 0);
+ // If only the minimum permitted read size is going to be attempted
+ // then we schedule an event to try again in a few I/O cycles.
+ // Allow at least 1 byte to be read every (0.3*10) seconds.
+ int bw = from.bytesWanted(1, SQUID_TCP_SO_RCVBUF);
+ if (bw == 1 && ++from.delayedLoops < 10) {
+ from.readPending = this;
+ eventAdd("tunnelDelayedServerRead", from.readPendingFunc, from.readPending, 0.3, true);
+ return;
+ }
+
AsyncCall::Pointer call = commCbCall(5,4, "TunnelBlindCopyReadHandler",
CommIoCbPtrFun(completion, this));
- comm_read(from.conn, from.buf, from.bytesWanted(1, SQUID_TCP_SO_RCVBUF), call);
+ comm_read(from.conn, from.buf, bw, call);
}
void