]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
10 years agoBug 4093: source-maintenance.sh errors and warnings due to wrong tools/options
Alex Rousskov [Thu, 16 Oct 2014 18:52:13 +0000 (11:52 -0700)] 
Bug 4093: source-maintenance.sh errors and warnings due to wrong tools/options

10 years agoCBDATA: log memory leak situations when --enable-debug-cbdata
Amos Jeffries [Thu, 16 Oct 2014 18:39:55 +0000 (11:39 -0700)] 
CBDATA: log memory leak situations when --enable-debug-cbdata

CBDATA objects are supposed to be explicitly locked and unlocked by all
users. The nominal 'owner' of the data is also supposed to mark it as
invalid when unlocking its reference.

If a CBDATA object reaches 0 locks and is still valid, it therefore
follows that either the locking or invalidate has not been properly
implemented.

Now that we are migrating to CbcPointer usage instead of explicit
lock/unlock macro calls we have started encountering these situations.
Any object reporting a 'leak' must be investigated;
 a) perhapse RefCount is better?
 b) using CbcPointer consistently and invalidating correctly.

10 years agoBug 4088: memory leak in external_acl_type helper with cache=0 or ttl=0
Amos Jeffries [Thu, 9 Oct 2014 11:53:28 +0000 (04:53 -0700)] 
Bug 4088: memory leak in external_acl_type helper with cache=0 or ttl=0

ExternalACLEntry / external_acl_entry objects have been abusing the
CBDATA API for reference counting and since 3.4 this has resulted in
hidden memory leaks as object accounting shows all locks released but
the memory is not freed by any 'owner'.

* convert to using RefCount<> API.

* move ExternalACLEntry pre-define to acl/forward.h

* add ExternalACLEntryPointer in acl/forward.h

* convert LookupDone() method to using explicit typed pointer

* convert from CBDATA_CLASS to MEMPROXY_CLASS memory management.

* convert almost all raw ExternalACLEntry* to Pointer
 - remaining usage is in the cache hash pointers. Use an explicit 'cachd'
  lock/unlock until this hash is updated to std:: structure types.

10 years agoSourceFormat Enforcement
squidadm@squid-cache.org [Wed, 8 Oct 2014 15:31:32 +0000 (15:31 +0000)] 
SourceFormat Enforcement

10 years ago3.4.8 SQUID_3_4_8
Amos Jeffries [Mon, 15 Sep 2014 08:15:59 +0000 (01:15 -0700)] 
3.4.8

10 years agoFix various ICMP handling issues in Squid pinger
Amos Jeffries [Mon, 15 Sep 2014 05:06:14 +0000 (23:06 -0600)] 
Fix various ICMP handling issues in Squid pinger

* ICMP code type logging display could over-read the registered type
  string arrays.

* Malformed ICMP packets were accepted into processing with undefined
  and potentially nasty results.

Both sets of flaws can result in pinger segmentation fault and halting
the Squid functionality relying on pinger for correct operation.

 Thanks to the OpenSUSE project for analysis and resolution of these.

10 years agoFix off by one in SNMP subsystem
Sebastian Krahmer [Mon, 15 Sep 2014 04:58:34 +0000 (22:58 -0600)] 
Fix off by one in SNMP subsystem

10 years ago3.4.7 SQUID_3_4_7
Amos Jeffries [Wed, 27 Aug 2014 14:22:07 +0000 (07:22 -0700)] 
3.4.7

10 years agoPrep for 3.4.7 and 3.3.13
Amos Jeffries [Wed, 27 Aug 2014 14:11:13 +0000 (07:11 -0700)] 
Prep for 3.4.7 and 3.3.13

10 years agokerberos_ldap_group: Fix 'error during setup of Kerberos credential cache'
Markus Moeller [Wed, 27 Aug 2014 13:36:00 +0000 (06:36 -0700)] 
kerberos_ldap_group: Fix 'error during setup of Kerberos credential cache'

10 years agoIgnore Range headers with unidentifiable byte-range values
Amos Jeffries [Tue, 26 Aug 2014 16:27:23 +0000 (09:27 -0700)] 
Ignore Range headers with unidentifiable byte-range values

If squid is unable to determine the byte value for ranges, treat the
header as invalid.

10 years agoUse v3 for fake certificate if we add _any_ certificate extension.
Alex Rousskov [Tue, 26 Aug 2014 16:22:01 +0000 (09:22 -0700)] 
Use v3 for fake certificate if we add _any_ certificate extension.

