]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
14 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 22 Oct 2010 00:12:11 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoFixes for the "%err_code and %err_detail logformat codes" patch
Christos Tsantilas [Thu, 21 Oct 2010 10:34:44 +0000 (13:34 +0300)] 
Fixes for the "%err_code and %err_detail logformat codes" patch

The newly added file src/err_detail_type.h must listed in squid_SOURCES
variable in Makefile.am to be included in archives generated using "make dist"
For the same reason  the files scripts/{calc-must-ids.pl,calc-must-ids.sh}
must listed in EXTRA_DIST variable.

14 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <chtsant...
Christos Tsantilas [Thu, 21 Oct 2010 08:13:41 +0000 (11:13 +0300)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <chtsanti@users.sourceforge.net>
Added %err_code and %err_detail logformat codes to record details about transaction failures

For example, when Squid responds with 500 Internal Server Error, it is often
useful to know what went wrong.

This patch :
 - log a detail string instead of numbers for common errors
 - log a label with the detail code number for generic errors (system errors,
   or exceptions)
 - adds more details about errors, especially those detected with exceptions:
   We record a hash of the filename and the source code line number of the
   first caught exception.
 - adds two scripts which can help the developers to find the exact position
   of the caught exception:
   1) The calc-must-ids.pl take as argument one or more files and compute for
      each Must expression in the given files its  id;
   2) The calc-must-ids.sh can be used to find the exact position of a Must
      expression from its id. Example usage:
          # ./scripts/calc-must-ids.sh 0xB79EF14
          ./src/adaptation/ecap/MessageRep.cc:356: 0xB79EF14 Must(false);

14 years agoBug 3082: Typo in error message
Amos Jeffries [Thu, 21 Oct 2010 03:18:45 +0000 (16:18 +1300)] 
Bug 3082: Typo in error message

14 years agoDo not zero the destination set in CpuAnd() replacement for CPU_AND()
Alex Rousskov [Wed, 20 Oct 2010 04:16:57 +0000 (22:16 -0600)] 
Do not zero the destination set in CpuAnd() replacement for CPU_AND()
because the destination set may be one of the source sets. This fixes

   ERROR: invalid CPU affinity for process PID 17935, may be caused by
   an invalid core in 'cpu_affinity_map' or by external affinity
   restrictions

errors on systems with partial CPU affinity support lacking their own CPU_AND.

based on 3p2-plus r10834.

14 years agoBug 3040: Lower-case domain entries from hosts and resolv.conf files
Amos Jeffries [Wed, 20 Oct 2010 01:32:49 +0000 (19:32 -0600)] 
Bug 3040: Lower-case domain entries from hosts and resolv.conf files

14 years agoBug 3036: adaptation_access acls cannot see myportname
Amos Jeffries [Tue, 19 Oct 2010 02:37:51 +0000 (20:37 -0600)] 
Bug 3036: adaptation_access acls cannot see myportname

Temporary fix to pass myportname to adaptation_access ACLs.

14 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 19 Oct 2010 00:12:13 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoBug 3078: crashes repeatedly after rebuilding the cache
Amos Jeffries [Mon, 18 Oct 2010 11:49:19 +0000 (00:49 +1300)] 
Bug 3078: crashes repeatedly after rebuilding the cache

Regression from must-revalidate HTTP/1.1 compliance fixes.
Only flag refresh/revalidation failure when client request is present.

14 years agoAuthor: OpenSolaris Project
Amos Jeffries [Mon, 18 Oct 2010 09:16:27 +0000 (22:16 +1300)] 
Author: OpenSolaris Project
Bug 3057: 64-bit Solaris 9 Squid unable to determine peer IP and port

Fix by bundling a cleaner copy by the OpenSolaris authors that contains
backward-compatible fixes for broken Solaris 9 struct addrinfo.

Bundling this header as a full replacement is safer and easier than
hacking around with special struct defines.

14 years agoAdd missing pre-define icpGetOutgoingIpAddress
Amos Jeffries [Sun, 17 Oct 2010 10:22:59 +0000 (04:22 -0600)] 
Add missing pre-define icpGetOutgoingIpAddress

14 years agoFix Regression: SMP broke ICP outgoing IP lookup if no udp_outgoing_addr set
Amos Jeffries [Sun, 17 Oct 2010 10:20:35 +0000 (04:20 -0600)] 
Fix Regression: SMP broke ICP outgoing IP lookup if no udp_outgoing_addr set

14 years agoBuild error: /dev/poll signed/unsigned comparison in comm_flush_updates
Amos Jeffries [Sun, 17 Oct 2010 10:03:24 +0000 (04:03 -0600)] 
Build error: /dev/poll signed/unsigned comparison in comm_flush_updates

