]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
9 years agoInterim: removed needless spacing and c++ guards, started fixing DelayTagged accessin...
Francesco Chemolli [Fri, 2 Jan 2015 15:46:35 +0000 (16:46 +0100)] 
Interim: removed needless spacing and c++ guards, started fixing DelayTagged accessing SplayNodes, prevented Splay leaks on several ACL types

9 years agoMerged from trunk
Francesco Chemolli [Fri, 2 Jan 2015 13:37:05 +0000 (14:37 +0100)] 
Merged from trunk

9 years agoRemoved some never-true assertions
Francesco Chemolli [Fri, 2 Jan 2015 13:32:49 +0000 (14:32 +0100)] 
Removed some never-true assertions

clang uncovered several conditionals which could never be true.
Removed the conditionals entirely.

9 years agoBug 3664: ssl_crtd fails to build on OpenSolaris/OpenIndiana/Solaris 11
Andrew Evdokimov [Fri, 2 Jan 2015 13:20:24 +0000 (05:20 -0800)] 
Bug 3664: ssl_crtd fails to build on OpenSolaris/OpenIndiana/Solaris 11

9 years agoBug 3754: configure doesnt detect IPFilter 5.1.2 system headers
Amos Jeffries [Fri, 2 Jan 2015 13:15:24 +0000 (05:15 -0800)] 
Bug 3754: configure doesnt detect IPFilter 5.1.2 system headers

Solaris 10+ bundles IPFilter code natively, but the IPFilter
headers contain a duplicate definition of minor_t which does
not match the existing OS definition.

The result is that no applications (such as Squid) will build
on Solaris with the natively provided headers.

Also, the upstream IPFilter code separate from Solaris contains
the same minor_t definition so building against a separate
install of IPFilter does not fix the issue.

We must instead play fancy games #define'ing minor_t to a
different real-name for the OS headers and its own name for
the IPFilter headers.

 Thanks to Yuri Voinov for sponsoring the Solaris 10
 machine and environment resources for this fix.

9 years agoRemoved now useless assertions
Francesco Chemolli [Fri, 2 Jan 2015 10:08:20 +0000 (11:08 +0100)] 
Removed now useless assertions

9 years agoFixed unit tests
Francesco Chemolli [Fri, 2 Jan 2015 10:02:05 +0000 (11:02 +0100)] 
Fixed unit tests

9 years agoFixed Splay::insert
Francesco Chemolli [Fri, 2 Jan 2015 10:00:35 +0000 (11:00 +0100)] 
Fixed Splay::insert

9 years agoMerged from trunk
Francesco Chemolli [Fri, 2 Jan 2015 09:07:07 +0000 (10:07 +0100)] 
Merged from trunk

9 years agoAdded correct NULL check in Splay::find
Francesco Chemolli [Fri, 2 Jan 2015 09:04:54 +0000 (10:04 +0100)] 
Added correct NULL check in Splay::find

9 years agoRemoved useless C symbols
Francesco Chemolli [Fri, 2 Jan 2015 08:23:11 +0000 (09:23 +0100)] 
Removed useless C symbols

9 years agoSourceFormat Enforcement
Source Maintenance [Fri, 2 Jan 2015 06:12:06 +0000 (06:12 +0000)] 
SourceFormat Enforcement

9 years agoFix several uninitilized member issues
Amos Jeffries [Fri, 2 Jan 2015 04:13:30 +0000 (20:13 -0800)] 
Fix several uninitilized member issues

* Digest auth header field-value parser

* HTTP header statistics state data

* logformat parser token data

9 years agoRelease Notes: updates for MSNT helpers
Amos Jeffries [Fri, 2 Jan 2015 03:37:55 +0000 (19:37 -0800)] 
Release Notes: updates for MSNT helpers

9 years agoCleanup: fix most 'unused parameter' warnings
Amos Jeffries [Thu, 1 Jan 2015 08:57:18 +0000 (00:57 -0800)] 
Cleanup: fix most 'unused parameter' warnings

... and several bugs hidden by lack of this check:

* url_rewrite_timeout parser/dumper using wrong cf.data.pre
  parameter definition.

* url_rewrite_timeout parser/dumper using wrong object for
  state data.
  Global a Config object instead of parameter object.
  Preventing future use of multiple Config objects. There is
  more to be done as the Timeout value itself is not stored
  as part of the object apparently detailing the timeout.

* request_header_add directive dump() omitting directive
  name in mgr:config output.

* dead code as HTCP packet handlers for NOP, MON, SET

* mime icons download operation incorrectly initialized.
  was using the 'view' access parameter to set download
  access permission.

* peerCountHandleIcpReply() assertions testing validity
  after pointers already used. This would lead to segfault
  on errors, now leading to assertion logging.

Only the default built code was checked and updated at this
time. There are 62 known warnings still appearing due to
parameters being only used inside conditional code, possibly
more issues in code not enabled in this build and certainly
a lot more in the stubs and unit tests which were not checked.

9 years agoSplayNode::SPLAYFREE -> Splay::SPLAYFREE
Francesco Chemolli [Wed, 31 Dec 2014 08:51:04 +0000 (09:51 +0100)] 
SplayNode::SPLAYFREE -> Splay::SPLAYFREE

9 years agoSplayNode::SPLAYFREE -> Splay::SPLAYFREE
Francesco Chemolli [Wed, 31 Dec 2014 08:48:55 +0000 (09:48 +0100)] 
SplayNode::SPLAYFREE -> Splay::SPLAYFREE

9 years agoRestored splay NULL checks. Things break without them
Francesco Chemolli [Wed, 31 Dec 2014 08:45:23 +0000 (09:45 +0100)] 
Restored splay NULL checks. Things break without them

9 years agoFixed uninitialized data member in Acl::Ip
Francesco Chemolli [Wed, 31 Dec 2014 08:23:53 +0000 (09:23 +0100)] 
Fixed uninitialized data member in Acl::Ip

9 years agoFixed Acl::CertificateData
Francesco Chemolli [Wed, 31 Dec 2014 07:50:14 +0000 (08:50 +0100)] 
Fixed Acl::CertificateData

9 years agoMerged from trunk
Francesco Chemolli [Wed, 31 Dec 2014 07:34:12 +0000 (08:34 +0100)] 
Merged from trunk

9 years agontlm_sspi_auth: convert to new base64 API
Amos Jeffries [Wed, 31 Dec 2014 05:20:28 +0000 (21:20 -0800)] 
ntlm_sspi_auth: convert to new base64 API

9 years agonegotiate_sspi_auth: fix various build errors
Amos Jeffries [Wed, 31 Dec 2014 04:11:16 +0000 (20:11 -0800)] 
negotiate_sspi_auth: fix various build errors

* fix convenience library dependency detection

* convert to new base64 coding API

* remove goto's

9 years agobasic_sspi_auth: fix MinGW compile errors
Amos Jeffries [Wed, 31 Dec 2014 02:55:22 +0000 (18:55 -0800)] 
basic_sspi_auth: fix MinGW compile errors

9 years agolibsspwin32: update to new base64 API
Amos Jeffries [Wed, 31 Dec 2014 02:52:18 +0000 (18:52 -0800)] 
libsspwin32: update to new base64 API

9 years agoInterim: remove SplayNode this==NULL checks
Francesco Chemolli [Tue, 30 Dec 2014 23:12:49 +0000 (00:12 +0100)] 
Interim: remove SplayNode this==NULL checks

9 years agoCosmetic change in mem_hdr_test.cc
Francesco Chemolli [Tue, 30 Dec 2014 22:55:20 +0000 (23:55 +0100)] 
Cosmetic change in mem_hdr_test.cc

9 years agoFixed Acl::UserData
Francesco Chemolli [Tue, 30 Dec 2014 22:52:53 +0000 (23:52 +0100)] 
Fixed Acl::UserData

9 years agoCosmetic changes to src/stmem
Francesco Chemolli [Tue, 30 Dec 2014 22:39:43 +0000 (23:39 +0100)] 
Cosmetic changes to src/stmem