We used to force v3 version only when adding the subjectAltName extension.
That broke sites that did not have subjectAltName but used other mimicked x509
extensions, when accessed through Firefox 31 (at least):
  https://bugzilla.mozilla.org/show_bug.cgi?id=1045973

11 years agoFix regression in rev.13156
Amos Jeffries [Sun, 3 Aug 2014 11:56:37 +0000 (05:56 -0600)] 
Fix regression in rev.13156

11 years agoFix %USER_CA_CERT_* and %CA_CERT_ external_acl formating codes
Christos Tsantilas [Sun, 3 Aug 2014 11:13:01 +0000 (05:13 -0600)] 
Fix %USER_CA_CERT_* and %CA_CERT_ external_acl formating codes

* The attribute part of the %USER_CA_CERT_xx and %CA_CERT_xx formating codes
  is not parsed correctly, make these formating codes useless.
* The %USER_CA_CERT_xx documented wrongly

11 years agoEnable compile-time override for MAXTCPLISTENPORTS
Amos Jeffries [Sun, 3 Aug 2014 11:08:15 +0000 (05:08 -0600)] 
Enable compile-time override for MAXTCPLISTENPORTS

MAXTCPLISTENPORTS controls the permitted number of http(s)_port which
may be configured. The hard-coded default is 128 ports.

This patch enables the use of CXXFLAGS="-DMAXTCPLISTENPORTS=n" to set a
new limit when building Squid.

11 years agontlm_sspi_auth: fix various build errors
Amos Jeffries [Thu, 24 Jul 2014 10:16:22 +0000 (03:16 -0700)] 
ntlm_sspi_auth: fix various build errors

* Fix MinGW portability build errors

* Upgrade to current helper protocol.

Also, add SEND_TT helper macro for NTLM helpers

11 years agonegotiate_wrapper: vfork is not portable
Amos Jeffries [Thu, 24 Jul 2014 09:46:02 +0000 (02:46 -0700)] 
negotiate_wrapper: vfork is not portable

Windows does not provide vfork(), so we must test for it before building
the helper.

11 years agoWindows: fix iphlpapi.h include case-sensitivity
Amos Jeffries [Thu, 24 Jul 2014 08:56:18 +0000 (01:56 -0700)] 
Windows: fix iphlpapi.h include case-sensitivity

11 years agoWindows: correct libsspwin32 API for SSP_LogonUser()
Amos Jeffries [Thu, 24 Jul 2014 08:42:19 +0000 (01:42 -0700)] 
Windows: correct libsspwin32 API for SSP_LogonUser()

11 years agonegotiate_sspi_auth: Portability fixes for MinGW
Amos Jeffries [Thu, 24 Jul 2014 08:40:53 +0000 (01:40 -0700)] 
negotiate_sspi_auth: Portability fixes for MinGW

11 years agoext_lm_group_acl: portability fixes for MinGW
Amos Jeffries [Thu, 24 Jul 2014 08:39:38 +0000 (01:39 -0700)] 
ext_lm_group_acl: portability fixes for MinGW

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

11 years agoBug 4080: worker hangs when client identd is not responding
Oliver Dumschat [Sun, 13 Jul 2014 03:22:40 +0000 (21:22 -0600)] 
Bug 4080: worker hangs when client identd is not responding

11 years agoBug 3966: Add KeyEncipherment when ssl-bump substitues RSA for EC.
Joe Crayne [Sun, 13 Jul 2014 03:15:01 +0000 (21:15 -0600)] 
Bug 3966: Add KeyEncipherment when ssl-bump substitues RSA for EC.

Libnss3, which is used by Firefox to verify the certificate chain, has
different requirements for RSA keys than it does for EC keys.  In particular,
RSA keys with the keyUsage extension, must set the KeyEncipherment flag.

This fix was brought to you by the Samizdat project.
http://samizdat.childrenofmay.org

11 years agoReduce cache_effective_user was leaking $HOME memory
Alex Rousskov [Sun, 13 Jul 2014 03:10:16 +0000 (21:10 -0600)] 
Reduce cache_effective_user was leaking $HOME memory

putenv() leaks memory by design but there is no need to use it at all
when the path is unchanged.

11 years ago3.4.6 SQUID_3_4_6
Amos Jeffries [Wed, 25 Jun 2014 14:40:30 +0000 (07:40 -0700)] 
3.4.6

