]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
11 years agoprotos.h refactoring, part one.
Francesco Chemolli [Tue, 28 Aug 2012 19:12:13 +0000 (21:12 +0200)] 
protos.h refactoring, part one.

Refactor many function prototypes from protos.h to more specific header files.
Change linkage for moved prototypes to c++.

11 years agoCleanup: duplicate include of squid.h
Amos Jeffries [Tue, 28 Aug 2012 13:04:48 +0000 (07:04 -0600)] 
Cleanup: duplicate include of squid.h

11 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 28 Aug 2012 13:00:30 +0000 (07:00 -0600)] 
SourceFormat Enforcement

11 years agoEnable source-formatting tools to collapse multiple whitelines in the source to one.
Francesco Chemolli [Tue, 28 Aug 2012 12:45:52 +0000 (14:45 +0200)] 
Enable source-formatting tools to collapse multiple whitelines in the source to one.

11 years agoSourceFormat Enforcement
Automatic source maintenance [Sat, 25 Aug 2012 00:13:13 +0000 (18:13 -0600)] 
SourceFormat Enforcement

11 years agoBug 3613: relax standard-compliance strctness on clang to enable build
Francesco Chemolli [Fri, 24 Aug 2012 10:54:03 +0000 (12:54 +0200)] 
Bug 3613: relax standard-compliance strctness on clang to enable build

When clang is invoked with the -std=c++0x option, it won't make available some system functions
defined in c99. For some reason configure fails to detect this, and so the built-in implementation is
not invoked. This change prevents enabling the -std=c++0x option for clang.

11 years agoPrep work for automatic sorting of include directives.
Francesco Chemolli [Fri, 24 Aug 2012 09:57:00 +0000 (11:57 +0200)] 
Prep work for automatic sorting of include directives.

Automatic sorting of include files reveals some indirect inclusions, which would break the build.
scripts/sort-includes.pl is the tool to do the automatic header include order sorting.
The other changes in this set fix the issues which that be introduced by running the sorting.

11 years agoBug 3605: memory leak in Negotiate authentication
Daniel Walter [Thu, 23 Aug 2012 01:33:16 +0000 (13:33 +1200)] 
Bug 3605: memory leak in Negotiate authentication

11 years agoAdded missing includes in adaptation/esi
Francesco Chemolli [Tue, 21 Aug 2012 16:15:33 +0000 (18:15 +0200)] 
Added missing includes in adaptation/esi

11 years agoAdded missing include in ssl helper
Francesco Chemolli [Sun, 19 Aug 2012 18:21:24 +0000 (20:21 +0200)] 
Added missing include in ssl helper

11 years agoFix ip/Intercept header ordering and documentation
Amos Jeffries [Thu, 16 Aug 2012 07:11:05 +0000 (01:11 -0600)] 
Fix ip/Intercept header ordering and documentation

11 years agonetfilter_ipv4.h requires including limits.h first. Added.
Francesco Chemolli [Wed, 15 Aug 2012 20:13:57 +0000 (22:13 +0200)] 
netfilter_ipv4.h requires including limits.h first. Added.

11 years agoAdded missing include in mem_hdr_test
Francesco Chemolli [Wed, 15 Aug 2012 17:01:06 +0000 (19:01 +0200)] 
Added missing include in mem_hdr_test

11 years agoAdd missing includes
Francesco Chemolli [Wed, 15 Aug 2012 15:17:32 +0000 (17:17 +0200)] 
Add missing includes

11 years agoMake mk-globals-c.awk more permissive on the input it accepts
Francesco Chemolli [Wed, 15 Aug 2012 14:58:11 +0000 (16:58 +0200)] 
Make mk-globals-c.awk more permissive on the input it accepts

11 years agoRelease notes: fix wrong link to Translations
Amos Jeffries [Wed, 15 Aug 2012 11:18:28 +0000 (23:18 +1200)] 
Release notes: fix wrong link to Translations

11 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 15 Aug 2012 00:13:13 +0000 (18:13 -0600)] 
SourceFormat Enforcement

11 years agoPrep for 3.2.1
Amos Jeffries [Tue, 14 Aug 2012 23:37:24 +0000 (17:37 -0600)] 
Prep for 3.2.1

