]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
13 years agoChanged increment operators from postfix to prefix form.
Francesco Chemolli [Fri, 13 Jul 2012 10:48:12 +0000 (12:48 +0200)] 
Changed increment operators from postfix to prefix form.

13 years agoChanged increment/decrement operators from postfix to prefix form.
Francesco Chemolli [Thu, 12 Jul 2012 14:10:53 +0000 (16:10 +0200)] 
Changed increment/decrement operators from postfix to prefix form.

13 years agoChanged increment/decrement operators from postfix to prefix form.
Francesco Chemolli [Thu, 12 Jul 2012 09:08:16 +0000 (11:08 +0200)] 
Changed increment/decrement operators from postfix to prefix form.

13 years agoChanged increment/decrement operators from postfix to prefix form.
Francesco Chemolli [Tue, 10 Jul 2012 15:44:23 +0000 (17:44 +0200)] 
Changed increment/decrement operators from postfix to prefix form.

13 years agochanged postinc to preinc operators and increased readability in ModSelect.cc
Francesco Chemolli [Fri, 6 Jul 2012 12:19:11 +0000 (14:19 +0200)] 
changed postinc to preinc operators and increased readability in ModSelect.cc

13 years agoImproved readability in some prefix increment/decrement operators.
Francesco Chemolli [Fri, 6 Jul 2012 10:18:43 +0000 (12:18 +0200)] 
Improved readability in some prefix increment/decrement operators.

13 years agoMerged from trunk
Francesco Chemolli [Mon, 2 Jul 2012 15:31:32 +0000 (17:31 +0200)] 
Merged from trunk

13 years agoPrefix-to-postfix increment operator change in some helpers.
Francesco Chemolli [Mon, 2 Jul 2012 15:31:03 +0000 (17:31 +0200)] 
Prefix-to-postfix increment operator change in some helpers.

13 years agoSmall optimization in CommOpener statistic accounting.
Francesco Chemolli [Mon, 2 Jul 2012 15:30:02 +0000 (17:30 +0200)] 
Small optimization in CommOpener statistic accounting.

13 years agoChange increment and decrement operators from postfix to prefix form.
Francesco Chemolli [Mon, 2 Jul 2012 12:37:13 +0000 (14:37 +0200)] 
Change increment and decrement operators from postfix to prefix form.

13 years agoChange increment and decrement operators from postfix to prefix form.
Francesco Chemolli [Mon, 2 Jul 2012 12:28:10 +0000 (14:28 +0200)] 
Change increment and decrement operators from postfix to prefix form.

13 years agoChange increment and decrement operators from postfix to prefix form.
Francesco Chemolli [Mon, 2 Jul 2012 12:14:07 +0000 (14:14 +0200)] 
Change increment and decrement operators from postfix to prefix form.

13 years agoAdd helper macro for parser deprecation notes
Amos Jeffries [Mon, 2 Jul 2012 01:50:03 +0000 (13:50 +1200)] 
Add helper macro for parser deprecation notes

When '-k parse' is used deprecation notices and upgrade help messages etc
need to be bumped consistently up to level-0 and this macro will help
reducing the (?:) code mistakes.

13 years agoTypos
Amos Jeffries [Fri, 29 Jun 2012 01:28:05 +0000 (13:28 +1200)] 
Typos

13 years agoBug 3581: Wrong years in ChangeLog
Amos Jeffries [Fri, 29 Jun 2012 01:07:52 +0000 (19:07 -0600)] 
Bug 3581: Wrong years in ChangeLog

13 years agoPrep for 3.2.0.18
Amos Jeffries [Fri, 29 Jun 2012 00:57:50 +0000 (18:57 -0600)] 
Prep for 3.2.0.18

13 years agoDo not double-escape %R on deny_info redirects
Amos Jeffries [Wed, 27 Jun 2012 19:15:28 +0000 (07:15 +1200)] 
Do not double-escape %R on deny_info redirects

13 years agoBug 3576: ICY streams being Transfer-Encoding:chunked
Amos Jeffries [Mon, 25 Jun 2012 07:43:36 +0000 (19:43 +1200)] 
Bug 3576: ICY streams being Transfer-Encoding:chunked

13 years agoFix build with GCC 4.7 (and probably other C++11 compilers).
Dmitry Kurochkin [Fri, 22 Jun 2012 03:49:38 +0000 (21:49 -0600)] 
Fix build with GCC 4.7 (and probably other C++11 compilers).