11 years agoDocs: external_acl_type documentation lies for cache=n option
Christos Tsantilas [Wed, 25 Jun 2014 09:54:28 +0000 (03:54 -0600)] 
Docs: external_acl_type documentation lies for cache=n option

The default cache size for external_acl_type is 256*1024 not unbounded
as
documentation says.

11 years agoNon https connectiona on SSL-bump enabled port may stuck
Christos Tsantilas [Sat, 21 Jun 2014 04:24:37 +0000 (22:24 -0600)] 
Non https connectiona on SSL-bump enabled port may stuck

This is can be seen on skype when try to connect to server using an
SSL-bump enabled squid port. Squid try to bump the connection, waiting
for ever
the ssl protocol header, and skype client waits for ever  an answer from
the
server.

This patch sets the timeout to Config.Timeout.request (request_timeout)

This is a Measurement Factory project

11 years agoDo not leak implicit ACLs during reconfigure.
Alex Rousskov [Sat, 21 Jun 2014 04:22:39 +0000 (22:22 -0600)] 
Do not leak implicit ACLs during reconfigure.

Many ACLs implicitly created by Squid when grouping multiple ACLs were
not
destroyed because those implicit ACLs where not covered by the global
ACL
registry used for ACL destruction.

See also: r13210 which did not go far enough because it incorrectly
assumed
that all InnerNode() children are aclRegister()ed and, hence, will be
centrally freed.

Also, do not use cbdataFree() on non-POD Acl::Tree objects that have
destructors.

TODO: Refcount all ACLs instead.

11 years agoAssure that when LruMap::memLimit_ is set to 0 no entries stored on LruMap
Christos Tsantilas [Sat, 21 Jun 2014 04:21:13 +0000 (22:21 -0600)] 
Assure that when LruMap::memLimit_ is set to 0 no entries stored on LruMap

Changes:
 - Do not add new entries to LruMap if memLimit is 0
 - Remove all entries in LruMap::trim if memLimit set to 0

11 years agoPortability: use 64-bit for X-Cache-Age header
Amos Jeffries [Sat, 21 Jun 2014 04:19:58 +0000 (22:19 -0600)] 
Portability: use 64-bit for X-Cache-Age header

While the value is expected to be well within 32-bit range some OS
(OpenBSD 5.5 at least) use 64-bit time_t. Use the larger type size for
calculations which also removes 32-bit wrap errors, and cast for older
systems.

11 years agoWindows: fix various libip build issues
Amos Jeffries [Sat, 21 Jun 2014 04:19:19 +0000 (22:19 -0600)] 
Windows: fix various libip build issues

* Missing include ws2tcpip.h for IPv6 definitions
* Alternative IN6_ARE_ADDR_EQUAL definition required
* 'byte' is a reserved / system defined type on Windows,
 resolve variable shadowing by renaming to ipbyte.

11 years agoWindows: rename TcpLogger::connect
Amos Jeffries [Mon, 16 Jun 2014 02:49:05 +0000 (20:49 -0600)] 
Windows: rename TcpLogger::connect

Windows sockets API is mapped via #define macros. connect() macro and
this TcpLogger method collide. Rename the method doConnect().

11 years agoWindows: rename ConnOpener::connect
Amos Jeffries [Mon, 16 Jun 2014 02:47:16 +0000 (20:47 -0600)] 
Windows: rename ConnOpener::connect

Windows sockets API is mapped via #define macros. connect() macro and
this ConnOpener method collide. Rename the method doConnect().

11 years agoChange order of BSD-specific network includes so that they are properly picked up
Francesco Chemolli [Mon, 16 Jun 2014 02:45:26 +0000 (20:45 -0600)] 
Change order of BSD-specific network includes so that they are properly picked up

11 years agoDo not leak ex_data for SSL state that survived reconfigure.
Alex Rousskov [Tue, 3 Jun 2014 07:12:54 +0000 (01:12 -0600)] 
Do not leak ex_data for SSL state that survived reconfigure.

SSL_get_ex_new_index() allocates a new index on every call, even if its
parameters remain unchanged. It should be called once per process
lifetime.

Besides leaking, this 12 year-old(!) bug could probably make some SSL
code misbehave during reconfigure because reconfigure would change the
supposedly constant ex_data indexes.

11 years agoDo not register the same Cache Manager action more than once
Alex Rousskov [Tue, 3 Jun 2014 07:10:53 +0000 (01:10 -0600)] 
Do not register the same Cache Manager action more than once

... to avoid wrong mgr:menu output and the impression of a reconfigure
memory leak.

