]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
14 years agoConfigurable SSL error details messages
Christos Tsantilas [Fri, 17 Jun 2011 07:46:48 +0000 (10:46 +0300)] 
Configurable SSL error details messages

This project adds support for a translatable and customisable error detail file
(errors/templates/error_details.txt). The file is stored like we store error
page templates today. Inside the file, an HTTP-like format used that can be
later extended to other error details (and beyond):

name: value
details: "value"
descr: "value"

or

name: value
details: "multi
     line
     value"
descr: "value with a \"quoted string\" inside"

The code supports future translations, just like Squid already support error
page translations.

This is a Measurement Factory project
----

Some Technical details:
 - The errorpage code which is related to loading and parsing error templates
   moved to TemplateFile class. This class is used as base class for
   ErrorPageFile class which used to load error page templates.
 - The HttpHeader parser used to parse error details
 - The  error details for various languages cached to memory
 - The ErrorDetailsList  used to store a list of error details for a
   language/locale
 - The ErrorDetailsManager is a class used to load and manage multiple error
   details list (ErrorDetailsList objects) for many languages. It also
   implements a simple cache.

14 years agoFix squidclient -V option and allow non-HTTP protocols to be tested
Amos Jeffries [Fri, 17 Jun 2011 02:31:45 +0000 (14:31 +1200)] 
Fix squidclient -V option and allow non-HTTP protocols to be tested

The "-" case is for old style HTTP (called 0.9) where there is no version
string. The "-V 0.9" is for testing servers with broken version number
tag "HTTP/0.9". Do not mix these up!

This also adds the ability to send non-HTTP version tags for testing.
 ie "-V ICAP/1.0" or "-V ICY/1.0"

14 years agoFix segfault in parse_eol()
Amos Jeffries [Fri, 17 Jun 2011 02:22:20 +0000 (14:22 +1200)] 
Fix segfault in parse_eol()

14 years agoUpgrade ICAP persistent connection handling
Amos Jeffries [Fri, 17 Jun 2011 02:14:01 +0000 (14:14 +1200)] 
Upgrade ICAP persistent connection handling

ICAP services use a "service" model of pconn different from the
"TCP destination" model which PconnPool objects are designed for.

This patch alters Adaptation::Icap::ServiceRep to use the simpler
IdleConnList object for pconn storage. IdleConnList stores a
"set of idle connections" more compatible with the ICAP model.

In order to implement ICAP max-connections feature the closeN()
operation is added to IdleConnList.

The result is removal of the complex hash and management operations on
push/pop of the idle conn set. The only expected behaviour change is
more frequent re-use of idle connections on services with multiple IP
addresses. Speed gains are minimal, but positive.

14 years agoLanguage: en updates
Amos [Thu, 16 Jun 2011 18:03:50 +0000 (06:03 +1200)] 
Language: en updates

14 years agoLanguage: en updates
Amos [Thu, 16 Jun 2011 18:02:19 +0000 (06:02 +1200)] 
Language: en updates

14 years agoLanguage: en updates
Amos [Thu, 16 Jun 2011 18:00:59 +0000 (06:00 +1200)] 
Language: en updates

14 years agoFixed bypass of SSL certificate validation errors.
Christos Tsantilas [Wed, 15 Jun 2011 08:47:09 +0000 (11:47 +0300)] 
Fixed bypass of SSL certificate validation errors.

The bypass code was calling ACLChecklist::fastCheck() multiple times
if multiple certificate errors were found. That method should not be
called multiple times because it changes the internal ACLChecklist
state, producing wrong answers for repeated calls.

This patch fixes the ACLChecklist::fastCheck() method so it can be called
multiple times. Each fastCheck() call results in an independent access
list check.

This is a Measurement Factory project

14 years agoRelease notes: wiki link updates
Amos Jeffries [Wed, 15 Jun 2011 07:39:29 +0000 (19:39 +1200)] 
Release notes: wiki link updates

14 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 14 Jun 2011 00:12:35 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoauthor: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <christo...
Christos Tsantilas [Mon, 13 Jun 2011 18:04:33 +0000 (21:04 +0300)] 
author: Alex Rousskov <rousskov@measurement-factory.com>, Christos Tsantilas <christos@chtsanti.net>
Bug 3153 fix: Prevent ICAP RESPMOD transactions getting stuck with the adapted body.

Part 1.