User-defined literals introduced by C++11 break some previously valid
code, resulting in errors when building with GCC v4.7. For example:

  error: unable to find string literal operator 'operator"" PRIu64'

In particular, whitespace is now needed after a string literal and
before something that could be a valid user-defined literal.  See
"User-defined literals and whitespace" section at [1] for more details.

The patch adds spaces between string literals and macros.

[1] http://gcc.gnu.org/gcc-4.7/porting_to.html

13 years agoDo not report the same job multiple times.
Alex Rousskov [Thu, 21 Jun 2012 20:59:23 +0000 (14:59 -0600)] 
Do not report the same job multiple times.

13 years agoCleanup: disconnect Authentication and URL-rewrite callback handlers
Amos Jeffries [Tue, 19 Jun 2012 23:16:13 +0000 (11:16 +1200)] 
Cleanup: disconnect Authentication and URL-rewrite callback handlers

The authentication handlers were for some reason using RH (rewrite helper)
callback typedef. But specifying it as a fatal error if the char*
parameter was used in auth.

Assign a new callback typedef AUTHCB for use by authentication callers.

This allows auth callers to use different parameters (none) and to avoid
possibly fatal mistakes when coding new auth modules.

13 years agoAccount for Store disk client quota when bandwidth-limiting the server.
Alex Rousskov [Mon, 18 Jun 2012 23:13:05 +0000 (17:13 -0600)] 
Account for Store disk client quota when bandwidth-limiting the server.

It is not clear why the store client type matters when
MemObject::mostBytesAllowed() is trying to find the maximum delay pool
quota for reading from the next hop HTTP server.  Whether the client(s)
are reading from disk or RAM, the corresponding server-side bandwidth
ought to be limited.

This code was removed as a part of bug 3462 investigation, but it is not
needed to fix bug 3462.

13 years agoBug 3462: Delay Pools and ICAP
Julien Pinon [Mon, 18 Jun 2012 23:08:56 +0000 (17:08 -0600)] 
Bug 3462: Delay Pools and ICAP

Allow StoreEntry::bytesWanted() API to ignore delay pools. Use that
feature when shoveling adapted response body from ICAP/eCAP BodyPipe
into Store.

If we do not ignore delay pools in
ServerStateData::handleMoreAdaptedBodyAvailable() context, and our pool
quota is exhausted, we will stop reading from the adaptation BodyPipe,
but there is no code/API to notify a BodyPipe reader when the quota
becomes available again.  With no reads from the pipe, the ICAP service
stops sending more adapted body data and possibly stops reading the
virgin body data from Squid, resulting in a stuck ICAP RESPMOD and the
master HTTP transaction.