The old code was comparing action object pointers, which could not work,
and was adding the same action on every reconfigure call for modules that
register with Cache Manager during [re]configuration.

We already have a working method for finding registered actions. Use it.

11 years agoFix leaked TcpAcceptor job on reconfiguration
Alex Rousskov [Tue, 3 Jun 2014 07:10:15 +0000 (01:10 -0600)] 
Fix leaked TcpAcceptor job on reconfiguration

... by monitoring and reacting to the listening socket closure.

Every job that waits for Comm I/O must have a FD closure handler.

11 years agoFix leak of ACLs related to adaptation access rules
Alex Rousskov [Tue, 3 Jun 2014 07:05:07 +0000 (01:05 -0600)] 
Fix leak of ACLs related to adaptation access rules

11 years agoBug 4056: assertion MemPools[type] from netdbExchangeStart()
Amos Jeffries [Tue, 3 Jun 2014 07:02:53 +0000 (01:02 -0600)] 
Bug 4056: assertion MemPools[type] from netdbExchangeStart()

11 years agoBug 4065: round-robin neighbor selection with unequal weights
Mike Mitchell [Tue, 3 Jun 2014 06:49:46 +0000 (00:49 -0600)] 
Bug 4065: round-robin neighbor selection with unequal weights

11 years agoBug 4050: Segfault in CommSelectEngine::checkEvents on helper response
Alex Rousskov [Tue, 3 Jun 2014 06:48:39 +0000 (00:48 -0600)] 
Bug 4050: Segfault in CommSelectEngine::checkEvents on helper response

11 years agoFix segfault setting up server SSL connnection
Amos Jeffries [Tue, 20 May 2014 16:40:06 +0000 (09:40 -0700)] 
Fix segfault setting up server SSL connnection

11 years agoRegression: segfault logging with %tg format specifier
Steve Hill [Wed, 14 May 2014 15:36:48 +0000 (09:36 -0600)] 
Regression: segfault logging with %tg format specifier

In rev.13132 Token class data member was converted from union to
struct without adding initializer for the timespec field.

timespec is a redundant field anyway, just remove it.

11 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 8 May 2014 00:18:03 +0000 (18:18 -0600)] 
SourceFormat Enforcement

11 years ago3.4.5 SQUID_3_4_5
Amos Jeffries [Fri, 2 May 2014 12:08:22 +0000 (05:08 -0700)] 
3.4.5

11 years agoLogformat annotation fixes
Christos Tsantilas [Fri, 2 May 2014 07:51:33 +0000 (00:51 -0700)] 
Logformat annotation fixes

Currently note values printed with "%note" formating code, which contain non
alphanumeric characters, were quoted and quotes were then escaped, resulting
in bizarre logged rendition of empty or simple values (often received from
various helpers):
      %22-%22
      %22Default_Google%22
      %22pg13,US%22

This patch:
- does not use quotes to print annotations

- allow system admin to define a separator to use for logged
  annotations. The %note logformat accepts the following argument:
     [name][:separator]
  The separator can be one of the ',' ';' or ':'.
  By default, multiple note values are separated with "," and multiple
  notes are separated with "\r\n". When logging named notes with
  %{name}note, the explicitly configured separator is used between note
  values. When logging all notes with %note, the explicitly configured
  separator is used between individual notes. There is currently no way to
  specify both value and notes separators when logging all notes with %note.

- makes the Format::Token::data a struct (now is a union) and initialize
  Format::Token::data data members in Format::Token::Token constructor.

This is a Measurement Factory project

11 years agoResolve 'dying from an unhandled exception: c'
Amos Jeffries [Fri, 2 May 2014 07:49:18 +0000 (00:49 -0700)] 
Resolve 'dying from an unhandled exception: c'

CbcPointer<> is used from code outside of Job protection where it is
safe to use Must(). In order to get a useful backtrace we need to assert
immediately at the point of failure. Particularly necessary since these
are in generic operators used "everywhere" in the code.

11 years agoFix order dependency between cache_dir and maximum_object_size
Anatoli [Fri, 2 May 2014 07:47:32 +0000 (00:47 -0700)] 
Fix order dependency between cache_dir and maximum_object_size

parse_cachedir() has a call to update_maxobjsize() which limits the
store_maxobjsize variable used as the internal maximum_object_size
variable of the store data structure) to the value of maximum_object_size
defined at the moment of execution of this function, for all stores (all
store directories). So if parse for cache_dir is called before
maximum_object_size, we get the effect of the default 4 MB.