Server is expected to receive adapted response headers and then consume the
adapted response body, if any. If the server receives the headers and then
aborts, it must notify the ICAP side that nobody will consume the body.
Otherwise, the ICAP transaction will fill the BodyPipe buffer and get stuck
waiting for the consumer to free some space.

Part 2:

This fix still leaves one potential race condition unhandled: The ICAP
Initiatee disappears right after sending the adapted headers to the Server
(because there is nothing else for that initiatee to do). After the
noteAdaptationAnswer() call is scheduled by ICAP and before it is received by
the Server job, there is no usable link between Server and ICAP.  There is no
way for the Server to notify the ICAP transaction that the Server job is
aborting during that time (and there is no Server job at all after it aborts,
naturally).

The solutions is to develop a custom AsyncCall which will call the
expectNoConsumption() on the message pipe if the call cannot be dialed (i.e.,
the message cannot be delivered to Server).

14 years agoAuth lookup state cbdata upgrade
Amos Jeffries [Mon, 13 Jun 2011 12:25:12 +0000 (06:25 -0600)] 
Auth lookup state cbdata upgrade

The authenticators utilize a "statedata" structure to store and pass
the callback and Auth::UserRequest an auth lookup is about.

This patch converts the structure from a CBDATA_GLOBAL_TYPE struct to a
CBDATA_CLASS2 and adds a parameterized constructor for it.

The result is that all the code using it no longer has to explicitly
manage fields assignments and cbdata referencing. Simply new the object
when submitting to the helper system and delete once its handler has
been called.

14 years agoDisplay critical WARNING: about myip/myport on interception proxies.
Amos Jeffries [Mon, 13 Jun 2011 12:22:21 +0000 (06:22 -0600)] 
Display critical WARNING: about myip/myport on interception proxies.

Advertise myportname for use instead.

14 years agoFix RADIUS helper resource leak
Amos Jeffries [Mon, 13 Jun 2011 11:49:25 +0000 (23:49 +1200)] 
Fix RADIUS helper resource leak

cppcheck detected the config file was never closed/released. This could
prevent the helper shutting down cleanly.

14 years agoFix segfault parsing digest auth realm
Amos Jeffries [Mon, 13 Jun 2011 10:32:41 +0000 (22:32 +1200)] 
Fix segfault parsing digest auth realm

Also enact a TODO about Digest::Config constructor.

14 years agoLanguage: hy updates
Arthur [Sun, 12 Jun 2011 12:01:28 +0000 (00:01 +1200)] 
Language: hy updates

14 years agoAdded more debug info to url rewriter, allowing to print the full command line sent...
Guido Serassio [Sat, 11 Jun 2011 15:04:10 +0000 (09:04 -0600)] 
Added more debug info to url rewriter, allowing to print the full command line sent to the helper

14 years agoRemoved some dead code in case of disabled authentication
Francesco Chemolli [Wed, 8 Jun 2011 15:23:08 +0000 (17:23 +0200)] 
Removed some dead code in case of disabled authentication

14 years agoRelease Notes: Logformat %oa now supported by 3.1
Amos Jeffries [Tue, 7 Jun 2011 02:34:10 +0000 (20:34 -0600)] 
Release Notes: Logformat %oa now supported by 3.1

14 years agoRequest-Line log format codes for split client and server view
Amos Jeffries [Sun, 5 Jun 2011 15:43:46 +0000 (03:43 +1200)] 
Request-Line log format codes for split client and server view

Since URL-rewrite, adaptation and a number of other things can alter the
request as it goes through Squid it is useful to be able to log both the
original incoming and the final outgoing versions of these details.

This adds logformat codes to extend %rm %ru %rp and %rv with < and >
modifiers for in and outbound display.

The old tag versions are kept for now. There is still work to do cleaning
up the log data object which will clarify if the various data fields
which used to be passed to logging match either of the original or final
request data and can be obsoleted. It is already clear that the logged
path matches neither and contains some normalized version.

14 years agoHTTP/1.1: Send 505 Unsupported Version on mangled version codes
Amos Jeffries [Sun, 5 Jun 2011 15:23:45 +0000 (03:23 +1200)] 
HTTP/1.1: Send 505 Unsupported Version on mangled version codes

The top level parser is emitting HTTP status codes when it discovers
malformed request line syntax. Pass the info on in the client response.

At present only the unsuported-version code is available in HTTP.