9 years agoFixed Acl::StringData
Francesco Chemolli [Tue, 30 Dec 2014 22:27:34 +0000 (23:27 +0100)] 
Fixed Acl::StringData

9 years agoFixed Acl::Ip
Francesco Chemolli [Tue, 30 Dec 2014 22:13:01 +0000 (23:13 +0100)] 
Fixed Acl::Ip

9 years agoFixed Acl::HttpStatus
Francesco Chemolli [Tue, 30 Dec 2014 21:58:43 +0000 (22:58 +0100)] 
Fixed Acl::HttpStatus

9 years agoFixed Eui::Eui64::encode stub
Francesco Chemolli [Tue, 30 Dec 2014 21:47:57 +0000 (22:47 +0100)] 
Fixed Eui::Eui64::encode stub

9 years agoSourceFormat Enforcement
Source Maintenance [Tue, 30 Dec 2014 18:12:05 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoMigrated acl/Eui64 to Splay
Francesco Chemolli [Tue, 30 Dec 2014 16:52:25 +0000 (17:52 +0100)] 
Migrated acl/Eui64 to Splay

9 years agoMigrated acl/DomainData to Splay
Francesco Chemolli [Tue, 30 Dec 2014 16:05:48 +0000 (17:05 +0100)] 
Migrated acl/DomainData to Splay

9 years agoFixed handling of invalid SSL server certificates when splicing connections.
Christos Tsantilas [Tue, 30 Dec 2014 15:33:40 +0000 (17:33 +0200)] 
Fixed handling of invalid SSL server certificates when splicing connections.

An unpatched Squid in peek-and-splice mode may splice connections after
receiving a malformed or unsupported SSL server Hello message. This may
happen even if sslproxy_cert_error tells Squid to honor the error. After
this change, Squid honors sslproxy_cert_error setting when:

* no server certificate was found and checked using Squid validation procedure
  (e.g., because the SSL server Hello response was malformed or unsupported); or
* Squid server certificate validation procedure has failed.

If the certificate error is not allowed, Squid terminates the server connection
and attempts to bump the client connection to deliver the error message to the
user.

This is a Measurement Factory project

9 years agoMerged from trunk
Francesco Chemolli [Tue, 30 Dec 2014 14:59:16 +0000 (15:59 +0100)] 
Merged from trunk

9 years agoFix 'field precision specifier '.*' expects argument of type 'int'
Amos Jeffries [Tue, 30 Dec 2014 14:37:32 +0000 (06:37 -0800)] 
Fix 'field precision specifier '.*' expects argument of type 'int'

9 years agoReworked acl/Arp to use Splay instead of SplayNode
Francesco Chemolli [Tue, 30 Dec 2014 14:24:28 +0000 (15:24 +0100)] 
Reworked acl/Arp to use Splay instead of SplayNode

9 years agontlm_smb_lm_auth: fix compile errors after rev.13785
Amos Jeffries [Tue, 30 Dec 2014 14:24:28 +0000 (06:24 -0800)] 
ntlm_smb_lm_auth: fix compile errors after rev.13785

9 years agoAdded default arguments to Splay::destroy
Francesco Chemolli [Tue, 30 Dec 2014 14:23:21 +0000 (15:23 +0100)] 
Added default arguments to Splay::destroy
Added documentation to Splay::find
Added Splay::empty()
Removed obsolete tests in test-suite/splay.cc

9 years agontlm_fake_auth: fix compile errors after rev.13785
Amos Jeffries [Tue, 30 Dec 2014 14:07:54 +0000 (06:07 -0800)] 
ntlm_fake_auth: fix compile errors after rev.13785

9 years agoFix 64-bit compile issues in rev.13785
Amos Jeffries [Tue, 30 Dec 2014 13:40:33 +0000 (05:40 -0800)] 
Fix 64-bit compile issues in rev.13785

The Nettle 3.0 library API imported and used by rev.13785 defines
function symbols with size_t parameters where earlier libraries used
'unsigned'. This matters on 64-bit systems where unsigned is a 'int'
and size_t a 'long' - implicit conversion is not possible.

Explicitly detect the size_t API existence during ./configure time and
use the built-in logics if supplied Nettle library is an older version.

9 years agoSourceFormat Enforcement
Source Maintenance [Tue, 30 Dec 2014 12:12:03 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agobasic_msnt_multi_domain_auth: Superceeded by basic_smb_lm_auth
Amos Jeffries [Tue, 30 Dec 2014 10:22:29 +0000 (02:22 -0800)] 
basic_msnt_multi_domain_auth: Superceeded by basic_smb_lm_auth

This helper consisted of a Perl script requiring special Perl
SMB:Authen module and Samba nmblookup helper to operate.

It performs the same operations as basic_smb_lm_auth helper,
so is not actually needed.

It also contains a slightly ambiguous copyright license as it
was published to the squid-users mailing list in effective
Public Domain free for any use, but without explicit statement
to the fact.

9 years agobasic_msnt_auth: rename to basic_smb_lm_auth and deprecate
Amos Jeffries [Tue, 30 Dec 2014 10:05:05 +0000 (02:05 -0800)] 
basic_msnt_auth: rename to basic_smb_lm_auth and deprecate

9 years agoCrypto-NG: Base64 crypto replacement
Amos Jeffries [Tue, 30 Dec 2014 09:09:27 +0000 (01:09 -0800)] 
Crypto-NG: Base64 crypto replacement

The existing Squid base64 code had ambiguous copyright licensing. In
particular it only referenced a dead URL for source copyright
ownership details. In all likelihood this was for an Open Source
implementation, but we dont have sufficient record of the original
license terms to be certain without a long investigation.

It has also been heavily modified and customized over the decades
since importing whih complicates the issue a lot.

It also does not match any of the common industry context-based API
patterns for encoders/decoders.

This patch replaces that logic with GPLv2 licensed code from the
Nettle crypto library. Either linking the library dynamically or in
its absence embedding the logic via our libmiscencoding library.

It also updates all code to the new API, and as a byproduct removes
several layers of deprecated wrapper functions which have grown in
over the years.

9 years agoSimplified MSNT basic auth helper
Francesco Chemolli [Tue, 30 Dec 2014 07:46:14 +0000 (08:46 +0100)] 
Simplified MSNT basic auth helper

9 years agoCleanup: sync ModSelect.cc and ModSelectWin32.cc
Amos Jeffries [Tue, 30 Dec 2014 06:51:44 +0000 (22:51 -0800)] 
Cleanup: sync ModSelect.cc and ModSelectWin32.cc

9 years agoBoilerplate: add copyright blurbs for cf.data files
Amos Jeffries [Tue, 30 Dec 2014 04:55:05 +0000 (20:55 -0800)] 
Boilerplate: add copyright blurbs for cf.data files

9 years agoReverted move-constructor-related changes
Francesco Chemolli [Mon, 29 Dec 2014 16:32:29 +0000 (17:32 +0100)] 
Reverted move-constructor-related changes

9 years agoYet more aggressive workaround attempt
Francesco Chemolli [Mon, 29 Dec 2014 15:53:44 +0000 (16:53 +0100)] 
Yet more aggressive workaround attempt

9 years agoYet more aggressive workaround attempt
Francesco Chemolli [Mon, 29 Dec 2014 13:43:02 +0000 (14:43 +0100)] 
Yet more aggressive workaround attempt

9 years agoMore aggressive workaround attempt
Francesco Chemolli [Mon, 29 Dec 2014 13:14:16 +0000 (14:14 +0100)] 
More aggressive workaround attempt

9 years agoTry to disable move semantics for domaincontroller to work around clang bug in centos 6
Francesco Chemolli [Mon, 29 Dec 2014 10:35:30 +0000 (11:35 +0100)] 
Try to disable move semantics for domaincontroller to work around clang bug in centos 6

9 years agoAdd useage instructions
Francesco Chemolli [Sun, 28 Dec 2014 20:49:45 +0000 (21:49 +0100)] 
Add useage instructions

9 years agoDocumentation updates
Francesco Chemolli [Sun, 28 Dec 2014 20:49:25 +0000 (21:49 +0100)] 
Documentation updates

9 years agoRemoved configuration file
Francesco Chemolli [Sat, 27 Dec 2014 21:32:53 +0000 (22:32 +0100)] 
Removed configuration file

9 years agoRemoved c++11-ism, worked around SMB_Connect_Server not checking arguments. Functiona...
Francesco Chemolli [Sat, 27 Dec 2014 21:03:05 +0000 (22:03 +0100)] 
Removed c++11-ism, worked around SMB_Connect_Server not checking arguments. Functional testing ok

9 years agoReverted most changes to valid_user.cc
Francesco Chemolli [Sat, 27 Dec 2014 20:47:53 +0000 (21:47 +0100)] 
Reverted most changes to valid_user.cc

9 years agoMerged other changes
Francesco Chemolli [Sat, 27 Dec 2014 20:28:57 +0000 (21:28 +0100)] 
Merged other changes

9 years agoSourceFormat Enforcement
Source Maintenance [Wed, 24 Dec 2014 12:12:04 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agopconn_lifetime
Christos Tsantilas [Wed, 24 Dec 2014 09:20:52 +0000 (11:20 +0200)] 
pconn_lifetime

This patch add a new configuration option the 'pconn_lifetime' to allow users
set the desired maximum lifetime of a persistent connection.

When set, Squid will close a now-idle persistent connection that
exceeded configured lifetime instead of moving the connection into
the idle connection pool (or equivalent). No effect on ongoing/active
transactions. Connection lifetime is the time period from the
connection acceptance or opening time until "now".

This limit is useful in environments with long-lived connections
where Squid configuration or environmental factors change during a
single connection lifetime. If unrestricted, some connections may
last for hours and even days, ignoring those changes that should
have affected their behavior or their existence.

This option has the following behaviour when pipelined requests tunneled
to a connection where its lifetime expired:

 1. finish interpreting the Nth request
    check whether pconn_lifetime has expired
 2. if pconn_lifetime has expired, then stop further reading and
    do not interpret any already read raw bytes of the N+1st request
 3. otherwise, read and interpret read raw bytes of the N+1st request
    and go to #1.

This is a Measurement Factory project

9 years agoFixed argument parsing and SMB API
Francesco Chemolli [Mon, 22 Dec 2014 11:00:30 +0000 (12:00 +0100)] 
Fixed argument parsing and SMB API

9 years agoWindows: fix getaddrinfo, getnameinfo, inet_ntop and inet_pton detection
Amos Jeffries [Sun, 21 Dec 2014 16:28:17 +0000 (08:28 -0800)] 
Windows: fix getaddrinfo, getnameinfo, inet_ntop and inet_pton detection

These API symbols are not always defined as functions, and in varying
locations. AC_REPLACE_FUNCS cannot handle that kind of complexity so we
must use AC_CHECK_DECL instead and provide the sequence of #include
necessary to identify their existence.

9 years agoPrep for 3.5.0.4
Amos Jeffries [Sun, 21 Dec 2014 05:05:24 +0000 (21:05 -0800)] 
Prep for 3.5.0.4

9 years agoSourceFormat Enforcement
Source Maintenance [Sat, 20 Dec 2014 18:12:02 +0000 (18:12 +0000)] 
SourceFormat Enforcement

9 years agoSourceFormat Enforcement
Source Maintenance [Sat, 20 Dec 2014 12:12:02 +0000 (12:12 +0000)] 
SourceFormat Enforcement

9 years agoMaintenance: bump astyle to 2.04 and quieten report
Source Maintenance [Sat, 20 Dec 2014 09:00:23 +0000 (09:00 +0000)] 
Maintenance: bump astyle to 2.04 and quieten report

9 years agoRemoved backup domain controller in SMBlibrary
Francesco Chemolli [Sat, 20 Dec 2014 08:17:05 +0000 (09:17 +0100)] 
Removed backup domain controller in SMBlibrary

9 years agoRemoved unneeded files
Francesco Chemolli [Sat, 20 Dec 2014 08:14:09 +0000 (09:14 +0100)] 
Removed unneeded files

9 years agoRip out most of the configuration file logic
Francesco Chemolli [Sat, 20 Dec 2014 08:00:35 +0000 (09:00 +0100)] 
Rip out most of the configuration file logic

9 years agoscripts/formater.pl: use strict perl syntax checking
squidadm@squid-cache.org [Sat, 20 Dec 2014 07:49:33 +0000 (07:49 +0000)] 
scripts/formater.pl: use strict perl syntax checking

9 years agosource-maintenance.sh: only check astyle version once
squidadm@squid-cache.org [Sat, 20 Dec 2014 07:09:43 +0000 (07:09 +0000)] 
source-maintenance.sh: only check astyle version once

9 years agoFix typos in rev.13770
Markus Moeller [Sat, 20 Dec 2014 05:27:35 +0000 (21:27 -0800)] 
Fix typos in rev.13770

9 years agoSourceLayout: shuffle mem_type enum to libmem
Amos Jeffries [Fri, 19 Dec 2014 23:15:55 +0000 (12:15 +1300)] 
SourceLayout: shuffle mem_type enum to libmem

9 years agonegotiate_kerberos_auth: MEMORY keytab and replay cache support
Markus Moeller [Fri, 19 Dec 2014 22:16:42 +0000 (14:16 -0800)] 
negotiate_kerberos_auth: MEMORY keytab and replay cache support

1) Checks for MEMORY: keytab support and reads the keytab from disk into
   MEMORY to improve performance (i.e. read keytab only at startup and
   nerver again)

2) Add option for replay cache type. Allows to set replay cache to none
   to improve performance ( may reduce security a bit )

3) Add option for replay cache directory.  If /var/tmp is not the best
   location you can choose a different location.