11 years agoDocs: update configure libcap messages to say 2.09+ required
Amos Jeffries [Tue, 14 Aug 2012 22:51:53 +0000 (16:51 -0600)] 
Docs: update configure libcap messages to say 2.09+ required

11 years agoRemove --enable-ntlm-fail-open
Amos Jeffries [Tue, 14 Aug 2012 12:04:16 +0000 (06:04 -0600)] 
Remove --enable-ntlm-fail-open

This feature has been half missing for quite some time (10 years).
The SMB helper sends the LD code back to Squid when the directive is
compiled in, but there is no Squid code handling such responses, back as far
as squid-2.

11 years agoRemoved squid-old.h
Francesco Chemolli [Tue, 14 Aug 2012 11:53:07 +0000 (13:53 +0200)] 
Removed squid-old.h

11 years agoBug 3610: peername_regex ACL
Amos Jeffries [Mon, 13 Aug 2012 07:24:50 +0000 (01:24 -0600)] 
Bug 3610: peername_regex ACL

11 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 13 Aug 2012 00:15:09 +0000 (18:15 -0600)] 
SourceFormat Enforcement

11 years agoBug 3605: memory leak in peer selection
Amos Jeffries [Sun, 12 Aug 2012 08:57:49 +0000 (02:57 -0600)] 
Bug 3605: memory leak in peer selection

11 years agoPortability: squid provides strtoll()
Amos Jeffries [Sat, 11 Aug 2012 07:01:15 +0000 (01:01 -0600)] 
Portability: squid provides strtoll()

11 years agoFix bashisms in bootstrap.sh
Amos Jeffries [Sat, 11 Aug 2012 06:06:34 +0000 (00:06 -0600)] 
Fix bashisms in bootstrap.sh

11 years agoFreeBSD 7: fix compile warnings in unit tests
Amos Jeffries [Sat, 11 Aug 2012 04:42:17 +0000 (22:42 -0600)] 
FreeBSD 7: fix compile warnings in unit tests

11 years agoMacOS: fix AddrInfo default flags
Amos Jeffries [Sat, 11 Aug 2012 03:21:14 +0000 (21:21 -0600)] 
MacOS: fix AddrInfo default flags

11 years agoshuffel MEMPROXY macros for better CacheMgr reporting names
Amos Jeffries [Sat, 11 Aug 2012 02:04:03 +0000 (20:04 -0600)] 
shuffel MEMPROXY macros for better CacheMgr reporting names

11 years agoSourceFormat Enforcement
Automatic source maintenance [Sat, 11 Aug 2012 00:14:47 +0000 (18:14 -0600)] 
SourceFormat Enforcement

11 years agoallow for _SQUID_EXTERNNEW_ predefine
Amos Jeffries [Fri, 10 Aug 2012 08:09:43 +0000 (02:09 -0600)] 
allow for _SQUID_EXTERNNEW_ predefine

11 years agoSourceLayout: introduce Fs::Ufs namespace, split ufscommon, store_dir_ufs and store_i...
Francesco Chemolli [Fri, 10 Aug 2012 06:56:49 +0000 (08:56 +0200)] 
SourceLayout: introduce Fs::Ufs namespace, split ufscommon, store_dir_ufs and store_io_ufs

11 years agoRelease Notes: updates after STRICT_ORIGINAL_DST changes
Amos Jeffries [Fri, 10 Aug 2012 05:56:58 +0000 (23:56 -0600)] 
Release Notes: updates after STRICT_ORIGINAL_DST changes

11 years agoBug 3478: workaround: better default handling without -DSTRICT_ORIGINAL_DST
Amos Jeffries [Fri, 10 Aug 2012 02:41:14 +0000 (14:41 +1200)] 
Bug 3478: workaround: better default handling without -DSTRICT_ORIGINAL_DST

This extends the -DSTRICT_ORIGINAL_DST compile-time flag to include the
logics listing ORIGINAL_DST as first preferred destination.

Which makes ORIGINAL_DST a swap-in replacement for DIRECT and enables
never_direct, always_direct, prefer_direct configuration to apply.