BUT, when we get to parse maximum_object_size line(s) after the last
cache_dir, the maximum_object_size option is processed and only shown on
the cachemgr config page without having updated store_maxobjsize.

11 years agoBug 4051: fix inverted test on CONNECT payload existence
Amos Jeffries [Sat, 26 Apr 2014 10:58:22 +0000 (03:58 -0700)] 
Bug 4051: fix inverted test on CONNECT payload existence

11 years ago3.4.4.2 SQUID_3_4_4_2
Amos Jeffries [Wed, 23 Apr 2014 14:01:34 +0000 (07:01 -0700)] 
3.4.4.2

11 years ago3.4.4.1 SQUID_3_4_4_1
Amos Jeffries [Wed, 23 Apr 2014 12:49:57 +0000 (05:49 -0700)] 
3.4.4.1

11 years agoBug 3371: CONNECT with data sent at once loses data
Amos Jeffries [Wed, 23 Apr 2014 10:40:36 +0000 (04:40 -0600)] 
Bug 3371: CONNECT with data sent at once loses data

11 years ago(no commit message)
Amos Jeffries [Wed, 23 Apr 2014 10:17:18 +0000 (03:17 -0700)] 

11 years agoFix outgoing peer type when using ORIGINAL_DST instead of DIRECT
Amos Jeffries [Wed, 23 Apr 2014 05:15:49 +0000 (22:15 -0700)] 
Fix outgoing peer type when using ORIGINAL_DST instead of DIRECT

11 years agoBug 4047: Support Android builds
Amos Jeffries [Wed, 23 Apr 2014 05:09:22 +0000 (22:09 -0700)] 
Bug 4047: Support Android builds

11 years agoBug 3986 (partial): assertion failed due to incorrect error page buffer size
Amos Jeffries [Wed, 23 Apr 2014 05:06:52 +0000 (22:06 -0700)] 
Bug 3986 (partial): assertion failed due to incorrect error page buffer size

errorpage.cc:1307:
   "(size_t)content->contentSize() == strlen(content->content())"

11 years agoBug 3955: Solaris EUI-48 lookup leaks FDs
Paul Z [Fri, 18 Apr 2014 18:45:17 +0000 (12:45 -0600)] 
Bug 3955: Solaris EUI-48 lookup leaks FDs

11 years agoBug 3982: EUI logging and helpers show blank MAC address
Amos Jeffries [Fri, 18 Apr 2014 18:44:12 +0000 (12:44 -0600)] 
Bug 3982: EUI logging and helpers show blank MAC address

Also,
 * improved debugging of EUI processing.
 * fixed code correctness in EUI class definitions

11 years agoFix IPv6 site-local autoconfigured Address detection
Amos Jeffries [Fri, 18 Apr 2014 18:43:35 +0000 (12:43 -0600)] 
Fix IPv6 site-local autoconfigured Address detection

11 years agoBug 4014: build failure with both --disable-optimizations --disable-auth
Amos Jeffries [Mon, 14 Apr 2014 14:01:29 +0000 (07:01 -0700)] 
Bug 4014: build failure with both --disable-optimizations --disable-auth

11 years agoMemBuf fix: empty MemBufs are not NULL terminated
Christos Tsantilas [Wed, 9 Apr 2014 16:56:54 +0000 (09:56 -0700)] 
MemBuf fix: empty MemBufs are not NULL terminated

This is may cause problems in some cases where the code assume that the MemBuf
is always NULL terminated. For example when an ErrorState object try to use
an empty errorpage template.

This patch terminates the (empty) MemBuf on MemBuf::init method.

11 years agoHTTP/1.1: update reference to IANA method registry
Amos Jeffries [Wed, 9 Apr 2014 16:54:22 +0000 (09:54 -0700)] 
HTTP/1.1: update reference to IANA method registry

11 years agoHTTP/1.1: Update registered status codes from IANA registry
Amos Jeffries [Wed, 9 Apr 2014 16:53:05 +0000 (09:53 -0700)] 
HTTP/1.1: Update registered status codes from IANA registry

IETF HTTPbis WG has created an IANA registry for HTTP status codes at
http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

Update our registered codes and strings to match the registry entries.

11 years agoUpdates to qos_flows documentation
Andrew Beverley [Sun, 6 Apr 2014 04:41:59 +0000 (22:41 -0600)] 
Updates to qos_flows documentation