9 years agoFix HttpMsg initialization after rev.13754
Amos Jeffries [Fri, 19 Dec 2014 22:13:31 +0000 (14:13 -0800)] 
Fix HttpMsg initialization after rev.13754

9 years agoFix peek-and-splice mode: certificate validation for domain mismatched errors
Christos Tsantilas [Fri, 19 Dec 2014 17:54:32 +0000 (19:54 +0200)] 
Fix peek-and-splice mode: certificate validation for domain mismatched errors

Currently squid does not check for domain mismatched errors while validates the
server certificate on peek and splice mode, even if the server hostname is known
from SNI info or from CONNECT request string.

This is a Measurement Factory project

9 years agoMemPool the debug output stream buffers
Amos Jeffries [Fri, 19 Dec 2014 16:26:44 +0000 (08:26 -0800)] 
MemPool the debug output stream buffers

The CurrentDebug output stream controller for cache.log was
defined as a std::ostringstream object and allocated with
new/delete on each call to debugs().

The std::ostringstream is defined as a templates output stream
which uses the std::allocator<char> built into libc when its
new()'d. Since this is all internal to the STL library
definitions it links against the libc global-scope allocator.

However, there is no matching deallocator definition and when
the object is delete()'d the standard C++ operator overloading
rules make the global-scope SquidNew.h definition of
::operator delete() be the method of deallocation. That uses
free() internally.