11 years agoMacOS: warning: 'gnu_inline' attribute directive ignored
Amos Jeffries [Fri, 10 Aug 2012 01:12:48 +0000 (13:12 +1200)] 
MacOS: warning: 'gnu_inline' attribute directive ignored

11 years agoMacOS: detect glibtool and glibtoolize when bootstrapping
Amos Jeffries [Fri, 10 Aug 2012 00:38:14 +0000 (12:38 +1200)] 
MacOS: detect glibtool and glibtoolize when bootstrapping

11 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 10 Aug 2012 00:12:23 +0000 (18:12 -0600)] 
SourceFormat Enforcement

11 years agoConvert all yet-unconverted stub files to the STUB API.
Francesco Chemolli [Thu, 9 Aug 2012 15:01:02 +0000 (17:01 +0200)] 
Convert all yet-unconverted stub files to the STUB API.

11 years agoMerged from trunk
Francesco Chemolli [Thu, 9 Aug 2012 14:59:30 +0000 (16:59 +0200)] 
Merged from trunk

11 years agoFix missing include for leakcheck.h
Amos Jeffries [Thu, 9 Aug 2012 10:38:38 +0000 (22:38 +1200)] 
Fix missing include for leakcheck.h

11 years agoPortability: shuffle out the last useful macros from squid-old.h
Amos Jeffries [Thu, 9 Aug 2012 10:32:57 +0000 (22:32 +1200)] 
Portability: shuffle out the last useful macros from squid-old.h

11 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 9 Aug 2012 00:12:47 +0000 (18:12 -0600)] 
SourceFormat Enforcement

11 years agoimplemented STUB_RETVAL_NOP
Francesco Chemolli [Wed, 8 Aug 2012 12:14:34 +0000 (14:14 +0200)] 
implemented STUB_RETVAL_NOP
Converted stub_tools to stup API.

11 years agoconverted stub_StatHist.cc stub_main_cc.cc stub_mem.cc stub_store_rebuild.cc to stub API
Francesco Chemolli [Wed, 8 Aug 2012 09:24:40 +0000 (11:24 +0200)] 
converted stub_StatHist.cc stub_main_cc.cc stub_mem.cc stub_store_rebuild.cc to stub API

11 years agoPortability: CMSG_*() macro API substitute
Amos Jeffries [Wed, 8 Aug 2012 08:15:28 +0000 (02:15 -0600)] 
Portability: CMSG_*() macro API substitute

11 years agoWindows: MinGW provides truncate()/ftruncate()
Amos Jeffries [Wed, 8 Aug 2012 08:01:46 +0000 (20:01 +1200)] 
Windows: MinGW provides truncate()/ftruncate()

11 years agoFixed formatting of stub_libcomm.cc
Francesco Chemolli [Wed, 8 Aug 2012 07:54:29 +0000 (09:54 +0200)] 
Fixed formatting of stub_libcomm.cc

11 years agoWindows: fix winsock detection capabilities
Francesco Chemolli [Wed, 8 Aug 2012 07:39:35 +0000 (01:39 -0600)] 
Windows: fix winsock detection capabilities

11 years agoMoved to STUB API stubs for DelayId.cc, HelperChildconfig.cc, debug.cc
Francesco Chemolli [Wed, 8 Aug 2012 07:35:10 +0000 (09:35 +0200)] 
Moved to STUB API stubs for DelayId.cc, HelperChildconfig.cc, debug.cc

11 years agoWindows: provide POSIX ABI wrapper for mkdir()
Amos Jeffries [Wed, 8 Aug 2012 07:21:13 +0000 (19:21 +1200)] 
Windows: provide POSIX ABI wrapper for mkdir()

11 years agoMerged from trunk
Francesco Chemolli [Tue, 7 Aug 2012 15:58:34 +0000 (17:58 +0200)] 
Merged from trunk

11 years agoRemoved dead code from stub_cache_cf.cc and stub_client_side_request.cc
Francesco Chemolli [Tue, 7 Aug 2012 15:58:08 +0000 (17:58 +0200)] 
Removed dead code from stub_cache_cf.cc and stub_client_side_request.cc