We do need to call StoreEntry::bytesWanted() in this context because
otherwise Squid may run out of RAM (Squid bug #2619). The fix for that
problem inadvertently created this bug when delay pools were enabled.

Long-term, a "kick BodyPipe consumer when there is quota" code should be
added, and delay pools should be enabled for ICAP responses, but with
enough knobs for admins to disable ICAP pooling where needed. Most ICAP
environments will probably want to disable bandwidth controls because
ICAP service traffic is usually "local".

Removed StoreEntry::bytesWanted() TRY_FWD_HDR_WAIT guard that disabled
delay pool application until the final HTTP response headers are
received (HttpStateData::haveParsedReplyHeaders() is called). Nobody
could fully explain why that condition was really needed (and we
obviously want to limit bandwidth consumption at all response processing
stages, in general). The now-removed guard was bypassing delay pool
checks for virgin HTTP response (until the ICAP server responded with
adapted headers), causing bandwidth overuse.

Possibly fixes or helps with Squid bug #2606 as well.

13 years agoBug 2976: squid reports ERR_INVALID_URL for transparently captured requests when...
Christos Tsantilas [Mon, 18 Jun 2012 15:43:05 +0000 (18:43 +0300)] 
Bug 2976: squid reports ERR_INVALID_URL for transparently captured requests when reconfiguring

During reconfigure the configured AnyP::PortCfg objects in http_port_list
may deleted so it is not safe to use them while processing Http requests.
For this reason inside prepareTransparentURL (file client_side.cc) function
the protocol was hard-coded to "http" instead of read it from the related
AnyP::PortCfg object.
But this is breaks the intercepted https traffic.

This patch:
  1. Inside prepareTransparentURL read the protocol from the related
     AnyP::PortCfg object
  2. add_http_port() locks the new port pointer before linking it.
  3. parsePortCfg() locks the new port pointer before linking it.
  4. free_PortCfg() unlock the old port pointer before unlinking
     it. It does not delete the old pointer.

This patch also discussed in squid-dev user mailing list in
 "Re: [PATCH] Squid host rewrite for intercepted https requests"
thread.

This is a Measurement Factory project

13 years agoSourceFormat Enforcement
Automatic source maintenance [Sun, 17 Jun 2012 01:19:07 +0000 (19:19 -0600)] 
SourceFormat Enforcement

13 years agoLanguage: hy updates
Arthur Tumanyan [Sun, 17 Jun 2012 00:01:36 +0000 (12:01 +1200)] 
Language: hy updates

13 years agoFix several ACL-related bugs including broken default rules and ACCESS_DUNNO.
Alex Rousskov [Sat, 16 Jun 2012 15:03:46 +0000 (09:03 -0600)] 
Fix several ACL-related bugs including broken default rules and ACCESS_DUNNO.

For example:

    # broken when "goodGuys" matches (denies good guys)
    acl_driven_option deny !goodGuys

and

    # broken if badGuys fails to match or mismatch (allows bad guys)
    acl_driven_option allow !badGuys

Fixing the above resulted in significant changes (and more fixes!)
detailed below.

 * Revised ACLChecklist::fastCheck() and nonBlockingCheck() APIs to
   clarify all possible outcomes and to specify that exceptional ACL
   check outcomes (not ALLOW or DENIED) are not ignored/skipped but
   result in the same exceptional final answer. I believe this is the
   right behavior even if it is going to break some [already broken
   IMHO] existing configurations. Skipping failed ACLs is insecure and
   may lead to confusing results.

 * Correctly handle cases where no rules were matched and, hence, the
   keyword/action of the last seen rule (if any) has to be "reversed".

 * Do not ignore non-allow/deny outcomes of rules in fastCheck().

 * Move away from setting the "default" (and usually wrong) "current"
   answer and then sometimes adjusting it. Set the answer only when we
   know what it is. This is done using markFinished() call which now
   accepts the [final] answer value and debugging reason for selecting
   that answer.

 * Streamline and better document ACLChecklist::matchAclList()
   interface.  Use it in a more consistent fashion.

 * Rewrote ACLChecklist::matchAclList() implementation when it comes to
   handling ACLList::matches() outcomes. Better document and restrict
   supported outcomes. Assert on unsupported outcomes (for now).

 * Removed ACLChecklist::lastACLResult(). It was doing nothing but
   duplicating nodeMatched value as far as I could tell.

 * Removed ProxyAuthNeeded class. It is an async state that does not
   perform async operations and, hence, is not needed.

 * Move IdentLookup::checkForAsync() connection check into
   ACLIdent::match() to avoid creating an async state that is not
   needed.

 * Polished aclMatchExternal() and greatly simplified
   ACLExternal::ExternalAclLookup() to avoid creating async state under
   non-async conditions, to avoid checking for the same conditions
   twice, to fix wrong debugging messages, and to simplify (and possibly
   fix) the overall algorithm.

   The aclMatchExternal() call now checks most of the corner cases,
   discards stale cached entries, and schedules either a background
   cache update or a regular external lookup as needed.

   ACLExternal::ExternalAclLookup() code is now
   ExternalACLLookup::Start().  It initiates an external lookup. It does
   not deal with the cached entry at all. It relies on
   aclMatchExternal() to check various preconditions.

   Some of the old code made little sense to me, and this is the biggest
   ACL-specific change in this project, with the highest probability of
   new bugs or unintended side-effects.

   My goal here was to prevent aclMatchExternal() from creating an async
   state where none was needed because new ACLChecklist::matchAclList()
   code prohibited such self-contradictory outcomes. However, I later
   discovered that it is not possible to prohibit them without rewriting
   how Squid DNS cache lookups are working -- ipcache_nbgethostbyname()
   and similar code may call back immediately if the item is in the
   cache. Since I did not want to rewrite DNS code as well, I ended up
   relaxing the ACLChecklist::matchAclList() code requirements, going a
   step back to where we sometimes call ACLList::matches() twice for the
   same ACL node.

   Thus, it is probably possible to undo most of the external_acl.cc
   changes.  I left them in because I think they improve the quality of
   the code and possibly fix a bug or two.

 * Adjusted ACLMaxUserIP::match(), ACLProxyAuth::match(), and
   ACLExternal::match() to explicitly stop ACL processing when an
   exceptional state is discovered instead of just setting the current
   answer and proceeding as if more ACLs could be checked. On the other
   hand, we now do not set the answer if the corresponding internal
   matching code (e.g., AuthenticateAcl()) needs an async operation
   because we do not know the answer yet.

 * Fixed HttpStateData::handle1xx() and
   HttpStateData::finishingBrokenPost() to correctly handle
   fastCheck(void) return values. They were assuming that there are only
   two possible return values (ACCESS_DENIED/ALLOWED), potentially
   subjecting more messages to invasive adaptations than necessary.

TODO:

 * Rename currentAnswer() to finalAnswer(). We probably never change the
   "current" answer any more.

13 years agoBug 3405: ssl_crtd crashes failing to remove certificate
Alex Rousskov [Sat, 16 Jun 2012 02:17:14 +0000 (20:17 -0600)] 
Bug 3405: ssl_crtd crashes failing to remove certificate

13 years agoFix testHttpParser compile error 'variable tracking size limit exceeded'
Amos Jeffries [Wed, 13 Jun 2012 03:17:53 +0000 (15:17 +1200)] 
Fix testHttpParser compile error 'variable tracking size limit exceeded'

This can occur due to long lists of unit tests needing a lot of local
variable state tracking. Essentially 'function too long' after CPPUNIT
macros have been expanded.

Break the large set of request-line unit tests into groups related to
sub-parts of the request-line.

13 years agoBug 3561: cbdata cookie assertion after bug #3505 fix.
Alex Rousskov [Tue, 12 Jun 2012 14:41:36 +0000 (08:41 -0600)] 
Bug 3561: cbdata cookie assertion after bug #3505 fix.

13 years agoSQL database session helper
Amos Jeffries [Tue, 12 Jun 2012 08:50:53 +0000 (20:50 +1200)] 
SQL database session helper

Session lookup helper which utilizes any SQL database backend.

For now it is a read-only session lookup. Session management is expected
to be controlled by an external system, such as a captive portal login
page.

13 years agoPerformance: ACLFilledChecklist fills istelf from HttpRequest
Amos Jeffries [Tue, 12 Jun 2012 07:01:02 +0000 (01:01 -0600)] 
Performance: ACLFilledChecklist fills istelf from HttpRequest

13 years agoBug 3564: eCAP not supporting CoAP URI schemes
Amos Jeffries [Mon, 11 Jun 2012 06:03:50 +0000 (00:03 -0600)] 
Bug 3564: eCAP not supporting CoAP URI schemes

13 years agoFixed typo in r12165 (Bug 2138: NTLM passthrough using accel peer and ssl)
Alex Rousskov [Fri, 8 Jun 2012 15:10:10 +0000 (09:10 -0600)] 
Fixed typo in r12165 (Bug 2138: NTLM passthrough using accel peer and ssl)

13 years agossl_crtd compile issues with libsslutil
Alexander Komyagin [Fri, 8 Jun 2012 11:33:21 +0000 (05:33 -0600)] 
ssl_crtd compile issues with libsslutil

13 years agoPrep for 3.1.20
Amos Jeffries [Fri, 8 Jun 2012 11:00:03 +0000 (05:00 -0600)] 
Prep for 3.1.20

13 years agoBug 3526: permit high-speed nonce regeneration
Frederic Bourgeois [Thu, 7 Jun 2012 10:27:46 +0000 (04:27 -0600)] 
Bug 3526: permit high-speed nonce regeneration

13 years agoBug 2138: NTLM passthrough using accel cache_peer and ssl
Juan [Wed, 6 Jun 2012 00:28:11 +0000 (18:28 -0600)] 
Bug 2138: NTLM passthrough using accel cache_peer and ssl

13 years agoDrop dead include from xusleep.c
Amos Jeffries [Tue, 5 Jun 2012 23:55:22 +0000 (17:55 -0600)] 
Drop dead include from xusleep.c

13 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 5 Jun 2012 00:23:48 +0000 (18:23 -0600)] 
SourceFormat Enforcement