Minor updates to the qos_flows documentation based on recent squid-users
questions.

11 years agoC++11: Upgrade auto-detection to use the formal -std=c++11
Amos Jeffries [Sun, 6 Apr 2014 04:41:08 +0000 (22:41 -0600)] 
C++11: Upgrade auto-detection to use the formal -std=c++11

When the latest compilers added support for -std=c++11 they also dropped
the temporary -std=c++0x option without backward-compatible support. So
for the newest compilers we have not been testing the C++11 code.

As a result of this change Squid will no longer attempt to enable the
partial support in older compilers with -std=c++0x.

Also, update the compiler option test macro from autoconf project.

11 years agoBasic auth cache and SslBump fix
Christos Tsantilas [Sun, 6 Apr 2014 04:39:32 +0000 (22:39 -0600)] 
Basic auth cache and SslBump fix

This patch fixes the following bug:
 1) A user sends a CONNECT request with valid credentials
 2) Squid checks the credentials and adds the user to the user cache
 3) The same user sends a CONNECT request with invalid credentials
 4) Squid overwrites the entry in the user cache and denies the second
    CONNECT request
 5) The user sends a GET request on the first SSL connection which is
    established by now
 6) Squid knows that it does not need to check the credentials on the
    bumped connection but still somehow checks again whether the user is
    successfully authenticated
 7) Due to the second CONNECT request the user is regarded as not
    successfully authenticated
 8) Squid denies the GET request of the first SSL connection with 403
    ERR_CACHE_ACCESS_DENIED

On proxies with Basic authentication and SSL bumping, this can be used
to prevent a legitimate user from making any HTTPS requests

This is a Measurement Factory project

11 years agocrypto-ng: use libnettle MD5 algorithm support
Amos Jeffries [Sun, 6 Apr 2014 04:37:08 +0000 (22:37 -0600)] 
crypto-ng: use libnettle MD5 algorithm support

Transitional patch detects libnettle when available and uses it without
yet forcing it as a required dependency.

11 years agoBug 4043: Remove XMALLOC_TRACE and references to sbrk(2)
Francesco Chemolli [Sun, 23 Mar 2014 05:00:54 +0000 (23:00 -0600)] 
Bug 4043: Remove XMALLOC_TRACE and references to sbrk(2)

11 years agoPortability: detect struct iovec better on OpenBSD
Francesco Chemolli [Sun, 23 Mar 2014 04:57:40 +0000 (22:57 -0600)] 
Portability: detect struct iovec better on OpenBSD

11 years agoBug 4019: Regression in 3.4 r13079
Martin Stolle [Fri, 21 Mar 2014 08:48:48 +0000 (02:48 -0600)] 
Bug 4019: Regression in 3.4 r13079

11 years agoBug 4041: Missing files in compat/Makefile.am
Changming [Fri, 21 Mar 2014 08:47:02 +0000 (02:47 -0600)] 
Bug 4041: Missing files in compat/Makefile.am

11 years agoUse request URI instead of StoreID when forwarding requests to peers
Nikolai Gorchilov [Fri, 21 Mar 2014 08:45:23 +0000 (02:45 -0600)] 
Use request URI instead of StoreID when forwarding requests to peers

TODO: There are more bugs like that, including using Store IDs in ICP
requests.

11 years ago3.4.4 SQUID_3_4_4
Amos Jeffries [Sun, 9 Mar 2014 09:40:22 +0000 (03:40 -0600)] 
3.4.4

11 years agoPrep for 3.4.4 and 3.3.12
Amos Jeffries [Sun, 9 Mar 2014 03:57:02 +0000 (20:57 -0700)] 
Prep for 3.4.4 and 3.3.12

11 years agoAvoid assertions on Range requests that trigger Squid-generated errors.
Alex Rousskov [Sun, 9 Mar 2014 01:48:00 +0000 (18:48 -0700)] 
Avoid assertions on Range requests that trigger Squid-generated errors.

Added HttpRequest::ignoreRange() to encapsulate range ignoring logic.
Currently the new method only contains the code common among all callers. More
work is needed to check whether further caller homogenization is possible.

Documented that ClientSocketContext::getNextRangeOffset() may sometimes be
called before it is ready to do its job.

11 years agoProtect MemBlob::append() against raw-space writes
Amos Jeffries [Sun, 9 Mar 2014 01:47:23 +0000 (18:47 -0700)] 
Protect MemBlob::append() against raw-space writes