To resolve the mismatch of new()/free() we must define a
wrapper class with explicit class-scope new/delete operators
instead of relying on weak linkages to overloaded global scope
operators.

As a result the memory is new()'d and free()'d. As detected by
Valgrind

9 years agoWindows: fix GCC 4.9 build issue in --enable-win32-service
Amos Jeffries [Fri, 19 Dec 2014 07:05:13 +0000 (23:05 -0800)] 
Windows: fix GCC 4.9 build issue in --enable-win32-service

9 years agoWindows: fix compile error after rev.13725
Amos Jeffries [Fri, 19 Dec 2014 07:03:04 +0000 (23:03 -0800)] 
Windows: fix compile error after rev.13725

9 years agoFix DONT_VERIFY_DOMAIN ssl flag
Christos Tsantilas [Thu, 18 Dec 2014 16:06:50 +0000 (18:06 +0200)] 
Fix DONT_VERIFY_DOMAIN ssl flag

The DONT_VERIFY_DOMAIN ssl flag set with the sslflags= option to cache_peer
directive does not work correctly.

9 years agoTypo in rev.13752
Amos Jeffries [Thu, 18 Dec 2014 12:39:24 +0000 (01:39 +1300)] 
Typo in rev.13752

9 years agoBug 1961, Bug 429: Add asterisk to class URL
Amos Jeffries [Thu, 18 Dec 2014 12:12:33 +0000 (01:12 +1300)] 
Bug 1961, Bug 429: Add asterisk to class URL