13 years agoRemove xcountws PROF_type
Amos Jeffries [Mon, 4 Jun 2012 10:03:11 +0000 (04:03 -0600)] 
Remove xcountws PROF_type

13 years agoCleanup: remove xcountws() function
Amos Jeffries [Mon, 4 Jun 2012 10:00:44 +0000 (04:00 -0600)] 
Cleanup: remove xcountws() function

Reduces dependencies and removes one more unnecessary symbol

13 years agoSourceLayout: convert hash.c to hash.cc
Amos Jeffries [Sun, 3 Jun 2012 08:10:29 +0000 (02:10 -0600)] 
SourceLayout: convert hash.c to hash.cc

Fix compiler identified C'isms. No other changes.

13 years agoBug 3013: segmentation fault on shutdown commSetCloseOnExec at comm.cc:1889
Christos Tsantilas [Fri, 1 Jun 2012 07:44:48 +0000 (01:44 -0600)] 
Bug 3013: segmentation fault on shutdown commSetCloseOnExec at comm.cc:1889

13 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 31 May 2012 01:09:59 +0000 (19:09 -0600)] 
SourceFormat Enforcement

13 years agoBootstrapped
Automatic source maintenance [Thu, 31 May 2012 00:20:44 +0000 (18:20 -0600)] 
Bootstrapped