There is no guarantee that the 'unused' area of MemBlob is actually
unused. For example if a read buffer was being filled into the
rawSpace() of a SBuf or MemBlob it will overlap with this empty area
until a read call updates the related size state in MemBlob/SBuf.

For these cases we must use memmove() which guarantees no buffer
corruption will take place on memory overlaps.

11 years agoCopyright: Relicense helpers by Treehouse Networks Ltd.
Amos Jeffries [Sun, 9 Mar 2014 01:45:37 +0000 (18:45 -0700)] 
Copyright: Relicense helpers by Treehouse Networks Ltd.

Update the license on helper code designed and authored by myself using
the BSD 2-clause license. This makes the example helper code and license
more legally acceptible for use as a basis of proprietary helpers while
remaining compatible with GPL for distribution with Squid.

11 years agoPortability: define CMSG related structures individually
Amos Jeffries [Sun, 9 Mar 2014 01:44:07 +0000 (18:44 -0700)] 
Portability: define CMSG related structures individually

Some OS provide the CMSG related definitions and others only partially
define them. Sometimes (Windows particularly) this varies between build
environments.

Checking for each symbol separately and providing only those needed
avoids problems we have been having with missing or redefined symbols
on Windows and elsewhere.

11 years agoFix helper ID number assignment
Amos Jeffries [Wed, 5 Mar 2014 02:50:43 +0000 (19:50 -0700)] 
Fix helper ID number assignment

Since helpers are now dynamically started the old method of allocating
an ID number based on the current start sequence can result in many
helpers being assigned overlapping ID numbers.

Use InstanceID template instead to assure a unique incremental ID is
assigned to each helper no matter when it is started.

11 years agoFixed stalled concurrent rock store reads by insuring their ID uniqueness.
Alex Rousskov [Wed, 5 Mar 2014 02:49:29 +0000 (19:49 -0700)] 
Fixed stalled concurrent rock store reads by insuring their ID uniqueness.

Added a check to prevent similar bugs from occurring in the future.

11 years agoBug 3186, Bug 3628: Digest authentication always sending stale=false for nonce
Henrik Nordstrom [Wed, 5 Mar 2014 02:48:25 +0000 (19:48 -0700)] 
Bug 3186, Bug 3628: Digest authentication always sending stale=false for nonce

11 years agodynamic_cert_mem_cache_size option related fixes
Christos Tsantilas [Tue, 4 Mar 2014 10:14:42 +0000 (03:14 -0700)] 
dynamic_cert_mem_cache_size option related fixes

This patch fixes the following problems:

1) The dynamic_cert_mem_cache_size does not change on reconfigure

2) When dynamic_cert_mem_cache_size of http_port set to 0 then:

   a) The dynamic certs cache is grow unlimited.
      This patch just disables certificates caching when this option set to 0.

   b) Huge amount of memory appeared as free cache memory in  "Cached ssl
      certificates statistic" page of cache manager.
      This problem caused because of a signed to unsigned int conversion.

  This is a Measurement Factory project

11 years agoFix umask default on crash report generated email
Amos Jeffries [Tue, 4 Mar 2014 10:05:16 +0000 (03:05 -0700)] 
Fix umask default on crash report generated email

11 years agoFix pthread library detection on FreeBSD 10
Amos Jeffries [Tue, 18 Feb 2014 14:00:50 +0000 (07:00 -0700)] 
Fix pthread library detection on FreeBSD 10

We should not be using "cut -b1" anywhere to determine OS version
number. It drops digits out of the major version number.

11 years agoBug 4029: intercepted HTTPS requests bypass caching checks
Rajiv Desai [Tue, 18 Feb 2014 08:55:52 +0000 (01:55 -0700)] 
Bug 4029: intercepted HTTPS requests bypass caching checks

11 years agoBug 4026: SSL and adaptation_access does not handle aborted connections
Nathan Hoad [Tue, 18 Feb 2014 08:55:04 +0000 (01:55 -0700)] 
Bug 4026: SSL and adaptation_access does not handle aborted connections

11 years agoBug 4001: remove use of strsep()
Amos Jeffries [Tue, 18 Feb 2014 08:46:49 +0000 (01:46 -0700)] 
Bug 4001: remove use of strsep()

The strsep() function is not defined by POSIX. Additionally
auto-tools has been having some obscure issues detecting
or linking the provided implementation into libcompat on
Windows and Solaris respectively. Which are the two known
OS requiring it.