14 years agoPolish: display easily grepped config lines on -k parse
Amos Jeffries [Sun, 5 Jun 2011 15:00:41 +0000 (03:00 +1200)] 
Polish: display easily grepped config lines on -k parse

14 years agoFix rev11470 missing casts
Amos Jeffries [Fri, 3 Jun 2011 11:27:18 +0000 (05:27 -0600)] 
Fix rev11470 missing casts

14 years agoTranslation: Omit templates/generic 'tempate template' from install
Amos Jeffries [Fri, 3 Jun 2011 06:32:04 +0000 (00:32 -0600)] 
Translation: Omit templates/generic 'tempate template' from install

14 years agoBug 3159: delay pools --disable-auth compile problems
Amos Jeffries [Fri, 3 Jun 2011 06:20:23 +0000 (00:20 -0600)] 
Bug 3159: delay pools --disable-auth compile problems

Also adds test-suite scan for --disable-auth issues.

14 years agoPOSIX: Use u_short everywhere instead of a mix with ushort
Amos Jeffries [Thu, 2 Jun 2011 13:14:51 +0000 (01:14 +1200)] 
POSIX: Use u_short everywhere instead of a mix with ushort

14 years agoOptimization: revert WCCP setup to using sockaddr_in
Amos Jeffries [Thu, 2 Jun 2011 13:05:12 +0000 (01:05 +1200)] 
Optimization: revert WCCP setup to using sockaddr_in

Replaces a some malloc/free with local stack variables and a memset

14 years agoCleanup: polish some code comments
Amos Jeffries [Thu, 2 Jun 2011 10:59:56 +0000 (04:59 -0600)] 
Cleanup: polish some code comments

14 years agoTranslation: auto-generate the lists of available translation files
Amos Jeffries [Thu, 2 Jun 2011 10:39:53 +0000 (04:39 -0600)] 
Translation: auto-generate the lists of available translation files

Use automake includes built during source maintenance and stored in VCS.
Avoiding earlier problems encountered with the approaches attempting to
bootstrap the translation from within Makefile.

This also generates relevant lists for the manual pages. Preparing to
translate those automatically as well.

14 years agoCleanup: detach squid.h from URL class dependencies
Amos Jeffries [Wed, 1 Jun 2011 02:34:24 +0000 (20:34 -0600)] 
Cleanup: detach squid.h from URL class dependencies

14 years agoSupport multiline quoted-string header fields
Christos Tsantilas [Tue, 31 May 2011 21:06:39 +0000 (00:06 +0300)] 
Support multiline quoted-string header fields

Currently the httpHeaderParseQuotedString does not support multiline quoted
string fields. According the rfc2616 multiline quoted string fields should
supported:

   quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
   qdtext         = <any TEXT except <">>
   TEXT           = <any OCTET except CTLs,
                        but including LWS>
   LWS            = [CRLF] 1*( SP | HT )

This patch replaces the "[\r]\n " or "[\r]\n\t" with a single space.

This is a Measurement Factory project

14 years agoBug 3178: bit more GCC compile errors
Jiri Skala [Tue, 31 May 2011 08:38:05 +0000 (20:38 +1200)] 
Bug 3178: bit more GCC compile errors

14 years agoLanguage: fr updates
Bernard [Mon, 30 May 2011 18:01:30 +0000 (06:01 +1200)] 
Language: fr updates

14 years agoCleanup: remove duplicate config.h from headers
Amos Jeffries [Mon, 30 May 2011 06:02:25 +0000 (00:02 -0600)] 
Cleanup: remove duplicate config.h from headers

14 years agoLanguage Update: float-right not correct for Hebrew layout
Amos Jeffries [Mon, 30 May 2011 01:42:57 +0000 (13:42 +1200)] 
Language Update: float-right not correct for Hebrew layout

14 years agoParser: shuffle request-line offsets into a sub-struct
Amos Jeffries [Sun, 29 May 2011 15:19:59 +0000 (09:19 -0600)] 
Parser: shuffle request-line offsets into a sub-struct

Preparation for parsing other segments such as mime headers and reply
status-line we need the segments data offsets to be kept separate.

14 years agoPrep for 3.2.0.8 and 3.1.12.2
Amos Jeffries [Sun, 29 May 2011 12:59:25 +0000 (00:59 +1200)] 
Prep for 3.2.0.8 and 3.1.12.2

