]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
9 years ago4.0.5 SQUID_4_0_5
Amos Jeffries [Wed, 10 Feb 2016 06:56:37 +0000 (19:56 +1300)] 
4.0.5

9 years agoBug 4429: http(s)_port options= error message missing characters
Amos Jeffries [Tue, 9 Feb 2016 13:35:45 +0000 (02:35 +1300)] 
Bug 4429: http(s)_port options= error message missing characters

9 years agoCleanup: convenience library renaming
Amos Jeffries [Tue, 9 Feb 2016 08:57:33 +0000 (21:57 +1300)] 
Cleanup: convenience library renaming

I have been trying to automate graphing of the Squid internal
dependencies. One of the major issues that has encountered is that some
of our convenience libraries use the '-' hyphen character which is a
reserved character in DOT graph format.

To make the scripts much simpler and the visual output reflect exactly
what the library names are this patch cleans up the libraries to follow
our pre-existing policy, and now also to remove punctuation from library
names. Which condition has been added to the guidelines documentation.

9 years agoSourceFormat Enforcement
Source Maintenance [Mon, 8 Feb 2016 18:12:05 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoFixed step3 splicing.
Christos Tsantilas [Mon, 8 Feb 2016 17:44:43 +0000 (19:44 +0200)] 
Fixed step3 splicing.

The information about PeekingPeerConnector splicing the connections
was lost in some cases, resulting in two different bugs:

 - With a certificate validator, the PeekingPeerConnector class calls
   back FwdState, which calls the ConnStateData class, which then tries
   secure the connection with the already tunneled SSL client and
   closes the connection on negotiating errors.

 - Without a certificate validator, the PeekingPeerConnector class
   never calls FwdState class, and both PeekingPeerConnector and
   FwdState objects stall until finishing tunnelState closes server
   and client connections.

Now, PeerConnector always calls FwdState back, marking spliced
connections as such. This has the following positive side-effects:

 - When FwdState learns about spliced connections, it does not call
   ConnStateData back. Instead, it terminates and gets destroyed.
   The tunnel continues uninterrupted.

 - The PeekingPeerConnector job ends and is destroyed instead of
   waiting to call FwdState.

This is a Measurement Factory project.

9 years agoDocs: fix incorrect ssl_bump example
Amos Jeffries [Sun, 7 Feb 2016 01:31:05 +0000 (14:31 +1300)] 
Docs: fix incorrect ssl_bump example

9 years agoCleanup: remove several C-style casts from libcompat
Amos Jeffries [Fri, 5 Feb 2016 10:53:29 +0000 (23:53 +1300)] 
Cleanup: remove several C-style casts from libcompat

9 years agoBug 4419: SIGSEGV crash in HierarchyLogEntry::note after r14505
Amos Jeffries [Tue, 2 Feb 2016 21:35:33 +0000 (10:35 +1300)] 
Bug 4419: SIGSEGV crash in HierarchyLogEntry::note after r14505

9 years agoFix external_acl problems after trunk r14351
Christos Tsantilas [Tue, 2 Feb 2016 15:39:23 +0000 (17:39 +0200)] 
Fix external_acl problems after trunk r14351
(Support logformat %macros in external_acl_type format).

The above changes created the following problems:
 - external_acl requires AccessLogEntry but ALE is not available
   in many cases such as ssl_bump ACLs.
 - The %<cert_subject stopped working because it was supported by
   external_acl code and not by logformat code.

This patch:
  - Passes AccessLogEntry in most cases.
    For example, PeerConnector-related classes are now covered.
  - Implements the %<cert_subject formating code for logformat.

This is a Measurement Factory project.

9 years agoAdd missed file rename for ssl_crtd.cc
Amos Jeffries [Tue, 2 Feb 2016 06:58:18 +0000 (19:58 +1300)] 
Add missed file rename for ssl_crtd.cc

9 years agoFix various build issues in security helpers
Amos Jeffries [Tue, 2 Feb 2016 06:35:09 +0000 (19:35 +1300)] 
Fix various build issues in security helpers

* Fix incorrect build of security_file_certgen helper when OpenSSL disabled

* Remove unnecessary '-helper' from --enable-security-cert-validator-helpers

9 years agoSourceLayout: rename ssl_crtd helper to security_file_certgen
Amos Jeffries [Mon, 1 Feb 2016 11:52:03 +0000 (00:52 +1300)] 
SourceLayout: rename ssl_crtd helper to security_file_certgen

* Add --enable-security-cert-generators="..." option to build
  sslcrtd_program helpers

* Separate --enable-ssl-crtd from helper build and install

* Shuffle ssl_crtd to src/security/cert_generators and rename
  to reflect its helper interface and filesystem backend.

Squid binary or helper binary logic changes in this. Just
./configure build system logic changes.

9 years agoSourceFormat Enforcement
Source Maintenance [Mon, 1 Feb 2016 06:11:54 +0000 (06:11 +0000)] 
SourceFormat Enforcement

9 years agoAdd missing include after rev.14518
Amos Jeffries [Mon, 1 Feb 2016 04:09:11 +0000 (17:09 +1300)] 
Add missing include after rev.14518

9 years agoSourceLayout: rename ClientSocketContext to Http::Stream
Amos Jeffries [Sun, 31 Jan 2016 12:05:30 +0000 (01:05 +1300)] 
SourceLayout: rename ClientSocketContext to Http::Stream

 ... and provided through http/libsquid-http.la.

The name is chosen to match the RFC7540 HTTP/2 "stream" terminology.
Which defines a stream as a bi-directional transaction, including request,
reply and all related 1xx informational and/or control messages.

That same word "stream" is also used in RFC7230 briefly to describe the
same "transaction" scope and details. But not formalized until RFC7540.

Http::Stream's may be initiated by a client HTTP request, Squid internally,
or in HTTP/2 a server PUSH_PROMISE frame.

There are no logic changes in this. Just symbol renaming and move.

9 years agoSourceFormat Enforcement
Source Maintenance [Sat, 30 Jan 2016 12:11:55 +0000 (12:11 +0000)] 
SourceFormat Enforcement

9 years agoSourceLayout: merge helpers/ into src/
Amos Jeffries [Sat, 30 Jan 2016 10:41:37 +0000 (23:41 +1300)] 
SourceLayout: merge helpers/ into src/

* Move helpers/basic_auth/ into src/auth/basic/

* Move helpers/digest_auth/ into src/auth/digest/

* Move helpers/external_acl/ into src/acl/external/

* Move helpers/log_daemon/ into src/log/

* Move helpers/negotiate_auth/ into src/auth/negotiate/

* Move helpers/ntlm_auth/ into src/auth/ntlm/

* Move helpers/storeid_rewrite/ into src/store/id_rewriters/

* Move helpers/url_rewrite/ into src/http/url_rewriters/

* Rename helpers/defines.h to src/helper/protocol_defines.h

9 years agoRemove helpers reference from top Makefile.am
Amos Jeffries [Sat, 30 Jan 2016 09:09:25 +0000 (22:09 +1300)] 
Remove helpers reference from top Makefile.am

9 years agoMove helpers/defines.h to src/helper/protocol_defines.h
Amos Jeffries [Sat, 30 Jan 2016 06:24:40 +0000 (19:24 +1300)] 
Move helpers/defines.h to src/helper/protocol_defines.h

9 years agoUpdate CREDITS filenames
Amos Jeffries [Sat, 30 Jan 2016 06:19:19 +0000 (19:19 +1300)] 
Update CREDITS filenames

9 years agoSourceLayout: move URL rewriters to src/http/url_rewriters/
Amos Jeffries [Sat, 30 Jan 2016 06:06:40 +0000 (19:06 +1300)] 
SourceLayout: move URL rewriters to src/http/url_rewriters/

9 years agoSourceLayout: move Store-ID helpers to src/store/id_rewriters/
Amos Jeffries [Sat, 30 Jan 2016 05:42:22 +0000 (18:42 +1300)] 
SourceLayout: move Store-ID helpers to src/store/id_rewriters/

9 years agoSourceLayout: move external ACL helpers to src/acl/external/
Amos Jeffries [Sat, 30 Jan 2016 05:13:24 +0000 (18:13 +1300)] 
SourceLayout: move external ACL helpers to src/acl/external/

9 years agoRemove .bzrignore entry for obsolete helper files
Amos Jeffries [Sat, 30 Jan 2016 04:43:50 +0000 (17:43 +1300)] 
Remove .bzrignore entry for obsolete helper files

9 years agoSourceLayout: move Basic auth helpers to src/auth/basic/
Amos Jeffries [Sat, 30 Jan 2016 04:34:57 +0000 (17:34 +1300)] 
SourceLayout: move Basic auth helpers to src/auth/basic/

9 years agoSourceLayout: move Digest auth helpers to src/auth/digest/
Amos Jeffries [Sat, 30 Jan 2016 03:27:53 +0000 (16:27 +1300)] 
SourceLayout: move Digest auth helpers to src/auth/digest/

9 years agoRemove obsolete helpers/ pieces
Amos Jeffries [Fri, 29 Jan 2016 18:46:38 +0000 (07:46 +1300)] 
Remove obsolete helpers/ pieces

9 years agoSourceLayout: move Negotiate auth helpers to src/auth/negotiate/
Amos Jeffries [Fri, 29 Jan 2016 18:42:25 +0000 (07:42 +1300)] 
SourceLayout: move Negotiate auth helpers to src/auth/negotiate/

9 years agoSourceLayout: move NTLM helpers to src/auth/ntlm/
Amos Jeffries [Fri, 29 Jan 2016 18:16:17 +0000 (07:16 +1300)] 
SourceLayout: move NTLM helpers to src/auth/ntlm/

9 years agoSourceLayout: move log daemon helpers to src/log/
Amos Jeffries [Fri, 29 Jan 2016 17:10:20 +0000 (06:10 +1300)] 
SourceLayout: move log daemon helpers to src/log/

9 years agoSync with trunk rev.14515
Amos Jeffries [Fri, 29 Jan 2016 12:51:27 +0000 (01:51 +1300)] 
Sync with trunk rev.14515

9 years agoSourceLayout: rename cert_valid.pl to security_fake_certverify
Amos Jeffries [Fri, 29 Jan 2016 12:49:28 +0000 (01:49 +1300)] 
SourceLayout: rename cert_valid.pl to security_fake_certverify

* creates src/security/cert_validators/ for certificate validation helpers.
  To distinguish from certificate generator helpers which would be in
  src/security/cert_generators/.

* renames cert_valid.pl to securiy_fake_certverify inline with the helper
  naming schema.

* moves helpers/ssl/ to src/security/cert_validators/fake/ as it is the fake
  helper.
 - building the man(8) documentation that was missing previously.

* adds a ./configure option --enable-security-cert-validator-helpers= to allow
  the bundled certverify helper(s) to be managed at build time just like any other.
 - this involves addition of the modules.m4, requires.m4 and Makefile.am
  infrastructire that helpers/ssl/ was previously lacking.

9 years agoUpdate docs
Amos Jeffries [Thu, 28 Jan 2016 17:14:47 +0000 (06:14 +1300)] 
Update docs

9 years agoRename ./certv to ./cert_validators and _certv to _certverify
Amos Jeffries [Thu, 28 Jan 2016 16:49:12 +0000 (05:49 +1300)] 
Rename ./certv to ./cert_validators and _certv to _certverify

9 years agoFix crtv / certv typos
Amos Jeffries [Thu, 28 Jan 2016 12:45:21 +0000 (01:45 +1300)] 
Fix crtv / certv typos

9 years agoSync CREDITS with cert_valid.pl changes
Amos Jeffries [Thu, 28 Jan 2016 11:19:35 +0000 (00:19 +1300)] 
Sync CREDITS with cert_valid.pl changes

9 years agoMissing configure.ac changes
Amos Jeffries [Thu, 28 Jan 2016 11:17:39 +0000 (00:17 +1300)] 
Missing configure.ac changes

9 years agoReleae notes update for --enable-security-certv-helpers and cert_valid.pl changes
Amos Jeffries [Thu, 28 Jan 2016 11:14:52 +0000 (00:14 +1300)] 
Releae notes update for --enable-security-certv-helpers and cert_valid.pl changes

9 years agoRename cert_valid.pl helper to security_fake_crtv
Amos Jeffries [Thu, 28 Jan 2016 11:02:42 +0000 (00:02 +1300)] 
Rename cert_valid.pl helper to security_fake_crtv

Also, shuffles the helper to the src/security/ area and creates necessary
infrastructure for bundling other certificate verifier helpers.

9 years agoBug 4418: FlexibleArray compile error with GCC 6
Alex Rousskov [Thu, 28 Jan 2016 10:20:28 +0000 (23:20 +1300)] 
Bug 4418: FlexibleArray compile error with GCC 6

9 years agoFixed cleanup of a shared memory segment in an unusual configuration.
Alex Rousskov [Thu, 28 Jan 2016 01:49:55 +0000 (18:49 -0700)] 
Fixed cleanup of a shared memory segment in an unusual configuration.

Squid was not removing squid-squid-page-pool.shm at exit when started
in non-daemon mode (-N). That segment is used in non-SMP mode if
memory_cache_shared is explicitly set to "on" (an unusual
configuration primarily useful for testing).

9 years agoFixed handling of shared memory left over by Squid crashes or bugs.
Markus Mayer [Thu, 28 Jan 2016 01:30:37 +0000 (18:30 -0700)] 
Fixed handling of shared memory left over by Squid crashes or bugs.

A Squid instance may inherit an old shared memory segment from the
previous instance as the result of either a Squid crash or an at-exit
cleanup bug. This change fixes two problems triggered by old segments:

1. After an earlier OS X fix (bug 3805; trunk r13947), Squid stopped
   initializing previously used shared memory. Uninitialzed memory
   resulted in subtle bugs and crashes.

2. When called for an old Squid shared memory segment, OS X
   ftruncate() fails with EINVAL, preventing Squid from starting when
   the old segment is still around.

   More specifically: Darwin ftruncate() calls pshm_truncate().
   pshm_truncate() checks if the PSHM_ALLOCATED flag is already set on
   the memory region. If the flag is set, the call fails with EINVAL.
   Otherwise, pshm_truncate() sets PSHM_ALLOCATED for the region.
   Since Squid must call ftruncate() to size every new segment, all
   old Squid segments have that flag set, preventing ftruncate() calls
   for old segments in newer Sqid instances from succeeding.

   [1] http://www.opensource.apple.com/source/xnu/xnu-3248.20.55/bsd/kern/posix_shm.c

To fix both problems, Squid now uses shm_open(O_EXCL) to detect the
existence of an old segment and remove/recreate it as needed.

9 years agoSourceFormat Enforcement
Source Maintenance [Wed, 27 Jan 2016 18:12:08 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoSourceLayout: shuffle PeerConnector classes to separate units
Amos Jeffries [Wed, 27 Jan 2016 16:56:38 +0000 (05:56 +1300)] 
SourceLayout: shuffle PeerConnector classes to separate units

9 years agoCleanup: remove last SSL_CTX_Pointer uses
Amos Jeffries [Wed, 27 Jan 2016 04:41:56 +0000 (17:41 +1300)] 
Cleanup: remove last SSL_CTX_Pointer uses

9 years agoCleanup: update TLS session pointer types
Amos Jeffries [Tue, 26 Jan 2016 21:02:00 +0000 (10:02 +1300)] 
Cleanup: update TLS session pointer types

* rename SSL* pointer to Security::SessionPtr and SSL_Pointer to
  SessionPointer as the smart pointer variant. Matching the model
  designed for TLS context storage.

* update fd_table .ssl member to a SessionPointer for safer session
  pointer deallocation.

* migrate most uses of SSL* to Securit::SessionPtr or auto

9 years agoSourceFormat Enforcement
Source Maintenance [Mon, 25 Jan 2016 18:12:09 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoInvalid FTP connection handling on blocked content.
Christos Tsantilas [Mon, 25 Jan 2016 17:54:50 +0000 (19:54 +0200)] 
Invalid FTP connection handling on blocked content.

FTP client gets stuck after the following chain of events:
 * Client requests a file that will be blocked by ICAP.
 * Squid starts downloading the file from the FTP server
   and sends "150 Opening..." to the FTP client.
 * Squid aborts the data connection with the FTP server
   as soon as the ICAP service blocks it.
 * Squid sends "451 Forbidden" to the FTP client.
 * The FTP server sends "500 OOPS: setsockopt: linger" to Squid.
 * Squid terminates the control connection to the FTP server.
 * Squid establishes a new control connection to the FTP server
   but does not authenticate itself.
 * Further commands from the FTP client do not work any more.

The above and many similar problems exist because Squid handles
FTP client-to-squid and squid-to-FTP server data connections
independently from each other. In many cases, one connection does
not get notified about the problems with the other connection.

This patch:
  - Add Ftp::MasterState::userDataDone to record received
    the FTP client final response status code to sent (or to be send)
    to the client.
  - The Ftp::MasterState::waitForOriginData flag to hold status of the
    squid-to-server side. If the squid-to-server side is not finishes
    yet this is true.
  - Send a control reply to the FTP client only after the data transfered
    on both server and client sides.
  - Split Client::abortTransaction to Client::abortOnData and to
    Client::abortAll()
  - Implement the Ftp::Relay::abortOnData() and Ftp::Relay::Abort()
    (i.e., StoreEntry abort handler) to avoid closing the control
    connection when the data connection is closed unexpectedly.

This is a Measurement Factory project.

9 years agoMake %<a and %<p details available to [eCAP] RESPMOD services
Eduard Bagdasaryan [Mon, 25 Jan 2016 08:26:32 +0000 (21:26 +1300)] 
Make %<a and %<p details available to [eCAP] RESPMOD services

... via adaptation_meta.

This patch fills access log entry with server connection
details as soon as possible. Previously, ALE was updated only
in prepareLogWithRequestDetails() when adaptation process has
already finished.

9 years agoRename Http::StreamContext to Http::Stream
Amos Jeffries [Sun, 24 Jan 2016 17:41:43 +0000 (06:41 +1300)] 
Rename Http::StreamContext to Http::Stream

9 years agoRevert Pipeline ID logic changes
Amos Jeffries [Sun, 24 Jan 2016 17:21:02 +0000 (06:21 +1300)] 
Revert Pipeline ID logic changes

9 years agoBug 4409: compile error when two Heimdal libraries are installed
Amos Jeffries [Sun, 24 Jan 2016 01:18:43 +0000 (14:18 +1300)] 
Bug 4409: compile error when two Heimdal libraries are installed

9 years agoBug 4410: 4.0.4 compile error in basic_ncsa_auth
Amos Jeffries [Sun, 24 Jan 2016 00:45:30 +0000 (13:45 +1300)] 
Bug 4410: 4.0.4 compile error in basic_ncsa_auth

9 years agoSourceFormat Enforcement
Source Maintenance [Fri, 22 Jan 2016 18:12:10 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoName-only note ACL stopped matching after trunk r14465 (note -m).
Christos Tsantilas [Fri, 22 Jan 2016 14:57:46 +0000 (16:57 +0200)] 
Name-only note ACL stopped matching after trunk r14465 (note -m).

Despite this fix, empty ACLStringData values (also used for myportname,
peername, tag, and other ACLs) must [continue to] match nothing because
Squid ORs acl values. In math, empty disjunction is false.

The note ACL matches name:value entries, not bare values. A valueless
name has a different semantics than an empty list of bare values. It is

  (name and value1) or (name and value2)

rather than

  name and (value1 or value2)

where an empty value disjunction would have falsified the whole
condition.

This is a Measurement Factory project.

9 years agoTests: Add --action parameter for testing script
Amos Jeffries [Mon, 18 Jan 2016 13:40:42 +0000 (02:40 +1300)] 
Tests: Add --action parameter for testing script

This command line option allows automake target to be provided as an
override to the target specified in the test build scripts. With this a
partial test can be run for all specified layers rather than a full
distcheck which can be quite slow.

9 years agoAdd missing stubs after rev.14494
Amos Jeffries [Sat, 16 Jan 2016 14:35:28 +0000 (03:35 +1300)] 
Add missing stubs after rev.14494

9 years agoAdd missing tests/stub_libmem.cc
Amos Jeffries [Sat, 16 Jan 2016 10:57:37 +0000 (23:57 +1300)] 
Add missing tests/stub_libmem.cc

9 years agoAdd missing stub_debug.cc
Amos Jeffries [Sat, 16 Jan 2016 10:42:02 +0000 (23:42 +1300)] 
Add missing stub_debug.cc

9 years agoAdd missing library link after rev.14494
Amos Jeffries [Fri, 15 Jan 2016 19:55:40 +0000 (08:55 +1300)] 
Add missing library link after rev.14494

9 years agoCert validadator fix: Currently it is always disabled
Christos Tsantilas [Fri, 15 Jan 2016 18:34:09 +0000 (20:34 +0200)] 
Cert validadator fix: Currently it is always disabled

9 years agoSourceFormat Enforcement
Source Maintenance [Fri, 15 Jan 2016 12:12:15 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoBug 4005: Dynamic certificate cache exceeds dynamic_cert_mem_cache_size
Amos Jeffries [Fri, 15 Jan 2016 06:57:17 +0000 (19:57 +1300)] 
Bug 4005: Dynamic certificate cache exceeds dynamic_cert_mem_cache_size

* disable the use of system CA by default to verify client connection
  certificates. Since the use of client certificates is rare.

* no change to verification of upstream server or peer certificates.
  Since the use of system CA to sign server certificates is common.

* the new "default-ca" configuration option and its documentation are
  updated to make the situation more obvious amongst the other TLS options
  changes in Squid-4.

* the action of the sslflags=NO_DEFAULT_CA is already deprecated, so no
  change when it is used. On port lines it now merely sets the default.

It may be a good idea to also disable system CA use for cache_peer and
ICAPS connections. For now they are left unchanged.

9 years agoSourceLayout: C++11 upgrade for class YesNoNone
Amos Jeffries [Fri, 15 Jan 2016 06:47:59 +0000 (19:47 +1300)] 
SourceLayout: C++11 upgrade for class YesNoNone

* shuffles YesNoNone file to src/base/

* converts C++03 hacked 'bool' converter to a proper bool()
  operator.

* adds support for implicit defaults as will as explicit
  squid.conf settings.

* adds unit tests for YesNoNone

9 years agoSource maintenance polish
Amos Jeffries [Thu, 14 Jan 2016 13:17:11 +0000 (02:17 +1300)] 
Source maintenance polish

9 years agoSourceFormat Enforcement
Source Maintenance [Wed, 13 Jan 2016 12:12:11 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoAdd connections_encrypted ACL part3: fix compiling problems
Christos Tsantilas [Wed, 13 Jan 2016 11:23:50 +0000 (13:23 +0200)] 
Add connections_encrypted ACL part3: fix compiling problems

The new acl/ConnectionsEncrypted.[cc,h] files should compiled even if
the ssl is not enabled.

9 years agoBug 4378: assertion failed: DestinationIp.cc:60: 'checklist->conn() && checklist...
Eduard Bagdasaryan [Wed, 13 Jan 2016 10:29:32 +0000 (23:29 +1300)] 
Bug 4378: assertion failed: DestinationIp.cc:60: 'checklist->conn() && checklist->conn()->clientConnection != NULL'

9 years agoAdd connections_encrypted ACL part2: add missing files
Christos Tsantilas [Wed, 13 Jan 2016 10:15:33 +0000 (12:15 +0200)] 
Add connections_encrypted ACL part2: add missing files

The src/acl/ConnectionsEncrypted.[cc,h] files forgotten while the patch
applieded to trunk.

9 years agoAdd connections_encrypted ACL
Christos Tsantilas [Wed, 13 Jan 2016 10:10:20 +0000 (12:10 +0200)] 
Add connections_encrypted ACL

The new connections_encrypted ACL matches transactions where all HTTP
messages were received over TLS transport connections, including messages
received from ICAP servers.

Some ICAP/eCAP services receive data from unencrypted sources. Some ICAP/eCAP
services are "secure". By default we assume that all eCAP services and all
ICAP services on TLS transport connections  are "secure" unless the user
uses the "connection_encryption" option in service configuration line.

This is a Measurement Factory project.

9 years agoFix tls/ssl flags parsing
Christos Tsantilas [Tue, 12 Jan 2016 17:35:06 +0000 (19:35 +0200)] 
Fix tls/ssl flags parsing

Tls flags listed using the [tls-|tls|ssl]flags option are not configured
correctly. In practice always the SSL_FLAG_NO_DEFAULT_CA even if no
selected and all other flags are ingored

9 years agoBug 4403: helper compile errors after rev.14454
Eliezer Croitoru [Mon, 11 Jan 2016 09:23:06 +0000 (22:23 +1300)] 
Bug 4403: helper compile errors after rev.14454

9 years agoAdd missing includes in delay pool
Amos Jeffries [Sun, 10 Jan 2016 23:02:09 +0000 (12:02 +1300)] 
Add missing includes in delay pool

9 years agoAdd missing include Store.h
Amos Jeffries [Sun, 10 Jan 2016 16:24:45 +0000 (05:24 +1300)] 
Add missing include Store.h

9 years agoupdate client_side.h stub file
Amos Jeffries [Sat, 9 Jan 2016 18:44:29 +0000 (07:44 +1300)] 
update client_side.h stub file

9 years agoShuffle Http::StreamContext methods to libsquid-http.la
Amos Jeffries [Sat, 9 Jan 2016 17:09:01 +0000 (06:09 +1300)] 
Shuffle Http::StreamContext methods to libsquid-http.la

9 years agoSupport HTTP/2 multiplex stream ID mechanism in pipeline management
Amos Jeffries [Fri, 8 Jan 2016 20:13:40 +0000 (09:13 +1300)] 
Support HTTP/2 multiplex stream ID mechanism in pipeline management

* Add stream ID member to contexts. Set by the connection Server.

* Use stream ID to clear pipeline entries when contexts finish. Removing
  HTTP/1.x sequential processing assumptions.

9 years agoBug 4401: compile error on Solaris
Eduard Bagdasaryan [Fri, 8 Jan 2016 05:49:15 +0000 (18:49 +1300)] 
Bug 4401: compile error on Solaris

9 years agoShuffle ClientSocketContext to Http::StreamContext
Amos Jeffries [Thu, 7 Jan 2016 18:03:32 +0000 (07:03 +1300)] 
Shuffle ClientSocketContext to Http::StreamContext

9 years ago4.0.4 SQUID_4_0_4
Amos Jeffries [Wed, 6 Jan 2016 16:10:48 +0000 (05:10 +1300)] 
4.0.4

9 years agoPrep for 4.0.4 and 3.5.13
Amos Jeffries [Wed, 6 Jan 2016 14:18:40 +0000 (03:18 +1300)] 
Prep for 4.0.4 and 3.5.13

9 years agonegotiate_kerberos_auth: check for overflow on count of group SIDs
Amos Jeffries [Wed, 6 Jan 2016 04:02:24 +0000 (17:02 +1300)] 
negotiate_kerberos_auth: check for overflow on count of group SIDs

When processing a Kerberos token the count of group SID records is
received from the remote end. Validate that the count given does not
exceed the possible length values on 32-bit systems.
 Detected by Coveriity Scan. Issues 12587011258702,1258703

9 years agobasic_ncsa_auth: reduce use of std::string::c_str()
Amos Jeffries [Wed, 6 Jan 2016 03:15:12 +0000 (16:15 +1300)] 
basic_ncsa_auth: reduce use of std::string::c_str()

This should also reduce issues with c_str() escaping and variable scope
"use after free" identified by Coverity Scan issue #1347000

9 years agoRevert wrong changes incorrectly added to r14477
Amos Jeffries [Tue, 5 Jan 2016 13:00:50 +0000 (02:00 +1300)] 
Revert wrong changes incorrectly added to r14477

9 years agoSourceFormat Enforcement
Source Maintenance [Tue, 5 Jan 2016 12:12:09 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoSsl::CertValidationHelper::sslSubmit: Assure that the callback->getDialer()
Christos Tsantilas [Tue, 5 Jan 2016 11:02:19 +0000 (13:02 +0200)] 
Ssl::CertValidationHelper::sslSubmit: Assure that the callback->getDialer()
return non NULL before use the result

Detected by Coverity Scan. Issue 1346998

9 years agoSsl::CertValidationResponse::RecvdError::error_depth may used uninitialized
Christos Tsantilas [Tue, 5 Jan 2016 10:55:14 +0000 (12:55 +0200)] 
Ssl::CertValidationResponse::RecvdError::error_depth may used uninitialized

The Ssl::CertValidationResponse::RecvdError::error_depth is not initialized
inside copy constructor and inside "=" operator.

This class member added with the patch 14443:
    "%ssl::<cert_errors logformat code part2: provide depth information"

Detected by Coverity Scan. Issue 1346999

9 years agoBug 4393: compile fails on OS X
Francesco Chemolli [Tue, 5 Jan 2016 10:35:51 +0000 (23:35 +1300)] 
Bug 4393: compile fails on OS X

Also fixes related issues with -latomic detection and linking
to binaries that do not use C++11 atomics.

9 years agoFix GnuTLS detection via pkg-config
Francesco Chemolli [Mon, 4 Jan 2016 14:39:06 +0000 (15:39 +0100)] 
Fix GnuTLS detection via pkg-config

9 years agoRevert non-CharacterSet changes from rev.14472
Amos Jeffries [Mon, 4 Jan 2016 05:52:47 +0000 (18:52 +1300)] 
Revert non-CharacterSet changes from rev.14472

9 years agoFix libatomic detection in configure.ac
Francesco Chemolli [Sun, 3 Jan 2016 10:45:27 +0000 (11:45 +0100)] 
Fix libatomic detection in configure.ac

9 years agoSourceFormat Enforcement
Source Maintenance [Sat, 2 Jan 2016 18:12:11 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoCharacterSet improvements: implement operators -=, +, -, ==, !=; implement c++11...
Francesco Chemolli [Sat, 2 Jan 2016 13:52:42 +0000 (14:52 +0100)] 
CharacterSet improvements: implement operators -=, +, -, ==, !=; implement c++11 ranges-constructor, add ostream output operator, and related unit tests.
Change build order in top-level Makefile.am so that src/ is built before helpers/

9 years agoSourceFormat Enforcement
Source Maintenance [Fri, 1 Jan 2016 06:11:55 +0000 (06:11 +0000)] 
SourceFormat Enforcement

9 years agoSourceFormat Enforcement
Source Maintenance [Fri, 1 Jan 2016 00:12:18 +0000 (00:12 +0000)] 
SourceFormat Enforcement

9 years agoReflect the [ugly] reality in external_acl_type cache=n documentation.
Alex Rousskov [Thu, 31 Dec 2015 03:32:59 +0000 (20:32 -0700)] 
Reflect the [ugly] reality in external_acl_type cache=n documentation.

The patch does not change how the cache works, but may help admins
configure the cache correctly if they stumble upon the updated docs.

A typical external ACL cache with the default cache settings consumes
about 70 MB of RAM (more in many cases, e.g., if annotations are used
with external ACLs). Besides memory usage, the default cache is using
only 977 hash buckets for 262144 entries so there may be quite a bit
of linear search going on by default.

9 years agoMigrate basic_ncsa_auth from squid has to std:: containers
Francesco Chemolli [Mon, 28 Dec 2015 11:14:42 +0000 (12:14 +0100)] 
Migrate basic_ncsa_auth from squid has to std:: containers

9 years agoWorkaround for build regression introduced in r14458
Francesco Chemolli [Sun, 27 Dec 2015 14:20:16 +0000 (15:20 +0100)] 
Workaround for build regression introduced in r14458

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

9 years agoNote ACL substrings matching
Christos Tsantilas [Thu, 24 Dec 2015 06:57:04 +0000 (08:57 +0200)] 
Note ACL substrings matching

There are several use cases where an annotation may contain a list of values
for a single key. Today it is only possible to match the full annotation value.

This patch investigates the -m flag which can be used to enable delimiter
separated substrings matching on annotations:
   acl aclname note [-m[=delimiters]] name value ...
The '-m' flag by default matches comma separated substrings. The optional
"delimiters" parameter is a list of non-alphanumeric characters, which can
be used as alternate delimiters.

E.g. if an external ACL sets an annotation like:
   "applications=http,facebook,facebook-chat"
the following ACLs can be used to block access to certain applications:

acl fb_chat      note -m applications facebook-chat
acl db_upload    note -m  applications dropbox-upload
http_access      deny fb_chat
http_access      deny db_upload

This is a Measurement Factory project