Investigation of its use in Squid revealed that it can be
replaced with strcspan() which is both portable and more
efficient since it also removes the need for several
strdup()/free() operations used to protect Squid from
strsep() memory fiddling.

11 years agoMove compat/unsafe.h protections from libcompat to source maintenance
Amos Jeffries [Tue, 18 Feb 2014 08:43:02 +0000 (01:43 -0700)] 
Move compat/unsafe.h protections from libcompat to source maintenance

It is sufficient to run a code scan from source-maintenance.sh for the
unsafe functions being used in Squid-specific code instead of
hard-coding compiler breakage on users.
This also "fixes" reporting of errors when cstdio pulls in use of the
unsafe functions by stdlib.

11 years agoBug 3969: user credentials cache lookup for Digest authentication broken
Frederic Bourgeois [Wed, 12 Feb 2014 09:31:39 +0000 (02:31 -0700)] 
Bug 3969: user credentials cache lookup for Digest authentication broken

Changes to the username credentials cache were made in Basic auth but
the matching changes were not duplicated to Digest auth. Since the
lookup is identical move it to generic Auth::Config.

Also fixes assertion auth_digest.cc:759:
    "(nonce->user == NULL) || (nonce->user == user)"

11 years agoVarious fixes to configure for FreeBSD 10
Dennis Glatting [Wed, 12 Feb 2014 08:54:42 +0000 (01:54 -0700)] 
Various fixes to configure for FreeBSD 10

* Detect cstdio file presence for libcompat, and restrict to C++

* Fix shell syntax in Heimdal Kerberos library detection

11 years agoRegression Bug 3769: client_netmask not evaluated since Comm redesign
Amos Jeffries [Wed, 12 Feb 2014 08:52:29 +0000 (01:52 -0700)] 
Regression Bug 3769: client_netmask not evaluated since Comm redesign

11 years agoUpdate CONTRIBUTORS SQUID_3_4_3
Amos Jeffries [Sun, 2 Feb 2014 08:25:25 +0000 (01:25 -0700)] 
Update CONTRIBUTORS

11 years ago3.4.3
Amos Jeffries [Sun, 2 Feb 2014 08:24:10 +0000 (01:24 -0700)] 
3.4.3

11 years agoFix peerSelectDnsResults() IP address cycling
Amos Jeffries [Sun, 2 Feb 2014 02:47:38 +0000 (19:47 -0700)] 
Fix peerSelectDnsResults() IP address cycling

The local ip variable is the index of the IP address to be used.
Loop counter n is only used to prevent cycling indefinitely and should
not be used to access the array indexes.

11 years agoComm job callbacks need job's cbdata pointer, not a job pointer.
Alex Rousskov [Sun, 2 Feb 2014 02:47:05 +0000 (19:47 -0700)] 
Comm job callbacks need job's cbdata pointer, not a job pointer.

Otherwise, in complex inheritance hierarchies, some [inner] classes will
hit cbdata cookie assertions when scheduling Comm calls with callbacks.

11 years agoBug 3975: atomic detection cross-compilation failure
Stefano Cordibella [Sun, 2 Feb 2014 02:46:03 +0000 (19:46 -0700)] 
Bug 3975: atomic detection cross-compilation failure

11 years agoBug 3954: compile failure in CpuAffinity.cc
Unknown FreeBSD Contributor [Sun, 2 Feb 2014 02:44:37 +0000 (19:44 -0700)] 
Bug 3954: compile failure in CpuAffinity.cc

Patch written by 'dim [1]' contributor to FreeBSD and imported to Squid
under FreeBSD license. see
http://svnweb.freebsd.org/ports/head/www/squid33/files/patch-include__Array.h

11 years agoBug 3971: "cannot aggregate mgr:client_list: cmd->profile != NULL" in SMP mode
Nathan Hoad [Sun, 2 Feb 2014 02:41:49 +0000 (19:41 -0700)] 
Bug 3971: "cannot aggregate mgr:client_list: cmd->profile != NULL" in SMP mode

When running Squid in SMP mode, the 'client_list' command cannot be used as the
coordinator doesn't call clientdbInit(), and thus doesn't have the client_list
action registered.

This patch uses RegisteredRunner to initialize clientdb and register the
'client_list' command

11 years agoInitialize asyncLoopDepth_ in constructor
Amos Jeffries [Sun, 2 Feb 2014 02:38:51 +0000 (19:38 -0700)] 
Initialize asyncLoopDepth_ in constructor

  Detected by Coverity Scan. Issue 740529.