14 years agoBug 3226: Tags from external ACLs do not correctly expire
Amos Jeffries [Sun, 29 May 2011 12:14:42 +0000 (00:14 +1200)] 
Bug 3226: Tags from external ACLs do not correctly expire

14 years agoBug 3178: gcc-4.6 complains unused variables
Jiri Skala [Sun, 29 May 2011 05:42:07 +0000 (17:42 +1200)] 
Bug 3178: gcc-4.6 complains unused variables

14 years agoDocs: debug info on regex loading
Amos Jeffries [Sun, 29 May 2011 04:51:42 +0000 (16:51 +1200)] 
Docs: debug info on regex loading

14 years agoSourceFormat Enforcement
Automatic source maintenance [Sat, 28 May 2011 00:12:44 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoSourceLayout: separate HttpParser from HttpMsg and HttpRequest files
Amos Jeffries [Fri, 27 May 2011 13:56:42 +0000 (07:56 -0600)] 
SourceLayout: separate HttpParser from HttpMsg and HttpRequest files

Paving the way for the parser to be used on replies or outside of HttpRequest.

There are no logic changes in this.

Also adds a stub file for event.cc

14 years agoAsync Job and Call requires <ostream>. Dont depend on squid.h
Amos Jeffries [Fri, 27 May 2011 13:54:34 +0000 (07:54 -0600)] 
Async Job and Call requires <ostream>. Dont depend on squid.h

14 years agoOptimize: inline several Ip::Address methods
Amos Jeffries [Fri, 27 May 2011 13:52:35 +0000 (07:52 -0600)] 
Optimize: inline several Ip::Address methods

14 years agoSourceFormat Enforcement
Automatic source maintenance [Fri, 27 May 2011 00:12:44 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoLanguage: fr updates
Bernard [Thu, 26 May 2011 18:02:47 +0000 (06:02 +1200)] 
Language: fr updates

14 years agoPortability fix: fix always-true comparison in ICAP for some 32-bit platforms
Francesco Chemolli [Thu, 26 May 2011 17:06:00 +0000 (19:06 +0200)] 
Portability fix: fix always-true comparison in ICAP for some 32-bit platforms

14 years agoPortability fix for OpenBSD in time quota external acl helper.
Francesco Chemolli [Thu, 26 May 2011 11:28:19 +0000 (13:28 +0200)] 
Portability fix for OpenBSD in time quota external acl helper.

14 years agoAdd CSS id tag to BODY of error pages.
Amos Jeffries [Thu, 26 May 2011 03:38:26 +0000 (15:38 +1200)] 
Add CSS id tag to BODY of error pages.

Use the page code name as the ID value for unique page-wide CSS.

Blanket alterations the tag name (BODY) should be used by CSS instead.

14 years agoFix NTLM/Negotiate PASSTHRU to peers
Amos Jeffries [Wed, 25 May 2011 12:17:59 +0000 (00:17 +1200)] 
Fix NTLM/Negotiate PASSTHRU to peers

login=PASSTHRU was working for requests. But NTLM and Negotiate also
require Proxy-Authenticate reply headers to be handed back. Allow that.

14 years agoLanguage: sl updates
Aleksa [Tue, 24 May 2011 12:02:38 +0000 (00:02 +1200)] 
Language: sl updates

14 years agoLanguage: fr updates
Bernard [Tue, 24 May 2011 06:02:09 +0000 (18:02 +1200)] 
Language: fr updates

14 years agoDocs: fancy up ERR_INVALID_REQ with some javascript
Amos Jeffries [Tue, 24 May 2011 05:33:47 +0000 (17:33 +1200)] 
Docs: fancy up ERR_INVALID_REQ with some javascript

Some of the "possible problems" can be determined as not-relevant.
When these cases are detected hide the text from viewers in a way that
keeps the page operational when javascript is disabled.

14 years agoBug 3122: Unknown record type in WCCPv2 Packet (6)
Amos Jeffries [Mon, 23 May 2011 03:13:58 +0000 (21:13 -0600)] 
Bug 3122: Unknown record type in WCCPv2 Packet (6)

14 years agoLanguage: fr added
Bernard [Mon, 23 May 2011 02:59:03 +0000 (14:59 +1200)] 
Language: fr added

14 years agoLanguage: sl updates
Aleksa Å uÅ¡uliÄ\87 [Mon, 23 May 2011 02:22:54 +0000 (14:22 +1200)] 
Language: sl updates

14 years agoDBG_IMPORTANT instead of DBG_WARNING
Amos Jeffries [Mon, 23 May 2011 01:49:35 +0000 (13:49 +1200)] 
DBG_IMPORTANT instead of DBG_WARNING

14 years agoURL re-writer handling bug fixes
Amos Jeffries [Sat, 21 May 2011 01:13:42 +0000 (13:13 +1200)] 
URL re-writer handling bug fixes

This patch includes two bug fixes in URL handling which were uncovered
during testing of the URL logging update:

* URL re-write handling was not correctly creating its adapted request
copy. The code here is much reduced by using the clone() method. Still
not completely satisfactory (marked with XXX) since on invalid URL
there is a wasted cycles cloning and deleting almost immediately.
Future cleanups moving the URL parts outside HttpRequest will fix that.

* URL parsing needs to set the canonical field to unset whenever the URI
is re-parsed into a request. This field is an optimization for later
display speed-ups. This has been causing incorrect canonical URL to be
used following re-write. When the cloning above was corrected it caused
asserts in the server-side.

* To prevent memory leaks the urnParse() function internal to URL parsing
is adjusted to accept and update an existing request in identical API
semantics to urlParse() instead of always generating a new one.

14 years agoDocs: display WARNING and ERROR when max_filedescriptors has failed.
Amos Jeffries [Fri, 20 May 2011 13:38:40 +0000 (01:38 +1200)] 
Docs: display WARNING and ERROR when max_filedescriptors has failed.

The big cases of missing OS dependencies and use of select() are mentioned
on configure parse where relevant. As well as from setMaxFD().

Failures to make the change are already logged, but now highlighted as
ERROR cases.

14 years agoFix assertion client_side_reply.cc:662: "r->clientConnectionManager == http->getConn()"
Amos Jeffries [Thu, 19 May 2011 12:02:58 +0000 (06:02 -0600)] 
Fix assertion client_side_reply.cc:662: "r->clientConnectionManager == http->getConn()"

TODO: There is a biger bug in the URL re-write cloning not being right in
general. That is getting a separate and much larger fix in a followup patch.

14 years agoCleanup: shuffle HttpRequest::inheritProperties next to clone()
Amos Jeffries [Wed, 18 May 2011 12:50:48 +0000 (00:50 +1200)] 
Cleanup: shuffle HttpRequest::inheritProperties next to clone()

Making it a bit easier to see exactly what fields are duplicated and which
are not.

14 years agoFix: correctly express libtool 2.2+ requirement.
Francesco Chemolli [Wed, 18 May 2011 11:33:23 +0000 (13:33 +0200)] 
Fix: correctly express libtool 2.2+ requirement.

14 years agoPortability fix: properly detect Iphlpapi.h on windows
Francesco Chemolli [Wed, 18 May 2011 01:03:37 +0000 (03:03 +0200)] 
Portability fix: properly detect Iphlpapi.h on windows

14 years agoFix for "Separate SSL error detail name and message" patch
Christos Tsantilas [Sat, 14 May 2011 06:11:27 +0000 (09:11 +0300)] 
Fix for "Separate SSL error detail name and message" patch

Use "#if USE_SSL / #endif" for printing . Currently we have error details
only for SSL related errors.

14 years agoSeparate SSL error detail name and message
Christos Tsantilas [Fri, 13 May 2011 21:04:03 +0000 (00:04 +0300)] 
Separate SSL error detail name and message

Currently, SSL error detail in Squid-generated error pages (%D) contains
both the error name and the explanation text. Some folks using this feature
want to render the two pieces of information differently because the error
name is not something most end-users should read or focus on.

This patch adds the "%x" error page formating code which prints the error name,
and removes the error name (%err_name) from SSL error detail messages.

This is a Measurement Factory project

14 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Christos Tsantilas [Fri, 13 May 2011 10:38:28 +0000 (13:38 +0300)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>
Author: Alexey Veselovsky <alexey.veselovsky@eykontech.com>
Author: Christos Tsantilas <chtsanti@users.sourceforge.net>
Bug 2055: Honor ICAP Max-Connections

This patch implements the phase 1 of the ICAP Max-Connections feature as it is
described in squid wiki:
  http://wiki.squid-cache.org/Features/ServiceOverload

The behaviour of the patch  can be configured using on_overload and max_conn
options of the icap_service configuration parameter. Squid can be configured
to do one of the following:
  - Block: send and HTTP error response to the subscriber
  - Bypass: ignore the "over-connected" ICAP service
  - Wait: wait (in a FIFO queue) for an ICAP connection slot
  - Force: proceed, ignoring the Max-Connections limit

Squid warns the first time the service become overloaded

For more information please visit the feature wiki page given above.

Technical informations:

The patch starts count a connections to the ICAP server as active when the
ModXact class receives an FD even if the fd is not really connected to the
server yet, and decrease the active connections to the server when the ModXact
object releases its fd connection.

If the Max-Connection limit is reached squid puts the request to a waiters list.
When one or more connections released squid schedules one or more waiters for
execution and remove them from waiters list.
To handle cases where a waiter gone/canceled before its execution the custom
dialer ConnWaiterDialer used.

The Options connections counted as active connections but are not limited by
the Max-Connections limit. An Option request will be executed even if the
maximum connections number is reached.

This is a Measurement Factory project

14 years agoSquid-to-origin SNI for ssl-bump
Christos Tsantilas [Fri, 13 May 2011 07:59:19 +0000 (10:59 +0300)] 
Squid-to-origin SNI for ssl-bump

This patch adds Squid-to-server SSL Server Name Indication (SNI) support to the
outgoing connections in Squid.

This is a Measurement Factory project

14 years agoFix for "Support for slow ssl_bump ACLs" patch
Christos Tsantilas [Wed, 11 May 2011 12:29:30 +0000 (15:29 +0300)] 
Fix for "Support for slow ssl_bump ACLs" patch

Use "#if USE_SSL / #endif" for new ssl bump code added inside
ClientHttpRequest::doCallouts method to allow squid compile if ssl is not
enabled

14 years agoLanguages: Distribute and alias Slovenian
Amos Jeffries [Wed, 11 May 2011 05:04:29 +0000 (17:04 +1200)] 
Languages: Distribute and alias Slovenian

14 years ago"Language: sl added"
Aleksa Å uÅ¡uliÄ\87 [Wed, 11 May 2011 04:43:12 +0000 (16:43 +1200)] 
"Language: sl added"

14 years agoCacheMgr: Fix cache_peer options userhash/sourcehash display mixup
Amos Jeffries [Tue, 10 May 2011 12:51:32 +0000 (00:51 +1200)] 
CacheMgr: Fix cache_peer options userhash/sourcehash display mixup

14 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 10 May 2011 00:12:40 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoAdd ext_time_quota_acl helper
Tilmann Bubeck [Mon, 9 May 2011 12:42:59 +0000 (00:42 +1200)] 
Add ext_time_quota_acl helper

Allows an administrator to define time budgets for the users of squid
to limit the time using squid.

This is useful for corporate lunch time allocations, wifi portal
pay-per-minute installations or for parental control of children. The
administrator can define a time budget (e.g. 1 hour per day) which is
enforced through this helper.

14 years agoSupport for slow ssl_bump ACLs
Christos Tsantilas [Mon, 9 May 2011 07:48:55 +0000 (10:48 +0300)] 
Support for slow ssl_bump ACLs

Allow slow ACLs with ssl_bump option in squid.conf to enable destination
domain (and possibly other) slow ACL checks.

This is a Measurement Factory project.

14 years agoLink HttpRequest with ConnStateData early
Amos Jeffries [Mon, 9 May 2011 06:40:03 +0000 (18:40 +1200)] 
Link HttpRequest with ConnStateData early

14 years agoQoS: require libcap before enabling netfilter MARK support
Andrew Beverley [Sun, 8 May 2011 23:21:44 +0000 (11:21 +1200)] 
QoS: require libcap before enabling netfilter MARK support

As it is not possible to get or set a netfilter mark without libcap, this
patch will disable netfilter marking at compilation time if libcap is not
available (in a similar way to Linux transparent proxying).

14 years agoCleanup: sync NTLM and Negotiate UserRequest code
Amos Jeffries [Sun, 8 May 2011 13:53:10 +0000 (01:53 +1200)] 
Cleanup: sync NTLM and Negotiate UserRequest code

Minor tweaks to reduce diff between the files. No logic changes.

Renames the addHeader() to addAuthentiocationInfoHeader(),
Renames the addTrailer() to addAuthentiocationInfoTrailer() and
document that they add additional *-Info header to the HTTP reply.

14 years agoCleanup: Improve Connection Pinning management
Amos Jeffries [Sun, 8 May 2011 06:11:18 +0000 (18:11 +1200)] 
Cleanup: Improve Connection Pinning management

Since 1xx handing went in HttpRequest has had two links to the one
ConnStateData managing its client connection.

* Rename the 1xx link to clientConnectionManager (since it is not
  actually the connection, but the manager object controlling the FD
  usage and stats.

* Convert the pinning code to using the permanent clientConnectionManager
  link instead of a temporary pinned_connection link.

This moves all connection pinning state fully into the ConnStateData
manager objects scope.

Side changes that appear to be buggy code previously:

* do not alter pinning state at the point where the pinned connection is
  about to start being used. Changes are only relevant at the point of
  pinning or unpinning.

* unpin operation now closes the Server FD if still open. Previously
  there was the possibility that some code paths would leave server FD
  open and pconn it. (especially since the above mentioned state
  alteration cleared the "pinned" flag).

14 years agoBug 3215: Malformed ipv6 DNS reverse lookup
Amos Jeffries [Sat, 7 May 2011 12:24:15 +0000 (00:24 +1200)] 
Bug 3215: Malformed ipv6 DNS reverse lookup

14 years agoOnly ssl-bump CONNECT requests if they are about to be tunneled.
Amos Jeffries [Sat, 7 May 2011 02:19:06 +0000 (14:19 +1200)] 
Only ssl-bump CONNECT requests if they are about to be tunneled.

Currently all CONNECT requests are bumped, even if the redirectors have
determined a 3xx, 4xx or 5xx reply should happen.

Adapters and access controls use their own duplicated reply paths unaffected
by this bug at present.

14 years agoFix typo in parenthesis of flags test
Amos Jeffries [Sat, 7 May 2011 02:06:37 +0000 (14:06 +1200)] 
Fix typo in parenthesis of flags test

14 years agoSourceFormat Enforcement
Automatic source maintenance [Sat, 7 May 2011 00:12:36 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoImplicit Dependency removal for gcc-4.6.1
Amos Jeffries [Fri, 6 May 2011 16:16:45 +0000 (04:16 +1200)] 
Implicit Dependency removal for gcc-4.6.1

GCC 4.6.1 is stricter than 4.6.0. It does not by default include implicit
dependencies. This adds several unit tests .cc files which were implicitly
linked before.

Also adds tests/stub_DiskIOModule.cc to short-circuit the DiskIOModule API

14 years agoCacheMgr: display -i/+i in regex ACL config display
Amos Jeffries [Fri, 6 May 2011 14:31:36 +0000 (02:31 +1200)] 
CacheMgr: display -i/+i in regex ACL config display

14 years agoBug #3214: "helperHandleRead: unexpected read from ssl_crtd" errors.
Christos Tsantilas [Fri, 6 May 2011 09:17:54 +0000 (12:17 +0300)] 
Bug #3214: "helperHandleRead: unexpected read from ssl_crtd" errors.

Squid would read the beginning of a crtd response split across multiple
read operations and treat it as a complete response, causing various
certificate-related errors.

This patch:
 - allow the use of other than the '\n' character as the end of message mark
   for helper responses.
 - Use the '\1' char as end-of-message char for crtd helper. This char looks
   safe because the crtd messages are clear text only messages.

14 years agoBug 3209: ssl-bumped requests forwarded unencrypted to the parent proxies/caches
Christos Tsantilas [Fri, 6 May 2011 09:10:34 +0000 (12:10 +0300)] 
Bug 3209: ssl-bumped requests forwarded unencrypted to the parent proxies/caches

This patch block all ssl-bumped requests which does not forwarded directly to
origin servers.

A new flag added to the requests_flags to mark http requests which are
ssl-bumped

14 years agoSupport OpenSSL 1.0.0 built without SSLv2
Amos Jeffries [Wed, 4 May 2011 07:19:55 +0000 (19:19 +1200)] 
Support OpenSSL 1.0.0 built without SSLv2

14 years agoCompile fixes for binutils-gold and gcc-4.6 support
Amos Jeffries [Wed, 4 May 2011 03:05:09 +0000 (15:05 +1200)] 
Compile fixes for binutils-gold and gcc-4.6 support

These two tools are much stricter about dependency linkages. We have already
had to drop testAuth due to major dependency loops they dislike.
This makes the remainder of the dependency changes needed.

Also adds:
 - tests/STUB.h with macros for simpler stub file creation
 - stub_libmgr.cc for unit-test stub replacment of mgr/libmgr.la library.
   many API functions commented out, but sufficient for the current needs.

14 years agoDocs: spelling and syntax in manuals
Amos Jeffries [Wed, 4 May 2011 02:44:09 +0000 (14:44 +1200)] 
Docs: spelling and syntax in manuals

14 years agoTranslation .POT updates and docs spelling fixes
Amos Jeffries [Wed, 4 May 2011 02:03:34 +0000 (14:03 +1200)] 
Translation .POT updates and docs spelling fixes

14 years agoLanguage: en updates
Amos [Wed, 4 May 2011 00:07:57 +0000 (12:07 +1200)] 
Language: en updates

14 years agoLanguage: en updates
Amos [Wed, 4 May 2011 00:05:11 +0000 (12:05 +1200)] 
Language: en updates

14 years agoLanguage: en updates
Amos [Tue, 3 May 2011 06:01:46 +0000 (18:01 +1200)] 
Language: en updates

14 years agoDocs: Polish url_rewrite_program description
Colin Coe [Tue, 3 May 2011 03:01:59 +0000 (15:01 +1200)] 
Docs: Polish url_rewrite_program description

14 years agoSourceFormat Enforcement
Automatic source maintenance [Tue, 3 May 2011 00:12:39 +0000 (18:12 -0600)] 
SourceFormat Enforcement

14 years agoDrop testAuth unit-tests
Amos Jeffries [Mon, 2 May 2011 13:04:21 +0000 (01:04 +1200)] 
Drop testAuth unit-tests

Preparing to move the tests into src/auth.

These old tests construction style also require quite a lot of dependencies
which include several loops causing problems in modern strict linkers.
Opted to remove now and stabilize trunk without it before re-adding simpler
auth unit tests.

14 years agotypo in ntlm_fake_auth
Amos Jeffries [Mon, 2 May 2011 02:33:27 +0000 (20:33 -0600)] 
typo in ntlm_fake_auth

14 years agoCleanup: base64 coder de-duplication and upgrade
Amos Jeffries [Mon, 2 May 2011 01:14:30 +0000 (19:14 -0600)] 
Cleanup: base64 coder de-duplication and upgrade

Markus Moeller has re-implemented several of the coder functions for use
by Kerberos helpers.

This patch seeks to de-duplicate them and combine the resulting code
back into the libmiscencoding.la "base64.h" implementation.

Changes include:

  * old function API renamed to old_*() and existing code update to use
the names. Some code has been updated to use the new API.

  * new estimator base64_encode_len()/base64_decode_len() functions added
to provide details of much much buffer space the output will require.

  * new API encoder and decoder functions added which accept caller
provided buffers and encode/decode an arbitrary string into them.

  * also fixes a bug where if the input text or output buffer was too
short the coder functions would crop a few bytes off the end of the result.
Noticable in Kerberos where token lengths are not fixed length.

Some optimizations have been added by myself over and above Markus changes:

  * optimized to short-circuit on several more variations of empty input
and nil result buffer.

  * sub-loop optimizations added to reduce the number of if() calls made
by the new code.

  * split encoder into terminated (C-str) and non-terminated variants.

Also documented both old and new APIs functions.

14 years agoAdd external_acl_type %EXT_LOG and %EXT_TAG format options.
James Bowe [Sun, 1 May 2011 12:10:37 +0000 (00:10 +1200)] 
Add external_acl_type %EXT_LOG and %EXT_TAG format options.

%EXT_LOG and %EXT_TAG are filled with the log= and tag= fields
returned by previous external ACLs.

-for a string that never changes after it is set, tag= is suitable.
-for a string that may need updating or overwriting by a later
external_acl, log= is suitable.

Under both circumstances it is conceivable that later external_acls
may need access to the tag= or log= values after they have been set
(e.g. for external_acl debugging, merging log messages, etc).

14 years agoBug 3203: pkg-config replacement broken on Windows
Amos Jeffries [Sun, 1 May 2011 03:03:37 +0000 (15:03 +1200)] 
Bug 3203: pkg-config replacement broken on Windows