13 years agoBug 3233: Invalid URL accepted with url host is white spaces
Amos Jeffries [Wed, 30 May 2012 10:59:01 +0000 (04:59 -0600)] 
Bug 3233: Invalid URL accepted with url host is white spaces

13 years agoBug 3074: Improper URL handling with empty path (RFC 3986)
Fyodor [Wed, 30 May 2012 10:55:16 +0000 (04:55 -0600)] 
Bug 3074: Improper URL handling with empty path (RFC 3986)

13 years agoBug 3463: dnsserver fails to compile
Christos Tsantilas [Wed, 30 May 2012 10:25:42 +0000 (04:25 -0600)] 
Bug 3463: dnsserver fails to compile

13 years agoBug 3390: Proxy auth data visible to scripts
Francesco Chemolli [Wed, 30 May 2012 03:45:12 +0000 (21:45 -0600)] 
Bug 3390: Proxy auth data visible to scripts

13 years agoBug 3537: polish StatHist copy to avoid memory errors
Timo Teras [Wed, 30 May 2012 03:36:54 +0000 (21:36 -0600)] 
Bug 3537: polish StatHist copy to avoid memory errors

13 years agoAuthor: Dan Searle <dan.searle@censornet.com>
Christos Tsantilas [Tue, 29 May 2012 19:03:39 +0000 (22:03 +0300)] 
Author: Dan Searle <dan.searle@censornet.com>
External credentials to ICAP

Pass user credentials obtained from external ACLs to the ICAP service
using Proxy-Authorization and X-Client-Username ICAP headers.

13 years agoBug 3380: Fix compile error after patch r12149 applied
Christos Tsantilas [Tue, 29 May 2012 18:58:03 +0000 (21:58 +0300)] 
Bug 3380: Fix compile error after patch r12149 applied

Include the "compat/cmsg.h" header in src/ipc/TypedMsgHdr.h file to allow
squid compile.

13 years agoBug 3380: Mac OSX compile errors with CMSG_SPACE
Dmitry Kurochkin [Tue, 29 May 2012 12:20:02 +0000 (06:20 -0600)] 
Bug 3380: Mac OSX compile errors with CMSG_SPACE

13 years agoFix bashism in SQUID_STATE_SAVE
Amos Jeffries [Tue, 29 May 2012 09:34:10 +0000 (03:34 -0600)] 
Fix bashism in SQUID_STATE_SAVE

13 years agoExtend g++ compatibility for extern inline functions
Francesco Chemolli [Mon, 28 May 2012 02:55:56 +0000 (20:55 -0600)] 
Extend g++ compatibility for extern inline functions

13 years agoDefine PRIuSIZE for displaying size_t
Amos Jeffries [Mon, 28 May 2012 02:40:52 +0000 (20:40 -0600)] 
Define PRIuSIZE for displaying size_t

This allows us to avoid casting size_t to long long for printf.

./configure script auto-detects the supposedly standard %zu macro in case
it is missing and compat/types.h defines some alternatives for systems
which do not define it.

13 years agoWindows: Disable WCCP, WCCPv2, DiskDaemon by default on MinGW
Francesco Chemolli [Mon, 28 May 2012 00:19:43 +0000 (18:19 -0600)] 
Windows: Disable WCCP, WCCPv2, DiskDaemon by default on MinGW

13 years agoWindows: Support DiskIO AIO on Win32
Francesco Chemolli [Sun, 27 May 2012 23:51:04 +0000 (17:51 -0600)] 
Windows: Support DiskIO AIO on Win32

13 years agoWindows: Implemented working check for libiphlpapi
Francesco Chemolli [Sun, 27 May 2012 23:46:56 +0000 (17:46 -0600)] 
Windows: Implemented working check for libiphlpapi

