]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
9 years agoRefactor HttpHeader into gperf-generated perfect hash
Francesco Chemolli [Sat, 5 Sep 2015 18:52:17 +0000 (20:52 +0200)] 
Refactor HttpHeader into gperf-generated perfect hash

9 years agoImplement EnumIterator
Francesco Chemolli [Sat, 5 Sep 2015 11:28:21 +0000 (13:28 +0200)] 
Implement EnumIterator

9 years agoUpdate mk-string-arrays.awk to support c++-style enums
Francesco Chemolli [Sat, 5 Sep 2015 11:27:59 +0000 (13:27 +0200)] 
Update mk-string-arrays.awk to support c++-style enums

9 years agoQuieten UFS cache maintenance skipped warnings
Amos Jeffries [Fri, 4 Sep 2015 19:54:07 +0000 (12:54 -0700)] 
Quieten UFS cache maintenance skipped warnings

The maintenance loop cycles once per second. On long DIRTY cache rebuilds
this can reult in a lot of log mesages at level 1.

* reduce the messages to L=3 except once per minute allow one at L=1

* perform the under-size limit check first to allow completely silent
  skipping when no maintenance would have taken place anyway.

9 years agoFix CONNECT request debugging 11,2 traces
Amos Jeffries [Wed, 2 Sep 2015 14:17:07 +0000 (07:17 -0700)] 
Fix CONNECT request debugging 11,2 traces

Using the MemBuf::buf directly is not great, but it does have a properly
terminated c-string in this instance. We cannot use Raw() interface
because that is for output at DBG_DATA levels and will only display the
buffer name as if that was the raw traffic bytes at 11,2.
Which negates the entire purpose of this 11,2 output.

9 years agoUpdate release script after rev.14240
Amos Jeffries [Wed, 2 Sep 2015 02:20:45 +0000 (19:20 -0700)] 
Update release script after rev.14240

9 years agoPrep for 3.5.8
Amos Jeffries [Tue, 1 Sep 2015 19:32:54 +0000 (12:32 -0700)] 
Prep for 3.5.8

9 years agoSupport splice for SSLv3 and TLSv1 sessions that start with an SSLv2 Hello
Alex Rousskov [Tue, 1 Sep 2015 09:07:03 +0000 (02:07 -0700)] 
Support splice for SSLv3 and TLSv1 sessions that start with an SSLv2 Hello

Such sessions are created, for example, by some SSL clients using OpenSSL
v0.9.8 with default options. This does _not_ re-enable SSLv2 sessions.
Just enacts the permitted exception for Hello messages in RFC 6176

9 years agoSourceLayout: rename fs/rock/RockForward.h to fs/rock/forward.h
Amos Jeffries [Mon, 31 Aug 2015 13:59:41 +0000 (06:59 -0700)] 
SourceLayout: rename fs/rock/RockForward.h to fs/rock/forward.h

To bring in line with layout guidelines.

9 years agoMissing piece of rev.14275
Amos Jeffries [Mon, 31 Aug 2015 13:58:48 +0000 (06:58 -0700)] 
Missing piece of rev.14275

9 years agoMerge cleanups branch: split most of typedefs.h
Francesco Chemolli [Mon, 31 Aug 2015 09:58:00 +0000 (11:58 +0200)] 
Merge cleanups branch: split most of typedefs.h

9 years agoPackable API: Rename StoreEntryStream to PackableStream
Amos Jeffries [Mon, 31 Aug 2015 09:38:51 +0000 (02:38 -0700)] 
Packable API: Rename StoreEntryStream to PackableStream

PackableStream has some implicit new properties different from
the original StoreEntryStream type:

* lack of Store.h dependency

* ability to stream into a MemBuf if its creator desires that

Meaning PackableStream can be used in a wider range of the code
without increasing library dependencies.

9 years agoFix some comments
Francesco Chemolli [Mon, 31 Aug 2015 09:20:20 +0000 (11:20 +0200)] 
Fix some comments

9 years agoSource maintenance
Francesco Chemolli [Mon, 31 Aug 2015 09:16:27 +0000 (11:16 +0200)] 
Source maintenance

9 years agoAudit round 2
Francesco Chemolli [Mon, 31 Aug 2015 08:01:10 +0000 (10:01 +0200)] 
Audit round 2

9 years agoMerged from trunk
Francesco Chemolli [Mon, 31 Aug 2015 07:34:35 +0000 (09:34 +0200)] 
Merged from trunk