11 years agoMoved CBDATA_CLASS declarations to the end of classes as per coding guidelines.
Francesco Chemolli [Tue, 7 Aug 2012 15:12:08 +0000 (17:12 +0200)] 
Moved CBDATA_CLASS declarations to the end of classes as per coding guidelines.

11 years agoChanged all level-0 debugs messages to use the DBG_CRITICAL definition.
Francesco Chemolli [Mon, 6 Aug 2012 17:41:08 +0000 (19:41 +0200)] 
Changed all level-0 debugs messages to use the DBG_CRITICAL definition.

11 years agoChanged all level-1 debugs messages to use DBG_IMPORTANT definition.
Francesco Chemolli [Mon, 6 Aug 2012 17:21:57 +0000 (19:21 +0200)] 
Changed all level-1 debugs messages to use DBG_IMPORTANT definition.

11 years agoImprove support for clang compilers
Francesco Chemolli [Mon, 6 Aug 2012 15:38:12 +0000 (17:38 +0200)] 
Improve support for clang compilers

clang++ doesn't support c++ variable arrays for non-pod types.
Change variable arrays to dynamically-allocated arrays, Ipc::QueueReaders, Ipc::StoreMap and Ipc::Mem::PageStack

11 years agoRelease notes: use SPONSORS (no file type) as the published file name
Amos Jeffries [Sun, 5 Aug 2012 11:11:02 +0000 (23:11 +1200)] 
Release notes: use SPONSORS (no file type) as the published file name

SPONSORS.txt is the website published filename, but it seems some distros
were using the source code file name.

Use SPONSORS.ist for the coded listings instead.

11 years agoRelease Notes: NCSA helper algorithm limits
Amos Jeffries [Thu, 2 Aug 2012 12:03:50 +0000 (06:03 -0600)] 
Release Notes: NCSA helper algorithm limits

11 years agoPrep for 3.2.0.19
Amos Jeffries [Thu, 2 Aug 2012 11:55:39 +0000 (05:55 -0600)] 
Prep for 3.2.0.19

11 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 2 Aug 2012 00:12:45 +0000 (18:12 -0600)] 
SourceFormat Enforcement

11 years agoStub updates after bump-server-first changes
Amos Jeffries [Wed, 1 Aug 2012 23:52:59 +0000 (11:52 +1200)] 
Stub updates after bump-server-first changes

11 years agoMore GCC 4.2 dependency fixes
Amos Jeffries [Wed, 1 Aug 2012 12:51:45 +0000 (00:51 +1200)] 
More GCC 4.2 dependency fixes

11 years agoRelease notes: build SPONSORS.txt in bootstrap instead of automake
Amos Jeffries [Wed, 1 Aug 2012 12:37:25 +0000 (00:37 +1200)] 
Release notes: build SPONSORS.txt in bootstrap instead of automake

11 years agoRevert r12231 - seems to break SMP cache
Amos Jeffries [Wed, 1 Aug 2012 11:54:23 +0000 (23:54 +1200)] 
Revert r12231 - seems to break SMP cache

11 years agoSkip Failure Ratio calculations entirely when ICP is disabled.
Amos Jeffries [Wed, 1 Aug 2012 07:55:18 +0000 (19:55 +1200)] 
Skip Failure Ratio calculations entirely when ICP is disabled.

Also, mention ICP in the logged error message. unqualified 'HIT' confuses
people (self included) more familiar with the HTTP type of HIT responses.

11 years agoSupport -DFAILURE_MODE_TIME=n compiler flag
Amos Jeffries [Wed, 1 Aug 2012 07:01:58 +0000 (19:01 +1200)] 
Support -DFAILURE_MODE_TIME=n compiler flag

This value determins at compile-time how long Squid spends in HIT-only
mode after the failure ratio goes over 1.0. see checkFailureRatio() in
src/client_side_request.cc for details on the ratio.

This flag is supported to remove the need for patching when alteration
is required.

11 years agoAdd copyright attributions for SN.png and errorpage.css
Amos Jeffries [Wed, 1 Aug 2012 06:40:26 +0000 (18:40 +1200)] 
Add copyright attributions for SN.png and errorpage.css