13 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 24 May 2012 00:23:52 +0000 (18:23 -0600)] 
SourceFormat Enforcement

13 years agoFix protocol names in AnyP::PortCfg after http_port_list revamp in r12121.
Alex Rousskov [Wed, 23 May 2012 23:34:49 +0000 (17:34 -0600)] 
Fix protocol names in AnyP::PortCfg after http_port_list revamp in r12121.

The bug manifests itself when the URIs of intercepted requests are rewritten
into "https_port://..." strings, resulting in "Invalid port '0'" errors in
urlParse, followed by HTTP 400 (Bad Request) rejection.

There are other, more subtle cases where wrong PortCfg protocol matters.

13 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 22 May 2012 00:39:25 +0000 (18:39 -0600)] 
SourceFormat Enforcement

13 years agoRegister RFC 6585 status codes
Amos Jeffries [Mon, 21 May 2012 02:53:31 +0000 (20:53 -0600)] 
Register RFC 6585 status codes

13 years agoBug 3526: digest authentication crash
Frederic Bourgeois [Thu, 17 May 2012 01:59:44 +0000 (13:59 +1200)] 
Bug 3526: digest authentication crash

13 years agoMake StatHist::clear inline to reduce dependencies
Amos Jeffries [Mon, 14 May 2012 12:45:54 +0000 (00:45 +1200)] 
Make StatHist::clear inline to reduce dependencies

13 years agoBug 3545: FreeBSD dnsserver segfaults
Marcin Wisnicki [Mon, 14 May 2012 02:40:12 +0000 (20:40 -0600)] 
Bug 3545: FreeBSD dnsserver segfaults

13 years agoBug 3186: Digest auth caches failed state without revalidating
Will Roberts [Mon, 14 May 2012 01:06:54 +0000 (19:06 -0600)] 
Bug 3186: Digest auth caches failed state without revalidating

13 years agoSourceFormat Enforcement
Automatic source maintenance [Mon, 14 May 2012 00:23:32 +0000 (18:23 -0600)] 
SourceFormat Enforcement

13 years agoPortability fix: remove GNU-specific syntax
Amos Jeffries [Sun, 13 May 2012 03:26:00 +0000 (15:26 +1200)] 
Portability fix: remove GNU-specific syntax

detected by clang++.

13 years agoBug 3537: statistics histogram leaks memory
Timo Teras [Sat, 12 May 2012 03:48:02 +0000 (21:48 -0600)] 
Bug 3537: statistics histogram leaks memory

13 years agoLog TCP_REDIRECT when Squid generates a 300-399 status response
Amos Jeffries [Sat, 12 May 2012 03:21:00 +0000 (21:21 -0600)] 
Log TCP_REDIRECT when Squid generates a 300-399 status response

To identify when 3xx is received from upstream or generated by Squid.

3xx from servers or ICAP/eCAP will continue to use TCP_MISS
and other status codes.

13 years agoBug 2885: AIX: check and set required compiler flags
Karl Benoit [Fri, 11 May 2012 05:45:20 +0000 (17:45 +1200)] 
Bug 2885: AIX: check and set required compiler flags

13 years agoBug 3466: Adaptation stuck on last single-byte body piece
Alex Rousskov [Tue, 8 May 2012 18:14:08 +0000 (12:14 -0600)] 
Bug 3466: Adaptation stuck on last single-byte body piece

Changed StoreEntry::bytesWanted(range) to return range.end when the entry can
accommodate range.end bytes. This makes it possible to use that method for
single-byte ranges. Old code returned zero for such ranges, which was
difficult to distinguish from situations where no bytes were wanted at all.

TODO: The StoreEntry::bytesWanted(range) API is left undocumented because it
seems to be slightly broken and/or inconsistent with callers and with the
DelayId::bytesWanted(min, max) API. AFAICT, we should convert
StoreEntry::bytesWanted API from range-based to min/max-based or even just
max-based.

Store Entry API does not use the lower end of the range (except for the
now-removed assertion that the range is not empty). I suspect that Store API
was meant to be used with (first, last+1) "byte position" parameters (returning
the number of bytes wanted) while the DelayId API was meant to be used with
(min, max) "number of bytes" parameters.  However, StoreEntry::bytesWanted
implementation does not follow this assumption so perhaps my speculation is
wrong and there are more problems, including this change.

13 years agoDrop ACCESS_AUTH_EXPIRED_* extended auth states
Amos Jeffries [Tue, 8 May 2012 01:21:10 +0000 (19:21 -0600)] 
Drop ACCESS_AUTH_EXPIRED_* extended auth states