9 years agoAudit round
Francesco Chemolli [Mon, 31 Aug 2015 06:17:22 +0000 (08:17 +0200)] 
Audit round

9 years agoFix regression in rev.14268
Amos Jeffries [Sun, 30 Aug 2015 20:36:48 +0000 (13:36 -0700)] 
Fix regression in rev.14268

My bad cut-n-paste resulted in wrong locking sequence.
Fixing that reveals that the validity check on the return
result triggers cases of cbdata 'locks > 0' assertions.
The validity test is not currently needed by the fastCheck
code which preserves the value. So removing for now.

9 years agoRevert enum-related changes
Francesco Chemolli [Sun, 30 Aug 2015 16:56:24 +0000 (18:56 +0200)] 
Revert enum-related changes

9 years agoMerged from trunk
Francesco Chemolli [Sun, 30 Aug 2015 02:07:21 +0000 (04:07 +0200)] 
Merged from trunk

9 years agoDocs: update arp ACL text
Amos Jeffries [Sun, 30 Aug 2015 01:07:47 +0000 (18:07 -0700)] 
Docs: update arp ACL text

9 years agoSourceLayout: shuffle kb_t to ByteCounter in libbase
Amos Jeffries [Sun, 30 Aug 2015 00:26:47 +0000 (17:26 -0700)] 
SourceLayout: shuffle kb_t to ByteCounter in libbase

Also, move kb_incr() logic to ByteCounter operator +=

 There are no logic changes in this patch.

9 years agoRename lowSBufHash to SBufHashCommon_
Francesco Chemolli [Sat, 29 Aug 2015 23:57:45 +0000 (01:57 +0200)] 
Rename lowSBufHash to SBufHashCommon_

9 years agoIncrease UFS removal rate to 300/s
Amos Jeffries [Sat, 29 Aug 2015 18:01:56 +0000 (11:01 -0700)] 
Increase UFS removal rate to 300/s

... by request of testers who report 250+ as better for current high
performance traffic needs.

9 years agoBetter alternative to rev.14267
Alex Rousskov [Sat, 29 Aug 2015 17:59:28 +0000 (10:59 -0700)] 
Better alternative to rev.14267

Encapsulate the accessList pointer change logic so that it can be kept
consistent and CBDATA operations are not exposed to callers.

9 years agoAdd missing forward declaration of StoreEntry in errorpage.h
Francesco Chemolli [Sat, 29 Aug 2015 16:56:11 +0000 (18:56 +0200)] 
Add missing forward declaration of StoreEntry in errorpage.h

9 years agoAdded missing forward declaration in errorpage.h
Francesco Chemolli [Sat, 29 Aug 2015 15:39:13 +0000 (17:39 +0200)] 
Added missing forward declaration in errorpage.h

9 years agoFix Makefile.am to include fs/forward.h where needed
Francesco Chemolli [Sat, 29 Aug 2015 08:06:21 +0000 (10:06 +0200)] 
Fix Makefile.am to include fs/forward.h where needed

9 years agoMove store_client_t from enums.h to Store.h
Francesco Chemolli [Sat, 29 Aug 2015 07:57:35 +0000 (09:57 +0200)] 
Move store_client_t from enums.h to Store.h

9 years agoMoved mem_status_t and store_status_t to Store.h
Francesco Chemolli [Fri, 28 Aug 2015 22:28:04 +0000 (00:28 +0200)] 
Moved mem_status_t and store_status_t to Store.h

9 years agoMoved fd_type, FD_READ, FD_WRITE from enums.h to fd.h
Francesco Chemolli [Fri, 28 Aug 2015 20:52:14 +0000 (22:52 +0200)] 
Moved fd_type, FD_READ, FD_WRITE from enums.h to fd.h

9 years agoRemove no longer needed includes of typedefs.h
Francesco Chemolli [Fri, 28 Aug 2015 20:51:08 +0000 (22:51 +0200)] 
Remove no longer needed includes of typedefs.h

9 years agoRemove no longer needed includes of typedefs.h
Francesco Chemolli [Fri, 28 Aug 2015 20:50:41 +0000 (22:50 +0200)] 
Remove no longer needed includes of typedefs.h

9 years agoRemoved useless StoreEntry forward declaration in typedefs.h
Francesco Chemolli [Fri, 28 Aug 2015 20:11:03 +0000 (22:11 +0200)] 
Removed useless StoreEntry forward declaration in typedefs.h