11 years agoRemoved some duplicates and fixed formatting in CONTRIBUTORS list
Francesco Chemolli [Tue, 31 Jul 2012 09:51:38 +0000 (11:51 +0200)] 
Removed some duplicates and fixed formatting in CONTRIBUTORS list

11 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 31 Jul 2012 00:13:24 +0000 (18:13 -0600)] 
SourceFormat Enforcement

11 years agoRelease notes: typo
Amos Jeffries [Mon, 30 Jul 2012 09:58:32 +0000 (03:58 -0600)] 
Release notes: typo

11 years agoGCC 4.2 dependencies
Amos Jeffries [Mon, 30 Jul 2012 08:49:59 +0000 (02:49 -0600)] 
GCC 4.2 dependencies

11 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 30 Jul 2012 00:13:12 +0000 (18:13 -0600)] 
SourceFormat Enforcement

11 years agoBug 3478: Allow peer selection
Amos Jeffries [Sun, 29 Jul 2012 08:15:17 +0000 (02:15 -0600)] 
Bug 3478: Allow peer selection

This re-enables Squid peer selection algorithms for intercepted
traffic which has failed Host header verification.

When host verification fails Squid will use, in order of preference:
 * an already PINNED server connection
 * the client ORIGINAL_DST details
 * cache_peer as chosen by selection algorithms

NOTE: whenever DIRECT is selected by routing algorithms the
      ORIGINAL_DST is used instead.

Peer selection results are updated to display PINNED and
ORIGINAL_DST alongside DIRECT and cache_peer.

SECURITY NOTE:

  At this point Squid will pass the request to cache_peer using the
  non-trusted Host header in their URLs. Meaning that the peers
  may still be poisoned by CVE-2009-0801 attacks. Only the initial
  intercepting proxy is protected.

  Full protection against CVE-2009-0801 can be enjoyed by building
  Squid with the -DSTRICT_HOST_VERIFY compile-time flag. This will
  make the peers unreachable for intercepted traffic where the
  Host verification has failed.

11 years agoBug 3580: IDENT request makes squid crash
Amos Jeffries [Sun, 29 Jul 2012 06:10:44 +0000 (18:10 +1200)] 
Bug 3580: IDENT request makes squid crash

11 years agoRelease Notes: update SPONSORS list
Amos Jeffries [Sun, 29 Jul 2012 04:33:44 +0000 (22:33 -0600)] 
Release Notes: update SPONSORS list

The SPONSORS file is supposed to:

* list Sponsors who paid for significant developments in the squid code,
  donated hardware for devleopment etc.
* exclude cash donations to the project (only cash to a developer for
  specific work)
* in an ordered list broken down in reverse-chronological order of the
  latest release they sponsored anything.

For simplicity of maintenance I'm adding @Squid-X.Y labels at the
boundaries for the bzr copy. They should be stripped out automatically
by the "make dist" process for release packaging.

11 years agoRelease Notes: update CONTRIBUTORS to match patch authors list
Amos Jeffries [Sat, 28 Jul 2012 06:02:45 +0000 (00:02 -0600)] 
Release Notes: update CONTRIBUTORS to match patch authors list

11 years agoAdjust for GCC-4.7
Henrik Nordstrom [Fri, 27 Jul 2012 23:02:09 +0000 (01:02 +0200)] 
Adjust for GCC-4.7

11 years agoMerged Postfix-Prefix branch: Fix decrement operator in hash4 function(lib/hash.c)
Christos Tsantilas [Thu, 26 Jul 2012 17:36:58 +0000 (20:36 +0300)] 
Merged Postfix-Prefix branch: Fix decrement operator in hash4 function(lib/hash.c)

The "Postfix-Prefix" patch code is not equivalent with the replaced code inside
hash4 function.

11 years agoConsolidate external_acl_form config dumping a bit and add missing percent dumper.
Robert Collins [Thu, 26 Jul 2012 08:40:22 +0000 (20:40 +1200)] 
Consolidate external_acl_form config dumping a bit and add missing percent dumper.