Alternative approaches being discussed by squid-dev still, but agreed
that this was the wrong approach to implementation rollout.

13 years agoRevert revno11955 fix for bug 3444
Amos Jeffries [Tue, 8 May 2012 01:13:51 +0000 (19:13 -0600)] 
Revert revno11955 fix for bug 3444

13 years agoAdd support for TLSv1.1 and TLSv1.2 options and methods
Amos Jeffries [Sun, 6 May 2012 01:29:22 +0000 (19:29 -0600)] 
Add support for TLSv1.1 and TLSv1.2 options and methods

When OpenSSL v1.0.1+ is being built against.

Also update the documentation for sslproxy_version which was not
mentioning what the supported version codes were.

Future work:
* make version config option(s) accept a set of named versions and
  convert to codes internally.
* redesign how version and options are handled. Admin should be able to
  just list the TLSv* wanted and Squid figure out the appropriate options
  from there.

13 years agoRFC 6585 extends HTTP
Amos Jeffries [Sun, 6 May 2012 01:27:25 +0000 (19:27 -0600)] 
RFC 6585 extends HTTP

13 years agoSourceFormat Enforcement
Automatic source maintenance [Thu, 26 Apr 2012 01:04:17 +0000 (19:04 -0600)] 
SourceFormat Enforcement

13 years agoBug 3258: Requests hang when Host forgery verify fails
Guy Helmer [Wed, 25 Apr 2012 22:32:00 +0000 (10:32 +1200)] 
Bug 3258: Requests hang when Host forgery verify fails

13 years agoSSL and ssl_crtd was broken after latest changes
Christos Tsantilas [Wed, 25 Apr 2012 21:08:51 +0000 (00:08 +0300)] 
SSL and ssl_crtd was broken after latest changes

The http_port_list struct renamed to AnyP::PortCfg

13 years agoSourceLayout: port config and select-loop priority polishing
Amos Jeffries [Wed, 25 Apr 2012 05:29:20 +0000 (23:29 -0600)] 
SourceLayout: port config and select-loop priority polishing

- renames http_port_list to AnyP::PortCfg
- de-duplicate https_port_list into AnyP::PortCfg
- shuffles related globals and defines into anyp/PortCfg.*
- renames MAXHTTPPORTS to MAXTCPLISTENPORTS to suit its actual coverage of HTTP and HTTPS ports.
- shuffled config port clone function into a method.
- rename ICP/HTCP/SNMP API functions to consistent *OpenPorts() and *ClosePorts()

  NP:following applies to incoming_* and *_poll_cnt directives.
- renames *_icp_* to *_udp_*
- renames *_http_* to *_tcp_*
- shuffles duplicated struct SquidConf options into a shared structure
- shuffles related defines into comm/Loops.h
- documents options better

- various other cosmetic syntax tweaks and polish

One bug fix:
  comm_dns_incoming was not being propigated in StatsHist copy/clone.
  Now is. I seem to remember mention of something similar being zero before,
  but can't find the bug report.

13 years agoMark verified intercept traffic correctly after DNS lookup
Alexander Komyagin [Wed, 18 Apr 2012 22:28:06 +0000 (10:28 +1200)] 
Mark verified intercept traffic correctly after DNS lookup

13 years agoBug 3484: Docs: sslproxy_cert_error example flawed
Alex Rousskov [Thu, 12 Apr 2012 19:57:57 +0000 (13:57 -0600)] 
Bug 3484: Docs: sslproxy_cert_error example flawed

Synced ACL name after ACL type change in r12117.

This is still far from perfect because dstdomain is not really a FAST ACL
either: Its documentation says that it becomes slow on IP addresses.

13 years agoPrep for 3.2.0.17
Amos Jeffries [Thu, 12 Apr 2012 13:27:15 +0000 (07:27 -0600)] 
Prep for 3.2.0.17

13 years agoBug 3484: Docs: sslproxy_cert_error example flawed
Guy Helmer [Thu, 12 Apr 2012 03:12:59 +0000 (15:12 +1200)] 
Bug 3484: Docs: sslproxy_cert_error example flawed

13 years agoAdditional 308 status handling
Amos Jeffries [Wed, 11 Apr 2012 09:10:15 +0000 (03:10 -0600)] 
Additional 308 status handling

* relay "Permanent Redirect" message on status line
* MAY cache these responses with heuristics
* accept this status as a redirect status from URL redirectors