9 years agoMoved cache_key from typedefs.h to store_key_md5.h
Francesco Chemolli [Fri, 28 Aug 2015 20:03:05 +0000 (22:03 +0200)] 
Moved cache_key from typedefs.h to store_key_md5.h

9 years agoRemoved unused statefulhelper::IsAvailable and OnEmptyQueue and related typedefs...
Francesco Chemolli [Fri, 28 Aug 2015 19:14:45 +0000 (21:14 +0200)] 
Removed unused statefulhelper::IsAvailable and OnEmptyQueue and related typedefs and code

9 years agoMove STABH from typedefs.h to MemObject.h
Francesco Chemolli [Fri, 28 Aug 2015 19:01:03 +0000 (21:01 +0200)] 
Move STABH from typedefs.h to MemObject.h

9 years agoRemoved useless QS declaration
Francesco Chemolli [Fri, 28 Aug 2015 18:48:31 +0000 (20:48 +0200)] 
Removed useless QS declaration

9 years agoMoved READ_HANDLER from typedefs.h to fde.h
Francesco Chemolli [Fri, 28 Aug 2015 18:42:11 +0000 (20:42 +0200)] 
Moved READ_HANDLER from typedefs.h to fde.h

9 years agoRemoved unused definition of UH
Francesco Chemolli [Fri, 28 Aug 2015 18:31:13 +0000 (20:31 +0200)] 
Removed unused definition of UH

9 years agoMoved time_msec_t from typedefs.h to SquidTime.h
Francesco Chemolli [Fri, 28 Aug 2015 18:29:16 +0000 (20:29 +0200)] 
Moved time_msec_t from typedefs.h to SquidTime.h

9 years agoMoved mb_size_t from typedefs.h to MemBuf.h
Francesco Chemolli [Fri, 28 Aug 2015 18:11:54 +0000 (20:11 +0200)] 
Moved mb_size_t from typedefs.h to MemBuf.h

9 years agoMoved FQDNH declaration from typedefs.h to fqdncache.h
Francesco Chemolli [Fri, 28 Aug 2015 18:02:41 +0000 (20:02 +0200)] 
Moved FQDNH declaration from typedefs.h to fqdncache.h

9 years agoMove PF declaration from typedefs.h to comm/forward.h
Francesco Chemolli [Fri, 28 Aug 2015 15:16:42 +0000 (17:16 +0200)] 
Move PF declaration from typedefs.h to comm/forward.h

9 years agoMoved FREE declaration from typedefs.h to mem/forward.h
Francesco Chemolli [Fri, 28 Aug 2015 14:43:37 +0000 (16:43 +0200)] 
Moved FREE declaration from typedefs.h to mem/forward.h

9 years agoMoved snmp-related variable_list from typedefs.h to snmp_core.h
Francesco Chemolli [Fri, 28 Aug 2015 13:58:29 +0000 (15:58 +0200)] 
Moved snmp-related variable_list from typedefs.h to snmp_core.h

9 years agoMove nfmark_t and tos_t declarations to ip/forward.h
Francesco Chemolli [Fri, 28 Aug 2015 13:31:03 +0000 (15:31 +0200)] 
Move nfmark_t and tos_t declarations to ip/forward.h

9 years agoBug 3696: crash when client delay pools are activated
Amos Jeffries [Fri, 28 Aug 2015 13:20:53 +0000 (06:20 -0700)] 
Bug 3696: crash when client delay pools are activated

9 years agoMoved sfileno and sdirno from typedefs.h to fs/forward.h
Francesco Chemolli [Fri, 28 Aug 2015 12:28:07 +0000 (14:28 +0200)] 
Moved sfileno and sdirno from typedefs.h to fs/forward.h

9 years agoRemoved unused CommWriteStateData and fde::wstate
Francesco Chemolli [Fri, 28 Aug 2015 09:57:38 +0000 (11:57 +0200)] 
Removed unused CommWriteStateData and fde::wstate

9 years agoMerged from trunk
Francesco Chemolli [Fri, 28 Aug 2015 09:12:49 +0000 (11:12 +0200)] 
Merged from trunk