11 years agoAllow a ufs cache_dir entry to coexist with a shared memory cache entry
Alex Rousskov [Wed, 25 Jul 2012 23:57:51 +0000 (17:57 -0600)] 
Allow a ufs cache_dir entry to coexist with a shared memory cache entry
instead of being released when it becomes idle.

The original boolean version of the StoreController::dereference() code
(r11730) was written to make sure that idle unlocked local store_table entries
are released if nobody needs them (to avoid creating inconsistencies with
shared caches that could be modified in a different process).

Then, in r11786, we realized that the original code was destroying non-shared
memory cache entries if there were no cache_dirs to vote for keeping them in
store_table. I fixed that by changing the StoreController::dereference() logic
from "remove if nobody needs it" to "remove if somebody objects to keeping
it". That solved the problem at hand, but prohibited an entry to exist in
a non-shared cache_dir and in a shared memory cache at the same time.

We now go back to the original "remove if nobody needs it" design but also
give non-shared memory cache a vote so that it can protect idle non-shared
memory cached entries from being released if there are no cache_dirs to vote
for them.

11 years agoBug 3593: socket failure: Address family not supported by protocol
Amos Jeffries [Wed, 25 Jul 2012 22:29:21 +0000 (10:29 +1200)] 
Bug 3593: socket failure: Address family not supported by protocol

11 years agoRemove unnecessary todo marker in stub_debug.cc
Francesco Chemolli [Wed, 25 Jul 2012 12:31:05 +0000 (14:31 +0200)] 
Remove unnecessary todo marker in stub_debug.cc

11 years agoMerged Postfix-Prefix branch: refactor inc/decrement operators from postfix to prefix...
Francesco Chemolli [Tue, 24 Jul 2012 08:59:54 +0000 (10:59 +0200)] 
Merged Postfix-Prefix branch: refactor inc/decrement operators from postfix to prefix form.

11 years agoChanged some increment/decrement operators from postfix to prefix form.
Francesco Chemolli [Mon, 23 Jul 2012 19:37:47 +0000 (21:37 +0200)] 
Changed some increment/decrement operators from postfix to prefix form.

11 years agoChanged increment operators from postfix to prefix form.
Francesco Chemolli [Mon, 23 Jul 2012 15:34:12 +0000 (17:34 +0200)] 
Changed increment operators from postfix to prefix form.

11 years agoChanged increment operators from postfix to prefix form.
Francesco Chemolli [Mon, 23 Jul 2012 15:15:27 +0000 (17:15 +0200)] 
Changed increment operators from postfix to prefix form.

11 years agoMerged from trunk
Francesco Chemolli [Mon, 23 Jul 2012 07:02:06 +0000 (09:02 +0200)] 
Merged from trunk

11 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 23 Jul 2012 00:12:14 +0000 (18:12 -0600)] 
SourceFormat Enforcement

11 years agoStop HttpRequest and AccessLogEntry memory leaks.
Alex Rousskov [Sun, 22 Jul 2012 03:15:02 +0000 (21:15 -0600)] 
Stop HttpRequest and AccessLogEntry memory leaks.

The leaks were introduced by recent request_header_add improvements (r12213)
which needed server-side access to client-side information like client
certificate so that it can be stuffed into the outgoing request headers.
Stuffing was done via Format API that uses AccessLogEntry as the source of
information.

This change breaks the HttpRequest->AccessLogEntry->HttpRequest refcounting
loop that prevented both request and ale objects from being destroyed. The ale
object is now delivered to the server side using FwdState::Start() API.  Only
HTTP code currently takes advantage of ale availability on the server side.

Also had to modify httpHdrAdd() API because ale is no longer available via
the request pointer.

11 years agoAdded missing cbdata debugging so that find-alive.pl can find cbdata leaks.
Alex Rousskov [Fri, 20 Jul 2012 23:25:57 +0000 (17:25 -0600)] 
Added missing cbdata debugging so that find-alive.pl can find cbdata leaks.

11 years agoAdded a todo to avoid a pointless validation loop when validation (-S) is not
Alex Rousskov [Fri, 20 Jul 2012 23:17:53 +0000 (17:17 -0600)] 
Added a todo to avoid a pointless validation loop when validation (-S) is not
requested.