14 years agoAdd omitted link to comm_devpoll.cc
Amos Jeffries [Sun, 17 Oct 2010 09:24:49 +0000 (22:24 +1300)] 
Add omitted link to comm_devpoll.cc

14 years agoportability: smblib: replace bzero with memset
Amos Jeffries [Sun, 17 Oct 2010 06:22:58 +0000 (00:22 -0600)] 
portability: smblib: replace bzero with memset

14 years agoEDNS: type mismatch on min() ssize_t / int
Amos Jeffries [Sun, 17 Oct 2010 05:24:33 +0000 (23:24 -0600)] 
EDNS: type mismatch on min() ssize_t / int

14 years agoreal fix: printf portability issue in EDNS display
Amos Jeffries [Sun, 17 Oct 2010 05:10:55 +0000 (23:10 -0600)] 
real fix: printf portability issue in EDNS display

14 years agoprintf portability issue in EDNS display
Amos Jeffries [Sun, 17 Oct 2010 05:00:32 +0000 (23:00 -0600)] 
printf portability issue in EDNS display

14 years agoAuthor: Adrian Chadd <adri@squid-cache.org>
Amos Jeffries [Sun, 17 Oct 2010 04:49:27 +0000 (22:49 -0600)] 
Author: Adrian Chadd <adri@squid-cache.org>
Author: Peter Payne
Bug 2356: Solaris /dev/poll event ports support.

Original code by Adrian Chadd.
Ported from Squid-2 by Peter Payne, Pirosa Limited UK.

With sponsorship of development and testing from:
  BBC (UK)
  Siemens IT Solutions and Services (UK)

14 years agoSourceFormat Enforcements
Amos Jeffries [Sun, 17 Oct 2010 04:05:30 +0000 (22:05 -0600)] 
SourceFormat Enforcements

14 years agoRelease notes update for EDNS
Amos Jeffries [Sun, 17 Oct 2010 03:34:46 +0000 (21:34 -0600)] 
Release notes update for EDNS

14 years agoBug 2785: DNS needs to set EDNS options advertising Squid capabilities
Amos Jeffries [Sun, 17 Oct 2010 03:26:02 +0000 (21:26 -0600)] 
Bug 2785: DNS needs to set EDNS options advertising Squid capabilities

... allowing Squid to advertise a larger UDP reply size than 512 bytes.

Internally Squid has a buffer allocated on demand so there is no
practicable limit on individual packets. Network topology and external
software places stricter boundaries on what works and what does not.

Squid does not parse the additional section of replies so for now the
full auto-negotiation EDNS allows is not used. Instead a configuration
option is provided for admin to configure a desirable packet size in
bytes. EDNS defaults to "none" (disabled) until tested in a wider
environment.

Testing so far has brought to light problems with EDNS adverts on A and
IPv4-PTR queries. So support is limited to AAAA and IPv6-PTR queries only.
EDNS compliant resolvers have the option of caching the info between
requests for a short while so this will hopefully leak over to improve
IPv4 responses as well.

14 years agoFix static/extern type clash in smblib
Amos Jeffries [Sun, 17 Oct 2010 03:24:24 +0000 (21:24 -0600)] 
Fix static/extern type clash in smblib

14 years agoSourceFormat Enforcement
Automatic source maintenance [Sun, 17 Oct 2010 00:18:41 +0000 (18:18 -0600)] 
SourceFormat Enforcement

14 years agobasic_msnt_auth helper and NTLM/SMBLIB/RFCNB library polish.
Amos Jeffries [Sat, 16 Oct 2010 23:19:46 +0000 (17:19 -0600)] 
basic_msnt_auth helper and NTLM/SMBLIB/RFCNB library polish.