9 years agomoved HLPSONEQ and HLPSAVAIL from typedefs.h to helper.h, SIGHDLR to tools.h, STDIRSE...
Francesco Chemolli [Fri, 28 Aug 2015 08:26:26 +0000 (10:26 +0200)] 
moved HLPSONEQ and HLPSAVAIL from typedefs.h to helper.h, SIGHDLR to tools.h, STDIRSELECT to SwapDir.h and removed unused STVLDCB HLPCMDOPTS

9 years agoSourceLayout: shuffle MemMeter into libmem and Mem:: namespace
Amos Jeffries [Thu, 27 Aug 2015 21:44:42 +0000 (14:44 -0700)] 
SourceLayout: shuffle MemMeter into libmem and Mem:: namespace

* move the memMeter.h file to src/mem/Meter.h

* move the helper #define macros logic to class members

* provide accessors to make all class members private

There are no logic changes in this patch.

9 years agoMoved typedefs.h:WRITE_HANDLER to fde.h, and ERCB to errorpage.h
Francesco Chemolli [Thu, 27 Aug 2015 16:53:12 +0000 (18:53 +0200)] 
Moved typedefs.h:WRITE_HANDLER to fde.h, and ERCB to errorpage.h

9 years agoRemove unnecessary typedefs.h:DOCB, DCCB, DUCB
Francesco Chemolli [Thu, 27 Aug 2015 16:46:02 +0000 (18:46 +0200)] 
Remove unnecessary typedefs.h:DOCB, DCCB, DUCB

9 years agoRemove unnecessary typedefs.h:DTCB
Francesco Chemolli [Thu, 27 Aug 2015 16:34:23 +0000 (18:34 +0200)] 
Remove unnecessary typedefs.h:DTCB

9 years agoRemove unneeded typedefs.h:FOCB
Francesco Chemolli [Thu, 27 Aug 2015 16:12:53 +0000 (18:12 +0200)] 
Remove unneeded typedefs.h:FOCB

9 years agoBug 4306: build portability fix in Kerberos helpers
Patrick Welche [Thu, 27 Aug 2015 08:06:38 +0000 (01:06 -0700)] 
Bug 4306: build portability fix in Kerberos helpers

9 years agoBug 3553: cache_swap_high ignored and maxCapacity used instead
Amos Jeffries [Wed, 26 Aug 2015 17:51:18 +0000 (10:51 -0700)] 
Bug 3553: cache_swap_high ignored and maxCapacity used instead

Also, to make matters worse the amount of objects (max 70) being purged on
each of the 1-second maintenance loops was far too small for the traffic
speeds of up to 20k RPS now being processed by proxies.

This fixes the cache_swap_high behaviour to closer match what is documented
at present, although some documentatino does say it cleans all the way down
to the low-water mark. Which appears never to have been true in regards to
one cycle but would occur over several of the proxy speed was not too high.

With this updated algorithm there is almost no limit to how far the
aggressiveness can scale, but it is linear at 200 objects per multiple of the
gap between low- and high- watermark.

SwapDir::maintain is now fairly well documented and debug traces added. With
several TODO ideas for future improvement also documented in the method code.

9 years agoRevert c++11 override keyword detection support
Francesco Chemolli [Wed, 26 Aug 2015 15:32:31 +0000 (17:32 +0200)] 
Revert c++11 override keyword detection support

9 years agoImplement and use detection of compiler support for c++11 override keyword
Francesco Chemolli [Wed, 26 Aug 2015 14:20:57 +0000 (16:20 +0200)] 
Implement and use detection of compiler support for c++11 override keyword

9 years agoDocs: release notes update for C++11 compilers
Amos Jeffries [Wed, 26 Aug 2015 13:53:33 +0000 (06:53 -0700)] 
Docs: release notes update for C++11 compilers

Intel ICC sadly does not meet the 'full C++11 support' claim:

/usr/include/c++/4.8.2/tuple(1075): error: "pair" is not a nonstatic data
member or base class of class "std::pair<T, Base>"

9 years agoRemove GCC 2.x and 3.x detection and support
Amos Jeffries [Wed, 26 Aug 2015 10:05:35 +0000 (03:05 -0700)] 
Remove GCC 2.x and 3.x detection and support

C++11 support is now required and the detection for that should error
far more nicely for these old compilers than these $GCCVER hacks

9 years agoFix leftover issues in some Makefile.am files
Francesco Chemolli [Wed, 26 Aug 2015 09:14:13 +0000 (11:14 +0200)] 
Fix leftover issues in some Makefile.am files