This does not yet perform any of the outgoing request mapping from
path-less URI required by current RFC 7231.

Squid already allows these URI in OPTIONS and TRACE requests (only).

It does make a start by cleaning up the current special case handling of
"*" URI to be matched by the URI class/namespace method and SBuf
comparisions instead of c-strings.

9 years agoext_ldap_group_acl: Version 2.18 documentation updates
Amos Jeffries [Wed, 17 Dec 2014 13:53:10 +0000 (02:53 +1300)] 
ext_ldap_group_acl: Version 2.18 documentation updates

Bump the helper version number to 2.18 as should have been done back in
2010 when previous redesign was made.

Also, add copyright notices to ChangeLog indicating MARA Systems
copyright to original 2.17 and older code, Squid Project on 2.18 and
newer additions.

9 years agobasic_ldap_auth: Drop unnecessary README
Amos Jeffries [Wed, 17 Dec 2014 13:45:28 +0000 (02:45 +1300)] 
basic_ldap_auth: Drop unnecessary README

9 years agoSupport http_access denials of SslBump "peeked" connections.
Christos Tsantilas [Tue, 16 Dec 2014 18:29:14 +0000 (20:29 +0200)] 
Support http_access denials of SslBump "peeked" connections.

If an SSL connection is "peeked", it is currently not possible to deny it
with http_access. For example, the following configuration denies all plain
HTTP requests as expected but allows all CONNECTs (and all subsequent
encrypted/spliced HTTPS requests inside the allowed CONNECT tunnels):

  http_access deny all
  ssl_bump peek all
  ssl_bump splice all