11 years agoAvoid bogus "Disk space over limit" warnings when rebuidling dirty ufs index.
Alex Rousskov [Fri, 20 Jul 2012 23:11:02 +0000 (17:11 -0600)] 
Avoid bogus "Disk space over limit" warnings when rebuidling dirty ufs index.

Subtract sizes of added-then-rejected entries while loading ufs cache index.

Before SMP changes, the ufs code was incorrectly ignoring the size of
loaded-but-not-yet-validated entries, leading to cache disk overflows.
After SMP changes, the ufs code was not subtracting sizes of
loaded-but-then-rejected entries, leading to bogus "Disk space over
limit" warnings. Now we correctly account for both kinds of entries.

11 years agoChanged decrement operators from postfix to prefix form.
Francesco Chemolli [Fri, 20 Jul 2012 15:31:04 +0000 (17:31 +0200)] 
Changed decrement operators from postfix to prefix form.

11 years agoChanged increment operators from postfix to prefix form.
Francesco Chemolli [Fri, 20 Jul 2012 12:44:39 +0000 (14:44 +0200)] 
Changed increment operators from postfix to prefix form.

11 years agoSilence IOS 15.1 unknown capabilities messages.
Amos Jeffries [Fri, 20 Jul 2012 11:37:43 +0000 (05:37 -0600)] 
Silence IOS 15.1 unknown capabilities messages.

Its nice to know when new capabilities are added.
But we don't need to report after being informed about them.

TODO: reduce the message to once every thousand or so.
  But be careful to identify what different type numbers exist.

11 years agoChanged increment operators from postfix to prefix form.
Francesco Chemolli [Thu, 19 Jul 2012 13:49:54 +0000 (15:49 +0200)] 
Changed increment operators from postfix to prefix form.

11 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 19 Jul 2012 00:12:22 +0000 (18:12 -0600)] 
SourceFormat Enforcement

11 years agoSslBump: Support bump-ssl-server-first / fix build errors
Christos Tsantilas [Wed, 18 Jul 2012 20:20:34 +0000 (23:20 +0300)] 
SslBump: Support bump-ssl-server-first / fix build errors

Wrap inside "#if USE_AUTH .. #endif" block authentication related code to
allow build when no authentication used in squid

11 years agoauthor: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <chtsant...
Christos Tsantilas [Wed, 18 Jul 2012 17:45:54 +0000 (20:45 +0300)] 
author: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <chtsanti@users.sourceforge.net>
SslBump: Support bump-ssl-server-first and mimic SSL server certificates.

Summary: These changes allow Squid working in SslBump mode to peek at
the origin server certificate and mimic peeked server certificate
properties in the generated fake certificate, all prior to establishing
a secure connection with the client:
http://wiki.squid-cache.org/Features/BumpSslServerFirst
http://wiki.squid-cache.org/Features/MimicSslServerCert

The changes are required to bump intercepted SSL connections without
excessive browser warnings. The changes allow to disable bumping of some
intercepted SSL connections, forcing Squid to go into a TCP tunnel mode
for those connections.

The changes also empower end user to examine and either honor or bypass
most origin SSL server certificate errors. Prior to these changes, the
responsibility for ignoring certificate validation errors belonged
exclusively to Squid, necessarily leaving users in the dark if errors
are ignored/bypassed.

Squid can still be configured to emulate old bump-ssl-client-first
behavior.  However, a manual revision of ssl_bump options is required
during upgrade because ssl_bump no longer supports an implicit "negate
the last one" rule (and it is risky to let Squid guess what the admin
true intent was or mix old- and new-style rules).

Finally, fake certificate generation has been significantly improved.
The new code guarantees that all identically configured Squids receiving
identical origin server certificates will generate identical fake
certificates, even if those Squid instances are running on different
hosts, at different times, and do not communicate with each other. Such
stable, reproducible certificates are required for distributed,
scalable, or fail-safe Squid deployment.

Overall, the changes are meant to make SslBump more powerful and safer.
The code has been tested in several independent labs.

Specific major changes are highlighted below:

Make bumping algorithm selectable using ACLs. Even though
bump-server-first is an overall better method, bumping the client first
is useful for backward compatibility and possibly for serving internal
Squid objects (such as icons inside Squid error pages).  The following
example bumps special and most other requests only, using the old
bump-client-first approach for the special requests only:

    ssl_bump client-first specialOnes
    ssl_bump server-first mostOthers
    ssl_bump none all

It allow use the old ssl_bump syntax:
   ssl_bump allow/deny acl ...
but warns the user to update squid configuration.

Added sslproxy_cert_adapt squid.conf option to overwrite default mimicking
behavior when generating SSL certificates. See squid.conf.documented.

Added sslproxy_cert_sign squid.conf option to control how generated SSL
certificates are signed. See squid.conf.documented.

Added ssl::certHasExpired, ssl::certNotYetValid, ssl::certDomainMismatch,
ssl::certUntrusted, and ssl::certSelfSign predefined ACLs to squid.conf.

Do not require http[s]_port's key option to be set if cert option is given.
The fixed behavior for bumped connections now matches squid.conf docs.

Generate stable fake certificates by using signing and true certificate
hashes as the serial number and by using the configured CA private key
for all fake certificates.

Use minimal, trusted certificate for serving SSL errors to the client
instead of trying to mimic the broken true certificate (which results
in double error for the user: browser error dialog plus Squid error page).

To mimic "untrusted" true certificates, generate an untrusted CA certificate
from the configured trusted CA certificate. This both reduces configuration
effort (compared to a configuration option) and results in identical
untrusted fake certificates given identical Squid configurations.

Intelligent handling of CONNECT denials: Do not connect to origin
servers unless CONNECT is successfully authenticated. Delay errors.Added sslproxy_cert_sign squid.conf option to control how generated SSL
certificates are signed. See squid.conf.documented.

Provide '%I' error page formatting code with enough information to avoid
displaying '[unknown]' on SQUID_X509_V_ERR_DOMAIN_MISMATCH errors.

Set logged status code (%<Hs) to 200 when establishing a bumped tunnel.

Improved error detailing and logging: Forget most retried errors.
During SslBump errors, the error details are now logged with both the
initial CONNECT transaction and the first tunneled HTTP transaction.
Do not report system errors as custom Squid errors. Do not report
system errors that did not necessarily happen during the transaction
being logged.

Check SSL server certificate when reconnecting to the origin server for
bumped requests. Despite pinning, Squid maintains two separate connections
and the server may disconnect while the client is still sending requests. To
minimize deployment problems, we reconnect to the origin server but check
that its certificate (which we mimicked for the client) has not changed
much.

Forward bumped server connection-close signal to the bumped client to
improve the "dumb tunnel" appearance of the bumped SSL tunnel.

Allow bumping of CONNECT requests without allow-direct set on http_port.
Previously, that flag was required to allow bumped requests to go direct
because they were (and, sometimes, still are) considered "accelerated".

Send SNI information to the server when server-first bumping a non-IP
CONNECT request.

Better helper-to-Squid buffer size management to support large certificates.

Bypass rare OpenSSL certificate serialization failures when composing an
ssl_crtd request by generating the certificate in the Squid process.

When generating certificate CN names, strip [] surrounding host names,
assuming they are for IPv6 addresses. Bracketed CNs confuse browsers.

Disable persistent connections after client-side-detected errors. They cause
"abandoning such and such connection" warnings, stuck ConnStateData jobs, and
other problems.

HttpRequest::SetHost() must invalidate HttpRequest::canonical "cache".

Implement ssl::bump_mode logformat code to log SslBump decisions: prints "none",
"client-first", "server-first" or "-" for no ssl-bump enabled ports

Synced with trunk (trunk r12216, v3.2.0.18+)

This is a Measurement Factory project.

11 years agoBug 3478: Partial fix: Connection-auth on intercepted connections is broken
Christos Tsantilas [Wed, 18 Jul 2012 17:40:51 +0000 (20:40 +0300)] 
Bug 3478: Partial fix: Connection-auth on intercepted connections is broken
Currenty in the case of intercepted connections each request is open a new
connection to the destination server, even if the connection is a valid pinned
connection.
This patch fixes this problem and reuses pinned connections on intercepted
requests.

This is a Measurement Factory project