9 years agoFix initializer list of STUB MemPools in stub_libmem
Amos Jeffries [Tue, 25 Aug 2015 15:57:55 +0000 (08:57 -0700)] 
Fix initializer list of STUB MemPools in stub_libmem

Keeps coverity a bit happier about Issue 1318027

9 years agoRevert extra changes in rev.14254
Amos Jeffries [Tue, 25 Aug 2015 15:04:22 +0000 (08:04 -0700)] 
Revert extra changes in rev.14254

9 years agoPortability fix: detect c++11 random support and implement fallbacks if not available
Francesco Chemolli [Tue, 25 Aug 2015 14:36:54 +0000 (16:36 +0200)] 
Portability fix: detect c++11 random support and implement fallbacks if not available

9 years agoMaintenance: remove unused mk-globals-c.pl script
Amos Jeffries [Tue, 25 Aug 2015 14:19:26 +0000 (07:19 -0700)] 
Maintenance: remove unused mk-globals-c.pl script

9 years agoMaintenance: remove unused mk-string-arrays.pl script
Amos Jeffries [Tue, 25 Aug 2015 14:10:22 +0000 (07:10 -0700)] 
Maintenance: remove unused mk-string-arrays.pl script

9 years agoDocs: dist HTML not SGML copy
Amos Jeffries [Tue, 25 Aug 2015 14:02:52 +0000 (07:02 -0700)] 
Docs: dist HTML not SGML copy

9 years agoFix src/icmp/Makefile.am
Francesco Chemolli [Tue, 25 Aug 2015 13:36:13 +0000 (15:36 +0200)] 
Fix src/icmp/Makefile.am

9 years agoFix memory leak in Surrogate-Capability header detection
Amos Jeffries [Tue, 25 Aug 2015 12:51:31 +0000 (05:51 -0700)] 
Fix memory leak in Surrogate-Capability header detection

 Detected by Coverity Scan. Issue 1318023

9 years agoPortability fix: better support for BSD make
Francesco Chemolli [Tue, 25 Aug 2015 11:11:23 +0000 (13:11 +0200)] 
Portability fix: better support for BSD make

9 years agoDocs: fix automake -j on release notes
Amos Jeffries [Tue, 25 Aug 2015 10:47:14 +0000 (03:47 -0700)] 
Docs: fix automake -j on release notes

9 years agoWhen a RESPMOD service aborts, mark the body it produced as truncated.
Alex Rousskov [Mon, 24 Aug 2015 21:07:31 +0000 (15:07 -0600)] 
When a RESPMOD service aborts, mark the body it produced as truncated.

Without these changes, the recipient of the truncated body often
cannot tell that the body was actually truncated (e.g., when Squid
uses chunked encoding for body delivery). Lying about truncation
may result in rather serious user-level problems.

9 years agoDocs: fix HTML tags in release notes
Amos Jeffries [Mon, 24 Aug 2015 18:36:20 +0000 (11:36 -0700)] 
Docs: fix HTML tags in release notes