The bug results in insecure bumping configurations and/or forces admins to
abuse ssl_bump directive (during step1 of bumping) for access control (as a
partial workaround).

This change sends all SSL tunnels (CONNECT and transparent) through http_access
(and adaptation, etc.) checks during bumping step1. If (real or fake) CONNECT is
denied during step1, then Squid does not connect to the SSL server, but bumps
the client connection, and then delivers an error page (in response to the
first decrypted GET). The behavior is similar to what Squid has already been
doing for server certificate validation errors.

Technical notes
----------------

Before these changes:

  * When a transparent SSL connection is being bumped, if we decide to splice
    during step1, then we splice the connections without any http_access
    checks. The (spliced) connection is always established.

  * When a CONNECT tunnel is being bumped at step1, if peek/stare/server-first
    mode is selected, and our http_access check fails, then:
     1) We create an error page and proceeding with SSL bump, expecting
        to serve the error after the client SSL connection is negotiated.
     2) We start forwarding SSL Hello to the server, to peek/stare at (or
        server-first bump) the server connection.
     3) If we then decide to splice the connection during step2 or step3, then
        we splice, and the error page never gets served to the client!

After these changes:

  * During transparent SSL bumping, if we decide to splice at step1, do not
    splice the connection immediately, but create a fake CONNECT request first
    and send it through the callout code (http_access check, ICAP/ECAP, etc.).
    If that fake CONNECT is denied, the code path described below kicks in.

  * When an error page is generated during CONNECT or transparent bumping
    (e.g. because an http_access check has failed), we switch to the
    "client-first" bumping mode and then serve the error page to the client
    (upon receiving the first regular request on the bumped connection).

This is a Measurement Factory project.