Samba smblib/rfcnb code:
 * Import the latest copy which I could find a download link to.
   This source is from 1997 so I suspect there is something even newer
   we should be using. Time was tight is the only excuse for using
   these sources. Our originals were from 1995 and 1996 depending on the
   helper using it, with a mix of patches.

 * These two directories are in ours sources as lib/smblib and lib/rfcnb.
   Each has its own convenience library. Kept separate with original
   filenames to simplify future upgrades or removal.

 * Samba sources have been diffed and compared function by function
   against the copies previously in our sources. Functionality extensions
   we use have been grafted back on top of the new(er) Samba sources.
  - this was mostly around passing extra Unicode, DC hints and pre-crypted
    passwords to the login checks.
  - some files from libntlmauth have yet to be compared in fine detail,
    that will be completed today before merge.
  - some basic API function and struct definitions had to be moved to the
    API headers to prevent needing to include the *-priv.h private
    definitions externally to the library.

 * the Samba API headers have been wrapped with #ifndef safety wrappers

 * compile errors and include changes required to compile have been
   made (code stays C)

 * duplicate code in helpers/basic_auth/MSNT/* and libntlmauth/* is
   removed.

 * abuse of the smblib-priv.h and rfcnb-priv.h headers and all local
   re-definitions has been erased from our code. Replaced by includes
   of the library API headers: rfcnb/rfcnb.h  smblib/smblib.h

libntlmauth:
 * smblib/rfcnb bits erased
 * moved to lib/ntlmauth in its much reduced form
 * built as a convenience library instead of full library

14 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Amos Jeffries [Fri, 15 Oct 2010 10:24:57 +0000 (04:24 -0600)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>
Bug 3002 pt2: store initialization (-z) does not work with SMP configs.

In SMP mode, when -z command line option is specified, start kids and allow
them to create their cache_dirs instead of trying to create macro-dependent
cache_dirs in the Master process.

In SMP mode, quit if cache_dir option is found before the workers option.

14 years agoFix idle struct addrinfo definition.
Amos Jeffries [Fri, 15 Oct 2010 09:44:20 +0000 (22:44 +1300)] 
Fix idle struct addrinfo definition.

ai_addrlen is defined formally as socklen_t not size_t. This could have
caused problems if the idle version were ever used.

Found during investigation of bug 3057 by "Anonymous".

14 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 13 Oct 2010 00:14:42 +0000 (18:14 -0600)] 
SourceFormat Enforcement

14 years agoAuthor: Chad Naugle <chad.naugle@travimp.com>
Amos Jeffries [Tue, 12 Oct 2010 22:27:40 +0000 (16:27 -0600)] 
Author: Chad Naugle <chad.naugle@travimp.com>
eDirectory user-IP ACl string safety updates

14 years agoUse DISTCHECK_CONFIGURE_FLAGS to make recursive distcheck work again.
Amos Jeffries [Tue, 12 Oct 2010 11:57:10 +0000 (05:57 -0600)] 
Use DISTCHECK_CONFIGURE_FLAGS to make recursive distcheck work again.

DISTCHECK_CONFIGURE_FLAGS is a magic automake macro for the
distcheck target recursive tests between scripted runs.
we use it to perform the same duty between our nested scripts.

We used it earlier but lost it through a bit of forgetfulness. Documented
now to prevent that happening again.

14 years agoFix typo in source maintenance script
Amos Jeffries [Tue, 12 Oct 2010 10:35:42 +0000 (04:35 -0600)] 
Fix typo in source maintenance script

14 years agoAuthor: Various Translators
Amos Jeffries [Sat, 9 Oct 2010 23:00:58 +0000 (12:00 +1300)] 
Author: Various Translators
Translations Update auto-save

14 years agoPolish FTP login error handing
Amos Jeffries [Sat, 9 Oct 2010 11:20:12 +0000 (00:20 +1300)] 
Polish FTP login error handing

Reverts a regression added recently that blocked the challenge events.
Fixes another potential nul-pointer dereference bug.

* 421/426 server overload equate to HTTP overload. But do special such that
  the credentials are asked of the browser on retries.

* 43x and 53x FTP status are all credentials failures of various types.
  Other failures are not credential related.
  This leaves the other non-credential errors as general failures.

14 years agoFix xstrto.h stdbool wrapping
Amos Jeffries [Fri, 8 Oct 2010 06:33:32 +0000 (19:33 +1300)] 
Fix xstrto.h stdbool wrapping

14 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Amos Jeffries [Thu, 7 Oct 2010 13:07:12 +0000 (02:07 +1300)] 
Author:  Alex Rousskov <rousskov@measurement-factory.com>
Bug 3002: store initialization (-z) does not work with SMP configs

14 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Amos Jeffries [Thu, 7 Oct 2010 07:53:45 +0000 (20:53 +1300)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>
Author: Amos Jeffries <squid3@treenet.co.nz>
API for subscribing AsyncCall handlers to event producers

This API allows AsyncCall handlers to be subscribed for receiving multiple
event callbacks from producer/factory classes.

Intended use-cases include the main port listeners which are started once.
Run for a long time. And over their lifetime need to generate multiple
calls to any one of several handlers without having specific type details
hard-coded about the calls they are spawning.
 ie they cannot use "new X(y,z)" because they are not aware of y and z.
    Nor can one AsyncCall be scheduled and fired multiple times.

Other use-cases already sighted are UDP readers and event timers.

14 years agoDocument PconnPool
Amos Jeffries [Thu, 7 Oct 2010 06:34:34 +0000 (19:34 +1300)] 
Document PconnPool

14 years agoBootstrapped
Automatic source maintenance [Thu, 7 Oct 2010 00:11:05 +0000 (18:11 -0600)] 
Bootstrapped

14 years agoPortability fixes for netfilter MARK support.
Amos Jeffries [Wed, 6 Oct 2010 13:03:11 +0000 (07:03 -0600)] 
Portability fixes for netfilter MARK support.

14 years agoAuthor: Andrew Beverley <andy@andybev.com>
Amos Jeffries [Wed, 6 Oct 2010 03:50:45 +0000 (16:50 +1300)] 
Author: Andrew Beverley <andy@andybev.com>
Netfilter MARK support for QoS

14 years agoAuthor: Andrew Beverley <andy@andybev.com>
Amos Jeffries [Wed, 6 Oct 2010 03:39:05 +0000 (16:39 +1300)] 
Author: Andrew Beverley <andy@andybev.com>
Fix variable name clash in heap.c

14 years agoUnlink RefCount smart-pointer constness from its data.
Amos Jeffries [Tue, 5 Oct 2010 11:43:27 +0000 (05:43 -0600)] 
Unlink RefCount smart-pointer constness from its data.

Reason for having this in the first place is unknown. Several of the dev
agree there seems to be no reason to keep it and many to remove:

 * The data RefCount points to is always dynamic
 * The data pointed to is deleted with the last reference
 * Its desirable to pass pointers around as const knowing that they will
   not be changed to point at another object, but still manipulate the
   data object itself.

14 years agoLink libcompat to binaries which previously wrongly omitted it
Amos Jeffries [Tue, 5 Oct 2010 11:34:01 +0000 (05:34 -0600)] 
Link libcompat to binaries which previously wrongly omitted it

14 years agoAuthor: Stefan Fritsch <sf@sfritsch.de>
Amos Jeffries [Mon, 4 Oct 2010 21:20:59 +0000 (10:20 +1300)] 
Author: Stefan Fritsch <sf@sfritsch.de>
Bug 3073: tunnelStateFree memory leak of host member

14 years agoHTTP Compliance: Send Age:0 header even if it may break IE5.
Alex Rousskov [Mon, 4 Oct 2010 15:52:31 +0000 (09:52 -0600)] 
HTTP Compliance: Send Age:0 header even if it may break IE5.

Removed a hack that prevented zero-valued Age header from being sent to HTTP
clients. The hack was added around January 2000 and is related to the
following patch:
    http://devel.squid-cache.org/hno/patches/squid-2.2.STABLE5.age.patch

The above patch sites IE5 as the possible culprit that hangs when processing
zero Age responses.

If we get complaints about broken browsers not being able to handle
zero-valued Age headers, we can make Age:0 header inclusion conditional
on something like SUPPORT_IE5 #define or even on the User-Agent value.

14 years agoHTTP Compliance: do not cache replies to requests with CC/no-store.
Alex Rousskov [Mon, 4 Oct 2010 15:44:32 +0000 (09:44 -0600)] 
HTTP Compliance: do not cache replies to requests with CC/no-store.

Per RFC 2616, do not store any part of response to requests with a no-store
Cache-Control directive.

We may still _serve_ no-store requests from the cache because RFC 2616 does not
seem to prohibit that. This may change if HTTPbis or developers decide to
prohibit no-store hits.

Co-Advisor test case:
    test_case/rfc2616/ccReqDirMsg-no-store-basic

14 years agoHTTP Compliance: reply with 504 (Gateway Timeout) if required validation fails.
Alex Rousskov [Mon, 4 Oct 2010 15:40:04 +0000 (09:40 -0600)] 
HTTP Compliance: reply with 504 (Gateway Timeout) if required validation fails.

RFC 2616 says that we MUST reply with 504 (Gateway Timeout) if validation
fails and cached reply has proxy-revalidate, must-revalidate or s-maxage
Cache-Control directive.

FwdState::makeConnectingError() method is added to set error status depending
on whether the request was a validation request.

Co-Advisor test cases:
    test_case/rfc2616/noSrv-hit-must-reval-s-maxage-resp
    test_case/rfc2616/noSrv-hit-must-reval-proxy-revalidate-resp
    test_case/rfc2616/noSrv-hit-must-reval-must-revalidate-resp

14 years agoHTTP Compliance: support requests with Cache-Control: min-fresh.
Alex Rousskov [Mon, 4 Oct 2010 15:32:20 +0000 (09:32 -0600)] 
HTTP Compliance: support requests with Cache-Control: min-fresh.

Added min-fresh directive support for Cache-Control header. The directive is
handled in refreshCheck() by incrementing age and check_time by min-fresh
value.

Co-Advisor test case:
    test_case/rfc2616/ccReqDirMsg-min-fresh-obey

14 years agoHTTP Compliance: add appropriate Warnings if serving a stale hit.
Alex Rousskov [Mon, 4 Oct 2010 15:16:18 +0000 (09:16 -0600)] 
HTTP Compliance: add appropriate Warnings if serving a stale hit.

Per RFC 2616, we MUST add "110 Response is stale" Warning if serving a
stale reply for any reason, including configured overrides. We MUST add
"111 Revalidation failed" Warning if serving a stale reply because an
attempt to revalidate the response failed, due to an inability to reach
the server.

The patch adds a new stale_if_hit request flag, which is set in
refreshCheckHTTP() when entry freshness is calculated. refreshCheckHTTP()
is now called in offline mode, to set stale_if_hit properly. We check for
the offline mode before returning from refreshCheckHTTP() to preserve the
original logic.

refreshCheckHTTP() is no longer called for internal requests, to avoid
setting of stale_if_hit flag. It did not do anything important for
internal requests anyway.

Co-Advisor test cases:
    test_case/rfc2616/noSrv-hit-stale-max-age-req
    test_case/rfc2616/ccReqDirMsg-max-stale-warning

14 years agoUse InstanceId for async job and calls identification.
Alex Rousskov [Mon, 4 Oct 2010 14:52:38 +0000 (08:52 -0600)] 
Use InstanceId for async job and calls identification.

Side-effect: removes inconsistent prefixes for job debugging: ecapxN, icapxN,
asyncN are now all jobN, simplifying searching and processing debugging logs.

14 years agoAdded InstanceId to uniquely identify concurrent messages, transactions, etc.
Alex Rousskov [Mon, 4 Oct 2010 14:49:57 +0000 (08:49 -0600)] 
Added InstanceId to uniquely identify concurrent messages, transactions, etc.

14 years agoAccept ICAP OPTIONS responses with unknown body types.
Alex Rousskov [Mon, 4 Oct 2010 14:37:32 +0000 (08:37 -0600)] 
Accept ICAP OPTIONS responses with unknown body types.

Warn about the unknown OPTIONS body type but ignore it instead of rejecting
the entire OPTIONS response. Note that ICAP does not standardize OPTIONS
body types, and Squid does not recognize any body type.

ICAP servers are supposed to negotiate the use of OPTIONS bodies but
negotiation mechanism is not standardized and some do not negotiate at all.

14 years agoUpdated 3.2 release notes.
Amos Jeffries [Mon, 4 Oct 2010 05:45:50 +0000 (23:45 -0600)] 
Updated 3.2 release notes.

14 years agoRevert r10909
Amos Jeffries [Mon, 4 Oct 2010 05:44:42 +0000 (23:44 -0600)] 
Revert r10909

14 years agoUpdated 3.2 release notes
Amos Jeffries [Mon, 4 Oct 2010 05:43:22 +0000 (23:43 -0600)] 
Updated 3.2 release notes

14 years agoEnhance source maintenance scripts astyle detection
Amos Jeffries [Sun, 3 Oct 2010 14:57:26 +0000 (03:57 +1300)] 
Enhance source maintenance scripts astyle detection

14 years agoConvert compat library to a full library.
Amos Jeffries [Sun, 3 Oct 2010 14:42:04 +0000 (08:42 -0600)] 
Convert compat library to  a full library.

To be linked with LIBOBJS requires full local library status.

To prevet naming clashes rename as libcompat-squid

14 years agoMake auto-tools portability linked objects part of libcompat
Amos Jeffries [Fri, 1 Oct 2010 15:10:14 +0000 (09:10 -0600)] 
Make auto-tools portability linked objects part of libcompat

This removes the need for many binaries to include libmisc at all.

14 years agoBug 3068: cache_dir capacity and usage overflows
Amos Jeffries [Fri, 1 Oct 2010 05:29:18 +0000 (23:29 -0600)] 
Bug 3068: cache_dir capacity and usage overflows

Makes usage calculations use size_t instead of int and updates the
relevant fields storing the cache_dir capacity and usage fields as well.

This fixes Squid filling cache_dir with files >2GB in size.
Also allows Squid to store more than 2TB of data total in one dir.

14 years agoCleanup ETag comparison functions in preparation for If-Match support.
Alex Rousskov [Fri, 1 Oct 2010 00:41:19 +0000 (18:41 -0600)] 
Cleanup ETag comparison functions in preparation for If-Match support.

Replace etagIsEqual() with etagIsStrongEqual() function that does proper strong
ETag comparison instead of asserting on weak ETags.

Add etagIsWeakEqual() function for weak ETag comparison. Currently unused.

Both etagIs*Equal() functions call etagStringsMatch() helper to compare the tags.

No runtime behavior changes expected.

14 years agoTranslation .po/.pot updates
Amos Jeffries [Thu, 30 Sep 2010 03:54:00 +0000 (15:54 +1200)] 
Translation .po/.pot updates

14 years agoDocumentation: display default-if-none instead of 'none' defaults.
Amos Jeffries [Thu, 30 Sep 2010 01:12:15 +0000 (19:12 -0600)] 
Documentation: display default-if-none instead of 'none' defaults.

Updates the parser to accept DEFAULT_IF_NONE: as a valid default value
instead of requiring "DEFAULT: none" to be explicitly configured.

This removes several cases from the docs where 'none' is displayed but
means 'no default' rather than the text value of "none" being possible.

14 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 30 Sep 2010 00:21:50 +0000 (18:21 -0600)] 
SourceFormat Enforcement

14 years agoMore unit-tests for HTTP request first in parser.
Amos Jeffries [Wed, 29 Sep 2010 07:25:36 +0000 (01:25 -0600)] 
More unit-tests for HTTP request first in parser.

Catches strange integer values for the version.

14 years agoBug 3051: integer display overflow
Amos Jeffries [Wed, 29 Sep 2010 07:05:03 +0000 (01:05 -0600)] 
Bug 3051: integer display overflow

This alters the cachemgr display formatting to use 64-bit integers
instead of 32-bit. Revealing overflows hiding behind display overflows.

14 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 29 Sep 2010 00:12:13 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoHTTP Compliance: improve age calculation.
Alex Rousskov [Tue, 28 Sep 2010 15:40:07 +0000 (09:40 -0600)] 
HTTP Compliance: improve age calculation.

Account for response delay in age calculation as described in RFC 2616 section
13.2.3.

Co-Advisor test cases:
    test_case/rfc2616/ageCalc-none-7-none
    test_case/rfc2616/ageCalc-5400-4-5

14 years agoHTTP Compliance: Reply with an error if required validation fails.
Alex Rousskov [Tue, 28 Sep 2010 15:20:36 +0000 (09:20 -0600)] 
HTTP Compliance: Reply with an error if required validation fails.

RFC 2616 says that proxy MUST not use stale entries that have s-maxage,
proxy-revalidate, or must-revalidate cache-directive.

Add new fail_on_validation_err request flag to store result from
refreshCheck().  It is needed to avoid refreshLimits() recalculation in
clientReplyContext::handleIMSReply().

Split LOG_TCP_REFRESH_FAIL into LOG_TCP_REFRESH_FAIL_OLD (stale reply sent)
and LOG_TCP_REFRESH_FAIL_ERR (error forwarded). However, both are still logged
as TCP_REFRESH_FAIL for backward-compatibility with external scripts and such.
We may decide to start logging more detailed codes later.

Co-Advisor test cases:
    test_case/rfc2616/noSrv-hit-must-reval-s-maxage-resp
    test_case/rfc2616/noSrv-hit-must-reval-proxy-revalidate-resp
    test_case/rfc2616/noSrv-hit-must-reval-must-revalidate-resp

14 years agoCleanup: Remove old_rep2 from clientReplyContext::handleIMSReply().
Alex Rousskov [Mon, 27 Sep 2010 18:42:05 +0000 (12:42 -0600)] 
Cleanup: Remove old_rep2 from clientReplyContext::handleIMSReply().

StoreEntry::getReply() returns pointer to HttpReply that belongs to MemObject.
It does not create a new object. Hence, outer old_rep, inner old old_rep, and
inner new old_rep2 in handleIMSReply() are equal.

No changes in Squid behavior are expected.

14 years agoAvoid dereferencing a nil pointer in parseNamedIntList().
Alex Rousskov [Mon, 27 Sep 2010 18:27:31 +0000 (12:27 -0600)] 
Avoid dereferencing a nil pointer in parseNamedIntList().

14 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 24 Sep 2010 00:12:24 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoFixed the profile of the CPU_SET fake replacement.
Alex Rousskov [Thu, 23 Sep 2010 19:58:30 +0000 (13:58 -0600)] 
Fixed the profile of the CPU_SET fake replacement.

14 years agoProvide CPU_SET macro when we do not HAVE_CPU_AFFINITY to minimize #ifdefs.
Alex Rousskov [Thu, 23 Sep 2010 19:46:37 +0000 (13:46 -0600)] 
Provide CPU_SET macro when we do not HAVE_CPU_AFFINITY to minimize #ifdefs.

14 years agoAdded cpu_affinity_map configuration option to bind workers to CPU cores.
Alex Rousskov [Thu, 23 Sep 2010 17:58:15 +0000 (11:58 -0600)] 
Added cpu_affinity_map configuration option to bind workers to CPU cores.

Allows the admin to place all workers on individual cores without writing a
lot of if-statements. For example,

    cpu_affinity_map process_numbers=1,2,3,4 cores=1,3,5,7

will have an effect for kids 1 through 4 only and will place them on even
cores starting with core #1.

If there are conflicts for a given process, the latest option wins and a
warning is printed. If the number of specified processes do not match the
number of specified cores, Squid quits with an error. Multiple
cpu_affinity_map options are merged.

Squid builds on systems without Linux CPU affinity calls, but setting affinity
only works if there are sched_getaffinity(2) and sched_setaffinity(2)
available. If there is no OS support but cpu_affinity options are configured,
Squid quits with an error. If there is OS support but calls fail, Squid prints
an error but does not quit.

14 years agosquidclient: Display IP(s) connected to in verbose display.
Amos Jeffries [Thu, 23 Sep 2010 14:11:09 +0000 (08:11 -0600)] 
squidclient: Display IP(s) connected to in verbose display.

14 years agoAuthor: Various Translators
Amos Jeffries [Thu, 23 Sep 2010 00:01:54 +0000 (12:01 +1200)] 
Author: Various Translators
Translations Update auto-save

14 years agoHTTP Compliance: Make date parser stricter to better handle malformed Expires.
Alex Rousskov [Wed, 22 Sep 2010 23:09:58 +0000 (17:09 -0600)] 
HTTP Compliance: Make date parser stricter to better handle malformed Expires.

Check that there is no zone or zone is "GMT" in parse_date_elements().
Make sure there is no junk at the end of date in parse_date().

This will affect Date, IMS, and other date-carrying header fields recognized
by Squid but should not cause any messages to be rejected. Squid would just
ignore the malformed headers as if they are not there.

Co-Advisor test case:
    test_case/rfc2616/invalidExpiresMakesStale-rfc1123x

14 years agoHTTP Compliance: do not remove ETag header from partial responses
Alex Rousskov [Wed, 22 Sep 2010 23:04:40 +0000 (17:04 -0600)] 
HTTP Compliance: do not remove ETag header from partial responses

RFC 2616 section 10.2.7 says that partial responses MUST include ETag
header if it would have been sent in a 200 response to the same request.

Co-Advisor test cases:
    test_case/rfc2616/scHdrs-206-include-explicit-withVary-noIfs
    test_case/rfc2616/scHdrs-206-include-explicit-woutVary-noIfs
    test_case/rfc2616/scHdrs-206-include-other-If-Range-strong

14 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 22 Sep 2010 00:12:12 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoProtect SQUIDSTRINGPRINT macro argument from merging with macro body parts.
Alex Rousskov [Tue, 21 Sep 2010 23:38:13 +0000 (17:38 -0600)] 
Protect SQUIDSTRINGPRINT macro argument from merging with macro body parts.

No runtime changes expected.

14 years agoAuthor: Various Translators
Amos Jeffries [Tue, 21 Sep 2010 18:01:17 +0000 (06:01 +1200)] 
Author: Various Translators
Translations Update auto-save

14 years agoBug 3023: url_rewrite_program silently fails to rewrite on broken URLs
Amos Jeffries [Tue, 21 Sep 2010 12:11:37 +0000 (00:11 +1200)] 
Bug 3023: url_rewrite_program silently fails to rewrite on broken URLs

Produce loud cache.log entries displayig the URL instead of silently bypassing.

14 years agoBug 3056 - comm.cc "!fd_table[fd].closing()" assertion from helperServerFree when...
Henrik Nordstrom [Mon, 20 Sep 2010 19:27:24 +0000 (21:27 +0200)] 
Bug 3056 - comm.cc "!fd_table[fd].closing()" assertion from helperServerFree when a helper crashes while processing requests

reshuffle helperServerFree so it first unregisters the failed helper
and starts new ones if needed before it calls the callbacks on any
pending requests. If not those ends up resheduling the request on
this same crashed and partially shut down helper.

14 years agoAuthor: Stefan Fritsch <sf@sfritsch.de>
Alex Rousskov [Mon, 20 Sep 2010 19:00:02 +0000 (13:00 -0600)] 
Author: Stefan Fritsch <sf@sfritsch.de>
Bug #3058 fix: errorSend and ICY leak MemBuf object.

HttpReply::pack() returns a MemBuf pointer that must be deleted. Fixed leaking
errorSend() function in errorpage.cc and ICY parsing hack in
HttpStateData::processReplyHeader().

14 years agoBug #3048 fix: "commio_has_callback(fd, IOCB_READ, ccb)" assertion;
Alex Rousskov [Mon, 20 Sep 2010 17:47:46 +0000 (11:47 -0600)] 
Bug #3048 fix: "commio_has_callback(fd, IOCB_READ, ccb)" assertion;
may also be applicable to a similar IOCB_WITE assertion.

When we start closing a descriptor, we call commio_finish_callback() to remove
I/O callbacks. If this is not done from commHandleRead or commHandleWrite,
then select(2) structures may still have our descriptor registration and will
call Comm back to read or write before the descriptor is closed for good. This
will trigger a commio_has_callback() assertion.

Based on lp 3p1-rock branch, r9606.

14 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 20 Sep 2010 00:12:14 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoBug 3053: cache version 1 LFS support detection broken
Amos Jeffries [Sun, 19 Sep 2010 22:56:59 +0000 (10:56 +1200)] 
Bug 3053: cache version 1 LFS support detection broken

Alter the upgrade detection to only be used if needed, and to load the
correct on-disk sizes for the fields being converted.

Lock the sfileno type down to 32-bits.

This also adds two new upgrade parsers:
 Fix 64-bit builds previously using sfileno as full 64-bit int
 Migrates swap.state from 32-bit to 64-bit time_t (old squid 2.4/2.5)
 64-bit->32-bit system time_t migration remains broken.

Per-file meta data is not altered by these changes, so problems may
remain there.

14 years agocorrect fde memset parameters
Amos Jeffries [Sun, 19 Sep 2010 07:03:38 +0000 (01:03 -0600)] 
correct fde memset parameters

14 years agoManual for ext_edirectory_userip_acl
Amos Jeffries [Sun, 19 Sep 2010 05:21:08 +0000 (17:21 +1200)] 
Manual for ext_edirectory_userip_acl

14 years agoAuthor: Chad Naugle <chad.naugle@travimp.com>
Amos Jeffries [Sun, 19 Sep 2010 03:31:02 +0000 (15:31 +1200)] 
Author: Chad Naugle <chad.naugle@travimp.com>
ext_edirectory_userip_acl - add omitted new file

14 years agoAuthor: Chad Naugle <Chad.Naugle@travimp.com>
Amos Jeffries [Sun, 19 Sep 2010 03:20:09 +0000 (15:20 +1200)] 
Author: Chad Naugle <Chad.Naugle@travimp.com>
ext_edirectory_userip_acl build fixes

... and compiled into a single file.

14 years agoSeveral leaks, nul-pointer dereferences and redundant checks
Amos Jeffries [Sun, 19 Sep 2010 03:03:02 +0000 (15:03 +1200)] 
Several leaks, nul-pointer dereferences and redundant checks

Caught by cppcheck static analysis.

14 years agoRelease notes updates
Amos Jeffries [Sat, 18 Sep 2010 12:55:12 +0000 (06:55 -0600)] 
Release notes updates

14 years agoUpdate release notes bugzila links
Amos Jeffries [Sat, 18 Sep 2010 09:32:00 +0000 (03:32 -0600)] 
Update release notes bugzila links

14 years agounit-tests for some of the borderline if-def cases
Amos Jeffries [Sat, 18 Sep 2010 09:28:50 +0000 (03:28 -0600)] 
unit-tests for some of the borderline if-def cases

14 years agoMore manuals documentation updates
Amos Jeffries [Fri, 17 Sep 2010 10:54:47 +0000 (22:54 +1200)] 
More manuals documentation updates

14 years agoAuthor: Edward Chernenko <edwardspec@gmail.com>
Alex Rousskov [Thu, 16 Sep 2010 21:43:19 +0000 (15:43 -0600)] 
Author: Edward Chernenko <edwardspec@gmail.com>
Fixed "stratup" typo in the auth_param examples.

14 years agoRemoved one cast too many after audit
Amos Jeffries [Thu, 16 Sep 2010 14:42:06 +0000 (02:42 +1200)] 
Removed one cast too many after audit

14 years agoFormatting fixes for manuals documentation
Amos Jeffries [Thu, 16 Sep 2010 13:07:02 +0000 (01:07 +1200)] 
Formatting fixes for manuals documentation

14 years agoUse ptrdiff_t instead of int for mem_node data offset
Amos Jeffries [Thu, 16 Sep 2010 11:27:19 +0000 (23:27 +1200)] 
Use ptrdiff_t instead of int for mem_node data offset

This is the correct POSIX type for storing pointer offsets.

TODO: The store API use of mem_node needs some design fixes to obsolete
      these offsets entirely.