9 years agoSourceFormat Enforcement
Source Maintenance [Mon, 24 Aug 2015 18:12:00 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agomempools-nozero part 4: do not zero out MEMPROXY_CLASS pools
Francesco Chemolli [Mon, 24 Aug 2015 17:53:25 +0000 (19:53 +0200)] 
mempools-nozero part 4: do not zero out MEMPROXY_CLASS pools

9 years agomempools-nozero part 3: debug
Francesco Chemolli [Mon, 24 Aug 2015 17:49:50 +0000 (19:49 +0200)] 
mempools-nozero part 3: debug

Make Debug::OutStream to be a MEMPROXY_CLASS user, rather than rolling own
operator new and delete.

9 years agomempools-nozero part 2: wordlist
Francesco Chemolli [Mon, 24 Aug 2015 16:51:17 +0000 (18:51 +0200)] 
mempools-nozero part 2: wordlist

Implement constructors for wordlist allowing them to support non-zeroing pools
Make destructor private in order to force clients to use wordlistDestroy
Implement wordlistChopHead to support the only user of deleting the head of a wordlist

9 years agomempools-nozero part 1: fix ctors of classes declared MEMPROXY_CLASS
Francesco Chemolli [Mon, 24 Aug 2015 14:20:07 +0000 (16:20 +0200)] 
mempools-nozero part 1: fix ctors of classes declared MEMPROXY_CLASS

9 years agoBug 4278: Docs: typo in the refresh_pattern freshness algorithm
Javad Kouhi [Mon, 24 Aug 2015 12:18:26 +0000 (05:18 -0700)] 
Bug 4278: Docs: typo in the refresh_pattern freshness algorithm

9 years agoDocs: auto-build release notes for snapshots
Amos Jeffries [Sun, 23 Aug 2015 11:53:54 +0000 (04:53 -0700)] 
Docs: auto-build release notes for snapshots

This adds conditional build support to generate release notes whenever
a tarball is being created, regardless of what the code branch status
is. All that is required is the linuxdoc tool chain.

Formal release branch snapshots have been publishing the notes files
built for their previous release. But development versions of Squid
have not been getting documented at all which can be annoying for
testers.

The release-N.html file is also removed from the repository. With this
update it should no longer be needed by the snapshot machinery.

9 years agoDocs: make snapshots pull RELEASENOTES.html from top directory
Amos Jeffries [Sun, 23 Aug 2015 06:35:30 +0000 (23:35 -0700)] 
Docs: make snapshots pull RELEASENOTES.html from top directory

Prevent the need to go searching for release notes by version. Pull a
a copy from the top-level sources directory if any exist there.

The latest squid 4+ versions will (soon) be creating that file for this
and downstream distributors use.

9 years agoTLS: failure of https:// context non-fatal for non-OpenSSL builds
Amos Jeffries [Sat, 22 Aug 2015 19:06:46 +0000 (12:06 -0700)] 
TLS: failure of https:// context non-fatal for non-OpenSSL builds

Only OpenSSL library is 'guaranteed' to produce a TLS context at this point
in the conversion to library-agnostic security. Any others may produce
nothing.

Match the DBG_IMPORTANT used for debug level of the 'initializing' message.

9 years agoTurn Ftp::Server::EarlyErrorKind into C++11 strongly-typed enum
Francesco Chemolli [Fri, 21 Aug 2015 14:00:28 +0000 (16:00 +0200)] 
Turn Ftp::Server::EarlyErrorKind into C++11 strongly-typed enum

9 years agoCleanup: fix assertion in Store unit tests
Amos Jeffries [Fri, 21 Aug 2015 09:43:53 +0000 (02:43 -0700)] 
Cleanup: fix assertion in Store unit tests

The old Squid String implementation cannot handle appending nullptr or
negative lengths. So if the test code using CapturingStoreEntry ever
tries to append such it will crash instead of working like a StoreEntry
should.

9 years agoDocs: fix typo in miss_access
Lubos Uhliarik [Thu, 20 Aug 2015 12:28:33 +0000 (05:28 -0700)] 
Docs: fix typo in miss_access

9 years agoSourceFormat Enforcement
Source Maintenance [Thu, 20 Aug 2015 12:12:20 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoRework r14231, hopefully in a more portable way
Francesco Chemolli [Thu, 20 Aug 2015 12:01:01 +0000 (14:01 +0200)] 
Rework r14231, hopefully in a more portable way

9 years agoRevert override keyword in Ftp::Server::callException
Francesco Chemolli [Thu, 20 Aug 2015 09:55:56 +0000 (11:55 +0200)] 
Revert override keyword in Ftp::Server::callException

If even one only method is marked override in a class, then clang
requires all overriding methods in the class to be marked as such.
This uncovers a problem where toCbdata is defined virtual in
AsyncJob (which Ftp::Server inherits from) and implemented nonvirtual
in the CBDATA_CLASS macro. Fixing this will be the result of a sepearate
effort, for now covering up by removing keyword and marking XXX.

9 years agoWork around clang complaining of unknown attributes in libxml2
Francesco Chemolli [Thu, 20 Aug 2015 02:44:31 +0000 (04:44 +0200)] 
Work around clang complaining of unknown attributes in libxml2

9 years agoFtpServer.cc:1024: "reply != NULL" assertion
Christos Tsantilas [Wed, 19 Aug 2015 10:18:02 +0000 (13:18 +0300)] 
FtpServer.cc:1024: "reply != NULL" assertion

Handle nil HttpReply pointer inside various handlers called from
Ftp::Server::handleReply(). For example, when the related StoreEntry
object is aborted, the client_side_reply.cc code may call the
Ftp::Server::handleReply() method with a nil reply pointer.

The Ftp::Server::handleReply() methods itself cannot handle nil replies
because they are valid in many states. Only state-specific handlers know
whether they need the reply.

The Ftp::Server::handleReply() method is called [via Store] from Client code.
Thus, exceptions in handleReply() are handled by the Ftp::Client job. That job
does not have enough information to know whether the client-to-Squid connection
should be closed; the job keeps the connection open. When the reply is nil,
that open connection becomes unusable, leading to more problems.

This patch fixes the Ftp::Server::handleReply() to handle exceptions,
including closing the connections in the case of an exception. It also
adds Must(reply) checks to check for nil HttpReply pointers where the
reply is required. Eventually, Store should start using async calls to
protect jobs waiting for Store updates. Meanwhile, this should help.

This is a Measurement Factory project.

9 years agoDocs: Release Notes update for 4.0
Amos Jeffries [Tue, 18 Aug 2015 15:13:58 +0000 (03:13 +1200)] 
Docs: Release Notes update for 4.0

* Document C++11 requirement for compilers.

* Document ICAPS support

* Document Elliptic Curve Diffi-Hellman updates

* Document SMP updates affecting feature availability

Also, some squid.conf.documented updates for new features:

* Update icap_service TLS options to replace "ssl" prefix with "tls-"
  on newly added options.

* Remove icap_service 'sslcapath=' option from public display.
 It is still supported, but not very portable outside OpenSSL so
 do not encourage use at this time.

9 years agoSourceFormat Enforcement
Source Maintenance [Mon, 17 Aug 2015 12:12:10 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoIgnore impossible SSL bumping actions, as intended and documented.
Christos Tsantilas [Mon, 17 Aug 2015 07:16:17 +0000 (10:16 +0300)] 
Ignore impossible SSL bumping actions, as intended and documented.

According to Squid wiki: "Some actions are not possible during
certain processing steps. During a given processing step, Squid
ignores ssl_bump lines with impossible actions". The distributed
squid.conf.documented has similar text.

Current Squid violates the above rule. Squid considers all actions,
and if an impossible action matches first, Squid guesses what the
true configuration intent was. Squid may guess wrong. For example,
depending on the transaction, Squid may guess that a matching
stare or peek action during bumping step3 means "bump", breaking
peeked connections that cannot be bumped.

This unintended but gross configuration semantics violation remained
invisible until bug 4237, probably because most configurations in
most environments either worked around the problem (where admins
experimented to "make it work") or did not result in visible
errors (where Squid guesses did not lead to terminated connections).

While configuration workarounds are possible, the current
implementation is very wrong and leads to overly complex and, hence,
often wrong configurations. It is also nearly impossible to document
accurately because the guessing logic depends on too many factors.

To fix this, we add an action filtering/banning mechanism to Squid
ACL code. This mechanism is then used to:
  - ban client-first and server-first on bumping steps 2 and 3.
  - ban peek and stare actions on bumping step 3.
  - ban splice on step3 if stare is selected on step2 and
    Squid cannot splice the SSL connection any more.
  - ban bump on step3 if peek is selected on step2 and
    Squid cannot bump the connection any more.

The same action filtering mechanism may be useful for other
ACL-driven directives with state-dependent custom actions.

This change adds a runtime performance overhead of a single virtual
method call to all ORed ACLs that do not use banned actions.
That method itself just returns false unless the ACL represents
a whole directive rule. In the latter case, an std::vector size()
is also checked. It is possible to avoid this overhead by adding
a boolean "I may ban actions" flag to Acl::OrNode, but we decided
the small performance harm is not worth the extra code to set
that flag.

This is a Measurement Factory project.

9 years agoBug 4285 partial: %us is not supported in access.log
Amos Jeffries [Sun, 16 Aug 2015 09:19:21 +0000 (02:19 -0700)] 
Bug 4285 partial: %us is not supported in access.log

9 years agoBug 4302: IPFilter v5 transparent interception
Amos Jeffries [Sun, 16 Aug 2015 07:56:20 +0000 (00:56 -0700)] 
Bug 4302: IPFilter v5 transparent interception

9 years agoDocs: update intercept/tproxy related text
Amos Jeffries [Sun, 16 Aug 2015 07:45:04 +0000 (00:45 -0700)] 
Docs: update intercept/tproxy related text

9 years agoSourceFormat Enforcement
Source Maintenance [Thu, 13 Aug 2015 00:12:11 +0000 (00:12 +0000)] 
SourceFormat Enforcement