9 years agoBug 4164: SEGFAULT when %W formating code used in errorpages
Christos Tsantilas [Tue, 16 Dec 2014 17:55:04 +0000 (19:55 +0200)] 
Bug 4164: SEGFAULT when %W formating code used in errorpages

Squid will crash inside ErrorState::Dump if not authentication configured for
squid. In this case ErrorState::auth_user_request is NULL and trying to access
a method of this object will cause segfault to squid.

9 years agoCleanup: remove unused OS detection of Sun, SysV, Ultrix, BSDi
Amos Jeffries [Tue, 16 Dec 2014 15:13:49 +0000 (04:13 +1300)] 
Cleanup: remove unused OS detection of Sun, SysV, Ultrix, BSDi

9 years agoBug 3826: pt 2: Provide a systemd .service file for Squid
Hussam Al-Tayeb [Tue, 16 Dec 2014 12:23:58 +0000 (01:23 +1300)] 
Bug 3826: pt 2: Provide a systemd .service file for Squid

Created with help from davidstrauss in #systemd channel and provided
as a working example for package distributors to use. It is not
installed by a 'make install' build of Squid.

For now SMP support is not available to Squid controlled by systemd.
That part of the bug 3826 issue has yet to be resolved.

9 years agoSourceLayout: shuffle Sys-V init script to tools/sysvinit/
Amos Jeffries [Tue, 16 Dec 2014 11:01:29 +0000 (00:01 +1300)] 
SourceLayout: shuffle Sys-V init script to tools/sysvinit/

9 years agoUpdate Http::ProtocolVersion() to initializer functions
Amos Jeffries [Thu, 11 Dec 2014 08:35:32 +0000 (00:35 -0800)] 
Update Http::ProtocolVersion() to initializer functions

The Http::ProtocolVersion(*) does not work sufficiently well as a class
hierarchy.

Convert Http::ProtocolVersion to two functions:

* Http::ProtocolVersion() providing the default Squid HTTP version
level, and

* Http::ProtocolVersion(unsigned, unsigned) providing the HTTP version
details for the given level.

NP: using two overloaded functions instead of one with default
parameter values because with HTTP/0.x and HTTP/2.x we cannot safely
default just the minor value. ie. using two functions prevents
mistakenly using HTTP/2.1, HTTP/0.1 or HTTP/1.0 if the second
parameter is omitted.

All variables must now be of type AnyP::ProtocolVersion, and should be
constructed from an appropriate Foo::ProtocolVersion() function.

9 years agoDeleting first fs left psstate->servers pointing to uninitialized memory
Christos Tsantilas [Tue, 9 Dec 2014 19:29:01 +0000 (21:29 +0200)] 
Deleting first fs left psstate->servers pointing to uninitialized memory
possibly causing infinite loops in peerAddFwdServer().

TODO: The condition itself is excessive. If fs is not nil, the previous check
already tells us that the Config.forward_max_tries limit is exceeded.

9 years agoMaintenance: check release notes on packaging
Amos Jeffries [Tue, 9 Dec 2014 16:40:40 +0000 (08:40 -0800)] 
Maintenance: check release notes on packaging

9 years agoPrep for 3.5.0.3 and 3.4.10
Amos Jeffries [Tue, 9 Dec 2014 14:03:14 +0000 (06:03 -0800)] 
Prep for 3.5.0.3 and 3.4.10

9 years agoUpdate localnet definition for RFC 6890
Amos Jeffries [Mon, 8 Dec 2014 11:25:58 +0000 (03:25 -0800)] 
Update localnet definition for RFC 6890

RFC 6890 details updated IP address reservations for Carrier-Grade NAT
and confirms registration of the "this" network range legitimacy amongst
other non-relevant ddress range allocations.

9 years agoTypo in rev.13747
Amos Jeffries [Sun, 7 Dec 2014 16:13:45 +0000 (08:13 -0800)] 
Typo in rev.13747

9 years agourl_lfs_rewrite: Update man(8) documentation
Amos Jeffries [Sun, 7 Dec 2014 15:21:44 +0000 (07:21 -0800)] 
url_lfs_rewrite: Update man(8) documentation