13 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 11 Apr 2012 00:15:57 +0000 (18:15 -0600)] 
SourceFormat Enforcement

13 years agoC++ type checking does not permit sockaddr static_cast
Amos Jeffries [Tue, 10 Apr 2012 12:02:15 +0000 (06:02 -0600)] 
C++ type checking does not permit sockaddr static_cast

13 years agoBug 3441: Part 3: Replace corrupted v1 swap.state with new v2 format.
Alex Rousskov [Tue, 10 Apr 2012 04:26:14 +0000 (22:26 -0600)] 
Bug 3441: Part 3: Replace corrupted v1 swap.state with new v2 format.

A fix for bug 3408 changed the offset at which we start writing dirty
swap.state entries from StoreSwapLogHeader::record_size to StoreSwapLogHeader
size.  However, the log-reading code still read the entries starting from the
old offset (which is required to remain compatible with how a clean swap.state
is written).

Wrong starting offset essentially means that the vast majority of read
swap.state entries were bogus. They could only match some real entry when 64*n
is divisible by 12 and perhaps when their random data just happened to match a
real entry. Part 2 of this bug fix (trunk r11995) started to pad the [dirty]
swap.state header to start entry writing at StoreSwapLogHeader::record_size
boundary.

Changes specific to Part 3:

Unfortunately, since old v1 logs could contain completely bogus entries as the
result of being read (at some point) from the wrong offset, we should not load
v1 logs any more (neither dirty nor clean because what looks clean now could
be based on a previously dirty and, hence, corrupted log). This forced us to
raise the swap.state format version from 1 to 2.

After this change, if a v1 swap log is detected, Squid ignores it and does a
from-directory rebuild as if no swap.state files were found.

Since we had to change swap.state format version, we also made log entry size
and composition the same across virtually all platforms; added checksums so
that a similar bug would not go unnoticed for so long (and would not result in
log corruption); and increased the size of time-related entries to avoid the
"year 2038" problem.

The swap log entries are still written to disk in host byte order.

We now also zero the [dirty] swap.state header padding to prevent random and
potentially sensitive garbage in logs.

Cache index rebuild kinds are now reported using the following three labels:

* Rebuild using a swap log created by Squid during clean shutdown: "clean log"
* Rebuild using a swap log accumulated by a running Squid: "dirty log"
* Rebuild using directory scan: "no log"

The first kind used to be reported as CLEAN and the other two as DIRTY rebuild.

13 years agoLanguage: fr updates
Bernard [Fri, 6 Apr 2012 18:05:45 +0000 (06:05 +1200)] 
Language: fr updates

13 years agoTypo in cachemgr CGI manual
Amos Jeffries [Thu, 5 Apr 2012 01:15:20 +0000 (13:15 +1200)] 
Typo in cachemgr CGI manual

13 years agoBug 3527: EUI compile errors on Mac OS X 10.5.8 PPC
Amos Jeffries [Wed, 4 Apr 2012 22:16:12 +0000 (10:16 +1200)] 
Bug 3527: EUI compile errors on Mac OS X 10.5.8 PPC

13 years agoSourceFormat Enforcement
Automatic source maintenance [Wed, 4 Apr 2012 00:21:57 +0000 (18:21 -0600)] 
SourceFormat Enforcement

13 years agoBug 3505: crash in CbcPointer<Comm::ConnOpener> constructor
Alex Rousskov [Tue, 3 Apr 2012 11:06:14 +0000 (23:06 +1200)] 
Bug 3505: crash in CbcPointer<Comm::ConnOpener> constructor

13 years agoNULL defined by our compat/types.h
Amos Jeffries [Tue, 3 Apr 2012 05:29:24 +0000 (23:29 -0600)] 
NULL defined by our compat/types.h

13 years agoAdd missing include in snmp_core.cc
Amos Jeffries [Tue, 3 Apr 2012 05:00:59 +0000 (17:00 +1200)] 
Add missing include in snmp_core.cc

13 years agoLanguage: fr updates
Bernard [Mon, 2 Apr 2012 18:05:47 +0000 (06:05 +1200)] 
Language: fr updates

13 years agoBootstrapped
Automatic source maintenance [Mon, 2 Apr 2012 04:59:33 +0000 (22:59 -0600)] 
Bootstrapped

13 years agoTypo in UdpOpenDialer
Amos Jeffries [Mon, 2 Apr 2012 02:25:40 +0000 (14:25 +1200)] 
Typo in UdpOpenDialer