]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
15 years agoCopy data back into memory as it's being read from disk
Henrik Nordstrom [Mon, 27 Jul 2009 11:34:04 +0000 (13:34 +0200)] 
Copy data back into memory as it's being read from disk

15 years agoconst violation detected by GCC in how ftp.cc parsed login details
Henrik Nordstrom [Sun, 26 Jul 2009 21:22:41 +0000 (23:22 +0200)] 
const violation detected by GCC in how ftp.cc parsed login details

15 years agoUpdate comment to reflect code changed years ago
Henrik Nordstrom [Sun, 26 Jul 2009 21:21:51 +0000 (23:21 +0200)] 
Update comment to reflect code changed years ago

15 years agoPrep for 3.1.0.12
Amos Jeffries [Sun, 26 Jul 2009 13:04:53 +0000 (01:04 +1200)] 
Prep for 3.1.0.12

15 years agoPrep for 3.0.STABLE17
Amos Jeffries [Sun, 26 Jul 2009 12:15:01 +0000 (00:15 +1200)] 
Prep for 3.0.STABLE17

15 years agoRevert configure changes from b9854
Amos Jeffries [Sun, 26 Jul 2009 11:39:37 +0000 (23:39 +1200)] 
Revert configure changes from b9854

15 years agoHack to resolve crash on shutdown from global String(",null,")
Amos Jeffries [Sun, 26 Jul 2009 11:15:35 +0000 (23:15 +1200)] 
Hack to resolve crash on shutdown from global String(",null,")

Not even close to the best solution. But it will get us a running
3.1 release which we need right about now.

15 years agoAdd Unit-Tests for HttpReply
Amos Jeffries [Sun, 26 Jul 2009 09:24:07 +0000 (21:24 +1200)] 
Add Unit-Tests for HttpReply

Just the basics for some needed right now. This needs to be expanded.

Also, required to break some of the mime header parsing calls out into
mime_header.cc in preparation for splitting the icon handling from the
header handling and reduce dependencies on the new tests.

15 years agoBug 2620: Invalid HTTP response codes causes segfault
Amos Jeffries [Sun, 26 Jul 2009 09:08:24 +0000 (21:08 +1200)] 
Bug 2620: Invalid HTTP response codes causes segfault

Harden the sanity checks to detect negative status and other syntax issues
before they have a chance to become problems. This applies to replies and
responses both in varying ways.

Also document the sanity check logics. sanityCheck* is supposed to fill
out the error status for what it detects with each fail result.

15 years agoFix: Initialize HopByHop header mask
Amos Jeffries [Sun, 26 Jul 2009 04:38:26 +0000 (16:38 +1200)] 
Fix: Initialize HopByHop header mask

15 years agoRe-enable unit-tests for src/
Amos Jeffries [Sat, 25 Jul 2009 15:35:15 +0000 (03:35 +1200)] 
Re-enable unit-tests for src/

Somehow they got disabled earlier.

15 years agoTypo in squidclient.1
Amos Jeffries [Sat, 25 Jul 2009 02:50:48 +0000 (14:50 +1200)] 
Typo in squidclient.1

15 years agoFix signed/unsigned again when comparing header size
Henrik Nordstrom [Fri, 24 Jul 2009 16:30:33 +0000 (18:30 +0200)] 
Fix signed/unsigned again when comparing header size

15 years agoFix Via string when leak checking is enabled (valgrind etc)
Henrik Nordstrom [Fri, 24 Jul 2009 15:52:18 +0000 (17:52 +0200)] 
Fix Via string when leak checking is enabled (valgrind etc)

15 years agoKick any pending *ufs write/close operations alive when the previous write completes
Henrik Nordstrom [Fri, 24 Jul 2009 15:12:47 +0000 (17:12 +0200)] 
Kick any pending *ufs write/close operations alive when the previous write completes

When using uufs only part of the object got written out to the disk,
forgetting to write out the last butes and closing the file.
This should have been seen at least in in diskd as well even if it
for some reason did not seem to show up in simple tests.

Applies all the way down to 3.0.

15 years agoCorrect header limit checks. 64KB max is REQUIRED.
Amos Jeffries [Fri, 24 Jul 2009 12:58:17 +0000 (00:58 +1200)] 
Correct header limit checks. 64KB max is REQUIRED.

This fixes a few issues with too-long URLs or request headers.
Also one issue with too-long reply headers.

TODO: unit-tests to follow.

15 years agoSend fatal error if response header contains a nul-byte
Amos Jeffries [Fri, 24 Jul 2009 11:21:01 +0000 (23:21 +1200)] 
Send fatal error if response header contains a nul-byte

15 years agoAdd omitted break
Amos Jeffries [Thu, 23 Jul 2009 12:27:19 +0000 (00:27 +1200)] 
Add omitted break

15 years agoMake EPSV selection based on data socket protocol.
Amos Jeffries [Thu, 23 Jul 2009 12:13:42 +0000 (00:13 +1200)] 
Make EPSV selection based on data socket protocol.

* EPSV ALL still sent by preference.
* EPSV 2 only attempted on IPv6 data links
* EPSV 1 only attempted on IPv4 data links

15 years agoAuthor: Various Translators
Amos Jeffries [Wed, 22 Jul 2009 10:18:07 +0000 (22:18 +1200)] 
Author: Various Translators
Language Updates

15 years agoAuthor: Various Translators
Amos Jeffries [Wed, 22 Jul 2009 10:09:58 +0000 (22:09 +1200)] 
Author: Various Translators
Language Updates: Italian

Thanks to Launchpad Rosetta Project Translators and Francesco Chemolli

15 years agoAuthor: Various Translators
Amos Jeffries [Wed, 22 Jul 2009 09:58:03 +0000 (21:58 +1200)] 
Author: Various Translators
Language Updates: Arabic manuals updates.

Thanks to Launchpad Rosetta Project Translators

15 years agoAuthor: Various Translators
Amos Jeffries [Wed, 22 Jul 2009 09:25:44 +0000 (21:25 +1200)] 
Author: Various Translators
Language Updates: Russian

Thanks to Launchpad Rosetta Translators.

15 years agoMerged from trunk
Amos Jeffries [Wed, 22 Jul 2009 09:03:01 +0000 (21:03 +1200)] 
Merged from trunk

15 years agoEnsure errors/ always exists for install
Amos Jeffries [Wed, 22 Jul 2009 08:06:10 +0000 (20:06 +1200)] 
Ensure errors/ always exists for install

15 years agoFix SF import loop
Amos Jeffries [Wed, 22 Jul 2009 08:04:04 +0000 (20:04 +1200)] 
Fix SF import loop

15 years agoTestBed: tighten some testign procedures.
Amos Jeffries [Tue, 21 Jul 2009 08:15:54 +0000 (20:15 +1200)] 
TestBed: tighten some testign procedures.

 * only build if bootstrap works
 * display last 20 lines of test result on failure
   we want to see the real error plus, not just "make Error 1" messages
 * use chmod to improve cleanup removal after (un)install test failures

15 years agoFix NCSA auth helper include sequence and wrapping
Amos Jeffries [Tue, 21 Jul 2009 08:08:13 +0000 (20:08 +1200)] 
Fix NCSA auth helper include sequence and wrapping

15 years agoInstall TRANSLATORS and COPYRIGHT in errors/ with other files.
Amos Jeffries [Tue, 21 Jul 2009 01:26:04 +0000 (13:26 +1200)] 
Install TRANSLATORS and COPYRIGHT in errors/ with other files.

In theory this will fix:
 install: ./TRANSLATORS and TRANSLATORS are the same file
 *** Error code 64

15 years agoAuthor: Thomas-Martin Seck <tmseck@netcologne.de>
Amos Jeffries [Tue, 21 Jul 2009 01:22:52 +0000 (13:22 +1200)] 
Author: Thomas-Martin Seck <tmseck@netcologne.de>
Missing comma in --disable-translations

15 years agoFix EPSV negotiation parser.
Amos Jeffries [Mon, 20 Jul 2009 14:47:53 +0000 (02:47 +1200)] 
Fix EPSV negotiation parser.

15 years agoBug 2716: Fix Signed/Unsigned build error
Amos Jeffries [Mon, 20 Jul 2009 10:09:22 +0000 (22:09 +1200)] 
Bug 2716: Fix Signed/Unsigned build error

Patch for chunked-requests ported to 3.0 was still omitted when same was
merged to 3.1.

15 years agoPrep for 3.1.0.11
Amos Jeffries [Sun, 19 Jul 2009 04:40:34 +0000 (16:40 +1200)] 
Prep for 3.1.0.11

15 years agoFix compile error in non-split-stack builds
Amos Jeffries [Sat, 18 Jul 2009 14:08:46 +0000 (02:08 +1200)] 
Fix compile error in non-split-stack builds

15 years agoSplit-stack: Correct DNS port family, clone http_port
Amos Jeffries [Sat, 18 Jul 2009 07:51:33 +0000 (19:51 +1200)] 
Split-stack: Correct DNS port family, clone http_port

15 years agoUpdate ChangeLog
Amos Jeffries [Sat, 18 Jul 2009 04:01:18 +0000 (16:01 +1200)] 
Update ChangeLog

15 years agoAuthor: Isnard <isnardjaquet@gmail.com>
Amos Jeffries [Sat, 18 Jul 2009 03:56:06 +0000 (15:56 +1200)] 
Author: Isnard <isnardjaquet@gmail.com>
Bug 2080: wbinfo_group.pl - false positive under certain conditions

15 years agoAlter easy packaging of manuals. Shell expansion does not work
Amos Jeffries [Sat, 18 Jul 2009 01:49:42 +0000 (19:49 -0600)] 
Alter easy packaging of manuals. Shell expansion does not work

15 years agoPrep for 3.1.0.10
Amos Jeffries [Fri, 17 Jul 2009 14:06:01 +0000 (02:06 +1200)] 
Prep for 3.1.0.10

15 years agoAdd COPYRIGHT file to langpack
Amos Jeffries [Fri, 17 Jul 2009 13:49:00 +0000 (01:49 +1200)] 
Add COPYRIGHT file to langpack

 * Squid Project lisence without Harvest addendum
 * Rosetta Project requires Berkley open distribution lisence
 * Squid Translators adopting Berkley open distribution lisence
   for compatibility with Squid code lisence and Rosetta lisence

15 years agoSome formatting issues in docs.
Amos Jeffries [Fri, 17 Jul 2009 12:43:09 +0000 (00:43 +1200)] 
Some formatting issues in docs.

Also add mention of one limit to the tcp_outgoing_addr IPv6 magic.

15 years agoBug 2611: document fast/slow acl types
Francesco Chemolli [Fri, 17 Jul 2009 07:39:54 +0000 (09:39 +0200)] 
Bug 2611: document fast/slow acl types

Documentation fix: describe in squid.conf.documented what acl
types are fast or slow, and what access clauses only support
fast acls.

15 years agoBug 2680 regression: Crash after rotate with no helpers running
Amos Jeffries [Fri, 17 Jul 2009 02:49:49 +0000 (14:49 +1200)] 
Bug 2680 regression: Crash after rotate with no helpers running

Regression from bug 2276 fix. n_running was used instead of n_active.
Also documents the relevant counters to prevent this recurring.

15 years agoBug fix: Server transaction stuck in RESPMOD ACL check if no services matched.
Alex Rousskov [Thu, 16 Jul 2009 18:40:00 +0000 (12:40 -0600)] 
Bug fix: Server transaction stuck in RESPMOD ACL check if no services matched.

AccessCheck job code assumed it was running asynchronously. However, the
job was started synchronously. If the access check result was available
immediately, without any async ACL checks, then AccessCheck would call
the callback immediately, before returning from AccessCheck::Start. The
server-side code would then get confused because it uses the
AccessCheck::Start return value to change its state, and that value was
stale when AccessCheck::Start returned _after_ calling the callback.

We now start AccessCheck job properly, via AsyncStart. All checks are now
performed in a detached async state.

TODO: There are other jobs that are not started asynchronously. Fix.

15 years agoAdded server-side debugging to track adaptation access check state better.
Alex Rousskov [Thu, 16 Jul 2009 18:31:01 +0000 (12:31 -0600)] 
Added server-side debugging to track adaptation access check state better.

15 years agoAutoDocs: Doxygen fixups
Amos Jeffries [Thu, 16 Jul 2009 13:29:44 +0000 (01:29 +1200)] 
AutoDocs: Doxygen fixups

15 years agoAuthor: Lukas Bögelei <unknown>
Amos Jeffries [Thu, 16 Jul 2009 13:23:24 +0000 (01:23 +1200)] 
Author: Lukas Bögelei <unknown>
Languages: German manual pages started.

Thanks to Rosetta Project.

15 years agomanuals.pot is a Squid-3 translation
Amos Jeffries [Thu, 16 Jul 2009 13:20:17 +0000 (01:20 +1200)] 
manuals.pot is a Squid-3 translation

15 years agoPrep for manuals.pot scripting
Amos Jeffries [Thu, 16 Jul 2009 13:16:44 +0000 (01:16 +1200)] 
Prep for manuals.pot scripting

15 years agoMerged from trunk
Amos Jeffries [Thu, 16 Jul 2009 13:09:06 +0000 (01:09 +1200)] 
Merged from trunk

15 years agoAttempt to bundle manuals the easy way
Amos Jeffries [Thu, 16 Jul 2009 09:49:07 +0000 (21:49 +1200)] 
Attempt to bundle manuals the easy way

15 years agoAuthor: Chris Hills <chaz@chaz6.com>
Amos Jeffries [Wed, 15 Jul 2009 14:39:45 +0000 (02:39 +1200)] 
Author: Chris Hills <chaz@chaz6.com>
Fix NetBSD IPv6 build error

15 years agoRevert Auth changes from b9814
Amos Jeffries [Wed, 15 Jul 2009 11:35:00 +0000 (23:35 +1200)] 
Revert Auth changes from b9814

15 years agoTestBed: Truely make distcheck work for all configure levels
Amos Jeffries [Wed, 15 Jul 2009 11:30:50 +0000 (23:30 +1200)] 
TestBed: Truely make distcheck work for all configure levels

Thanks to Alex Rousskov for identifying the necessary environment setting.

15 years agoLanguages: more alias updates
Amos Jeffries [Wed, 15 Jul 2009 10:57:06 +0000 (22:57 +1200)] 
Languages: more alias updates

Need detected from live traffic again. Linkage for Chinese based on
discussions for district zh_* failover preferences in Ubuntu.

15 years agoAuthor: Markus Moeller <huaraz@moeller.plus.com>
Amos Jeffries [Mon, 13 Jul 2009 04:54:08 +0000 (16:54 +1200)] 
Author: Markus Moeller <huaraz@moeller.plus.com>
Partial Revert revno9803 - realm experiment slipped in

15 years agoSupport adaptation sets and chains, including dynamic ICAP chains:
Alex Rousskov [Mon, 13 Jul 2009 01:20:26 +0000 (19:20 -0600)] 
Support adaptation sets and chains, including dynamic ICAP chains:

  - Support adaptation service sets and chains
    (adaptation_service_set and adaptation_service_chain)

  - Dynamically form chains based on ICAP X-Next-Services header
    (icap_service routing=on)

  - Support cross-transactional ICAP header exchange
    (adaptation_masterx_shared_names)

An adaptation service set contains similar, interchangeable services. No more
than one service is successfully applied. If one service is down or fails,
Squid can use another service. Think "hot standby" or "spare" ICAP servers.

Sets may seem similar to the existing "service bypass" feature, but they allow
the failed adaptation to be retried and succeed if a replacement service is
available. The services in a set may be all optional or all essential,
depending on whether ignoring the entire set is acceptable. The mixture of
optional and essential services in a set is supported, but yields results that
may be difficult for a human to anticipate or interpret. Squid warns when it
detects such a mixture.

When performing adaptations with a set, failures at a service (optional or
essential, does not matter) are retried with a different service if possible.
If there are no more replacement services left to try, the failure is treated
depending on whether the last service tried was optional or essential: Squid
either tries to ignore the failure and proceed or terminates the master
transaction.

An adaptation chain is a list of different services applied one after another,
forming an adaptation pipeline. Services in a chain may be optional or
essential. When performing adaptations, failures at an optional service are
ignored as if the service did not exist in the chain.

Request satisfaction terminates the adaptation chain.

When forming a set or chain for a given transaction, optional down services
are ignored as if they did not exist.

ICAP and eCAP services can be mixed and matched in an adaptation set or chain.

Merged from 3p1-plus branch at r9513.

* Implementation notes

The notes below focus on _changes_. Adaptation terminology and current layers
are now being documented in src/adaptation/notes.dox

Service sets and chains are implemented as ServiceGroup class kids. They are
very similar in most code aspects. The primary external difference is that
ServiceSet can "replace" a service and ServiceChain can find the "next"
service.  The internal search code is implemented in ServiceGroup parent and
is parametrized by the kids.

Before the adaptation starts, Squid calculates the adaptation "plan", which is
just an iterator into the ServiceGroup. The client- and server-side adaptation
initiators used to deal with Service pointers. They now deal with ServiceGroup
pointers. The only interesting difference is that a ServiceGroup does not have
a notion of being optional or essential. Thus, if adaptation start fails, we
do not know whether the failure can be bypassed. Fortunately, starting an
adaptation does not require anything that depends on the adaptation services,
so we now simply assert that the start succeeds.

If the entire adaptation fails, the callers are notified as before. They are
told whether they can ignore the failure as before. No changes there.

A new Adaptation::Iterator class has been added to execute the adaptation
plan. That class is responsible for iterating the services in a service group
until the plan is exhausted or cannot progress due to a final failure.

Dynamically form adaptation chains based on the ICAP X-Next-Services header.

If an ICAP service with the routing=1 option in squid.conf returns an ICAP
X-Next-Services response header during a successful REQMOD or RESPMOD
transaction, Squid abandons the original adaptation plan and forms a new
adaptation chain consisting of services identified in the X-Next-Services
header value (using a comma-separated list of adaptation service names from
squid.conf).  The dynamically created chain is destroyed once the new plan is
completed or replaced.

This feature is useful when a custom adaptation service knows which other
services are applicable to the message being adapted.

Limit adaptation iterations to adaptation_service_iteration_limit to protect
Squid from infinite adaptation loops caused by ICAP services constantly
including themselves in the dynamic adaptation chain they request. When the
limit is exceeded, the master transaction fails. The default limit of 16
should be large enough to not require an explicit configuration in most
environments yet may be small enough to limit side-effects of loops.

TODO: Add metadata support to eCAP API and honor X-Next-Services there as
well. Currently, only ICAP services can form dynamic chains but the formed
chains may contain eCAP services.

Other improvements:

Polished adaptation service configuration in squid.conf. Old format with an
anonymous bypass option is deprecated but still supported. Quit with a fatal
message if an adaptation service is misconfigured (debugging level-0 messages
do not seem to work at that stage, but that is probably another, general bug).

Polished HttpRequest::adaptHistory() interface so that the code that knows the
history is needed can force history creation without complex
configuration-time preparations and state. Currently, all adaptation history
users but the logging-related ones know runtime whether the history must be
created (e.g., when a certain ICAP header is received).

Fixed "canonical" Request URL maintenance when ICAP clones requests.
TODO: The urlCanonical() must become HttpRequest::canonical(), hiding the
often out-of-sync canonical data member.

Fixed ICAP request parsing (for ICAP logging). We used to parse Request-Line
as if it were the first header. TODO: optimize by parsing only when needed.

Fixed AccessCheck case where a service group disappears during a nb ACL check.
Replaced "done" member with an existing AsyncJob mustStop mechanism. Removed
extra async call as unneeded because ACL callbacks are already async.

15 years agoBug #2459 fix, access logging enhancements, ICAP logging and retries support:
Alex Rousskov [Sun, 12 Jul 2009 22:56:47 +0000 (16:56 -0600)] 
Bug #2459 fix, access logging enhancements, ICAP logging and retries support:

  - Bug #2459 fix

  - Support logging of total DNS wait time to access.log
    (%dt)

  - Support logging response times of adaptation transactions to access.log
    (%adapt::sum_trs and %adapt::all_trs)

  - Enhanced access logging
    (<Hs, <sh, >sh, <pt, <tt, icap::tt, and icap::<last_h in squid.conf)

  - ICAP logging
    (see icap_log and log_icap in squid.conf as well as
    http://wiki.squid-cache.org/Features/AdaptationLog).

  - ICAP retries based on the ICAP responses status code
    (see icap_retry_limit in squid.conf).

Merged from 3p1-plus branch at r9511.

15 years agoUpdate squidclient manual and usage documentation.
Amos Jeffries [Sun, 12 Jul 2009 11:24:29 +0000 (23:24 +1200)] 
Update squidclient manual and usage documentation.

Also add tools/ manual files to manuals bundling.

15 years agov6 Doc Updates
Amos Jeffries [Sun, 12 Jul 2009 10:00:47 +0000 (22:00 +1200)] 
v6 Doc Updates

15 years agoAuthor: Martin Huter <m.huter@phion.com>
Amos Jeffries [Sun, 12 Jul 2009 09:06:29 +0000 (21:06 +1200)] 
Author: Martin Huter <m.huter@phion.com>
Bug 2658: Missing TextException copy constructor

15 years agoAuthor: Henrik Nordstrom <henrik@henriknordstrom.net>
Amos Jeffries [Sun, 12 Jul 2009 08:58:47 +0000 (20:58 +1200)] 
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
http_port allow-direct option to allow direct forwarding in accelerator mode

normally direct forwarding is disabled in accelerator mode unless overridden
by always_direct, to avoid unintentional security loops. But there is setups
where it makes sense to not have this restriction as this has effects on
peer selection as well.

15 years agoAuthor: Adrian Chadd <adrian@squid-cache.org>
Amos Jeffries [Sun, 12 Jul 2009 03:32:39 +0000 (15:32 +1200)] 
Author: Adrian Chadd <adrian@squid-cache.org>
Add a simple script to summarise traffic use per user.

And, summarise the user list accessing the proxy.

Allows the user to override the aggregation term.
By default its "username" but there are other options (eg try
"clientip").

15 years agoAuthor: Adrian Chadd <adrian@squid-cache.org>
Amos Jeffries [Sun, 12 Jul 2009 03:31:37 +0000 (15:31 +1200)] 
Author: Adrian Chadd <adrian@squid-cache.org>
This is a simple Perl library which facilitates parsing access logfile entries.

15 years agoAuthor: Markus Moeller <huaraz@moeller.plus.com>
Amos Jeffries [Sun, 12 Jul 2009 02:46:59 +0000 (14:46 +1200)] 
Author: Markus Moeller <huaraz@moeller.plus.com>
Bug 2710: squid_kerb_auth non-terminated string

15 years agoBug 2695: Regression in wccp L2 mask assignment
Amos Jeffries [Sun, 12 Jul 2009 02:38:49 +0000 (14:38 +1200)] 
Bug 2695: Regression in wccp L2 mask assignment

correct endianism of value stored in mask.
Revert value to 2 and field type to uint16_t as prior to bug 2404 update.

15 years agoBug 2707: Regression in FTP anonymous auth
Amos Jeffries [Sun, 12 Jul 2009 02:33:39 +0000 (14:33 +1200)] 
Bug 2707: Regression in FTP anonymous auth

A small regression was marking anonymous Auth as a no-login case and
returning 401 unauthorized.

16 years agoLimit X-Forwarded-For growth.
Alex Rousskov [Sat, 11 Jul 2009 05:39:44 +0000 (23:39 -0600)] 
Limit X-Forwarded-For growth.

X-Forwarded-For growth leads to String size limit assertions and probably
other problems.

We now replace huge XFF values with a string "error", warn the admin the
first 100 times, and hope that something will stop the loop (if it is a
loop). TODO: we should probably deny requests with huge XFF.

To make growth-associated problems visible during forwarding loops, the
loop breaking code must be disabled (no Via) or not applicable (direct
forwarding) and request_header_max_size has to be raised or disabled.
The X-Forwarded-For header value may also grow too large for reasons
unrelated to forwarding loops.

This change also prevents most cases of pointless computation of the
original X-Forwarded-For value list. That computation can be quite
expensive.

16 years agodist cachemgr.cgi.8.in for build
Amos Jeffries [Fri, 10 Jul 2009 12:51:13 +0000 (06:51 -0600)] 
dist cachemgr.cgi.8.in for build

16 years agoAdd missing Substitute.am
Amos Jeffries [Fri, 10 Jul 2009 07:35:44 +0000 (19:35 +1200)] 
Add missing Substitute.am

16 years agoRevert build test alteration, slipped in again:(
Amos Jeffries [Fri, 10 Jul 2009 07:20:14 +0000 (19:20 +1200)] 
Revert build test alteration, slipped in again:(

16 years agoShuffle cachemgr.cgi.8 into tools/ with cachemgr.cgi code
Amos Jeffries [Fri, 10 Jul 2009 07:06:53 +0000 (19:06 +1200)] 
Shuffle cachemgr.cgi.8 into tools/ with cachemgr.cgi code

To perform this shuffle the SUBSTITUTE make code pushed into a sub-include
at doc/manuals/Substitute.am for shared use.

Also clean up the manual titles to reflect the binary they apply to
rather than the generic Squid project release name.

The use of generic @SYSCONFDIR@ and specific filenames allows the
translation strings to be more specific, readable for translators and
reduces Makefile complexity at once. squid.conf etc are widely mentioned
and used enough that allowing for alternative names at this point seems
meaningless.

16 years agoAuthor: Luigi Gangitano <luigi@debian.org>
Amos Jeffries [Thu, 9 Jul 2009 22:33:18 +0000 (10:33 +1200)] 
Author: Luigi Gangitano <luigi@debian.org>
squidclient man(1) page

A little out of date now, but its a start and better than nothing.

16 years agoCorrect TestBed make checks.
Amos Jeffries [Thu, 9 Jul 2009 12:56:50 +0000 (00:56 +1200)] 
Correct TestBed make checks.

distcheck drops any custom configure options. We can't use it
outside the 00-default test.

We can keep check, and should add any others that may be useful if
they can be identified and shown not to re-run configure.

Also move some old distclean hacks that may be obsolete now out of
the way to a rare occurance when thay might still be relevant.

16 years agoDistribute TRANSLATORS properly.
Amos Jeffries [Thu, 9 Jul 2009 11:08:24 +0000 (05:08 -0600)] 
Distribute TRANSLATORS properly.

Also remove '/' from scan paths and add information
about which files are being found for install/uninstall

16 years agoTypo in configure
Amos Jeffries [Thu, 9 Jul 2009 10:27:25 +0000 (04:27 -0600)] 
Typo in configure

16 years agoKick translation again.
Amos Jeffries [Wed, 8 Jul 2009 14:21:01 +0000 (02:21 +1200)] 
Kick translation again.

install does not NEED to be translating, and it seems to cause an issue
that did not show up my local testing.

Makefile proved useless to langpack.

16 years agoAdd localhost to default permitted networks
Amos Jeffries [Wed, 8 Jul 2009 05:05:39 +0000 (17:05 +1200)] 
Add localhost to default permitted networks

This was an oversight and should have been added with the RFC1918 space.

16 years agoBug 2706: pt 1: don't assert on cosmetic Date: addition for bad timestamps
Amos Jeffries [Wed, 8 Jul 2009 04:58:09 +0000 (16:58 +1200)] 
Bug 2706: pt 1: don't assert on cosmetic Date: addition for bad timestamps

Seems not all StoreEntry are being created with timestamps. This handles
them cleanly with a log WARNING when such are sighted instead of asserting

16 years agoSilence unwanted LS warnings
Amos Jeffries [Tue, 7 Jul 2009 14:05:30 +0000 (08:05 -0600)] 
Silence unwanted LS warnings

16 years agoCorrect logging for pinned connections.
Amos Jeffries [Tue, 7 Jul 2009 01:48:55 +0000 (13:48 +1200)] 
Correct logging for pinned connections.

Also some extra debug when one fails to be valid for some reason.

16 years agoAdd --disable-translation to break .po from error negotiation
Amos Jeffries [Mon, 6 Jul 2009 04:37:36 +0000 (16:37 +1200)] 
Add --disable-translation to break .po from error negotiation

This enables build-time translation to be disabled without also disabling
run-time error page negotiation. They should not have been linked tightly.

16 years agoPrevent dead language aliases being created
Amos Jeffries [Mon, 6 Jul 2009 03:12:39 +0000 (15:12 +1200)] 
Prevent dead language aliases being created

16 years agoFix error pages not installed.
Amos Jeffries [Mon, 6 Jul 2009 03:06:13 +0000 (15:06 +1200)] 
Fix error pages not installed.

Attempts to translate, and installs the error pages content if present.
Both srcdir and builddir are scanned used since the file location varies
depending on whether a source bundle or VCS is used to install.

16 years agoTruncate too-long HTTP response bodies to match their Content-Length header.
Alex Rousskov [Thu, 2 Jul 2009 16:36:36 +0000 (10:36 -0600)] 
Truncate too-long HTTP response bodies to match their Content-Length header.

Sometimes a broken server sends more than Content-Length bytes in the
response.  For example, a 302 redirect message with "Content-Length: 0" header
may include an HTML body. Squid used to send "everything" it read to the
client, even if it read more than the Content-Length bytes. That may have
helped in some cases, but we should be more conservative when dealing
with broken servers to combat message smuggling attacks and other bad
side-effects for clients.

We now do not forward more than the advertised content length and declare the
connection with a broken server non-persistent.

Chunked responses (that HTTP/1.0 Squid should not receive and that must not
have a Content-Length header) are not truncated because RFC 2616 says we
MUST ignore their Content-Length header.

TODO: Do not cache the truncated entry and purge the cached version, if any.

16 years agoBreak forwarding loops for "transparent" or "intercept" http_ports.
Alex Rousskov [Thu, 2 Jul 2009 15:24:24 +0000 (09:24 -0600)] 
Break forwarding loops for "transparent" or "intercept" http_ports.

Squid detected forwarding loops in most configurations, but broke
them (using a customizable HTTP_FORBIDDEN response) only when working as
an accelerator. Squid now breaks loops when working as a transparent
proxy as well.

A persistent loop is going to be broken anyway, when the Via and
X-Forwarded-For headers exceed header size limit, but that wastes a lot of
resources and may also crash misconfigured Squids.

TODO: Consider breaking all loops, regardless of the http_port options.

TODO: Consider adding a specific and/or configurable error page for this case
instead of using hard-coded ACCESS_DENIED.

16 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Amos Jeffries [Thu, 2 Jul 2009 12:02:35 +0000 (00:02 +1200)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>
Bug 2695: String length overflows on append, leading to segfaults

Long-term patch for 3.0. This softens the error, but does not
resolve the issue completely for ESI.

Short-term patch for 3.1. The limit is arbitrary and may be fixed
at some point by a better patch. This one will work however.

16 years agoTestBed: Polish the tests slightly and enable per-run level of tests
Amos Jeffries [Thu, 2 Jul 2009 11:38:56 +0000 (23:38 +1200)] 
TestBed: Polish the tests slightly and enable per-run level of tests

This finished the planned testbed features. Each level of test can now
be run on any combination of make targets specific to that test.

Remove the make all output used by obsolete testbed algorithms.

16 years agoLanguage Updates: Country-specific Arabic
Amos Jeffries [Tue, 30 Jun 2009 23:49:53 +0000 (11:49 +1200)] 
Language Updates: Country-specific Arabic

Thanks to Alaa of the Translation Toolkit Project

16 years agoAuthor: Vincent Régnard + Peter Pramberger + Amos Jeffries
Amos Jeffries [Tue, 30 Jun 2009 00:35:28 +0000 (12:35 +1200)] 
Author: Vincent Régnard + Peter Pramberger + Amos Jeffries
Bug 2699: Build failure NTLM smb_lm helper

Multiple definition of uint16 in included headers.
Make the typedef in .c and as portable as possible.

16 years agoBug 2127: delay pools class 4 crashes with ntlm auth
Amos Jeffries [Sun, 28 Jun 2009 12:03:25 +0000 (00:03 +1200)] 
Bug 2127: delay pools class 4 crashes with ntlm auth

pt 2: prevent NTLM handshake requests from being delayed prior to the
authentication credentials being confirmed.

Also adds a few more descriptive asserts to catch this bug if still live.

16 years agoBug 1338: File prefetches aborted despite range_offset
Amos Jeffries [Sun, 28 Jun 2009 11:47:27 +0000 (23:47 +1200)] 
Bug 1338: File prefetches aborted despite range_offset

16 years agoAuthor: Don Hopkins <dhopkins@DonHopkins.com>
Amos Jeffries [Sun, 28 Jun 2009 10:49:52 +0000 (22:49 +1200)] 
Author: Don Hopkins <dhopkins@DonHopkins.com>
Bug 1087: ESI processor not quoting attributes correctly.

Use HTML 4.01 specified double-quotes instead of HTML 1.0 single quotes
and HTML-encode any double-quotes contained within the attribute data.

16 years agoDelay pools 64-bit buckets and IPv6-polish
Amos Jeffries [Sun, 28 Jun 2009 08:34:50 +0000 (20:34 +1200)] 
Delay pools 64-bit buckets and IPv6-polish

This patch adds some polish and minor unfinished business in IPv6
support vs delay pools.

Also updates the bucket size to 64-bytes to allow for >4MB traffic caps.

TODO: Bump up the refresh size for >4MB/sec flows and check that nothing
      gets broken by it.

16 years agoBug 422: RFC 2616 Date header requirements
Amos Jeffries [Sun, 28 Jun 2009 08:28:20 +0000 (20:28 +1200)] 
Bug 422: RFC 2616 Date header requirements

The Date: header appears to already be implemented on all generated
pages and ICAP processed pages.
This tests and enforces Date: on all other outgoing replies as required.

I'm not certain this is the right place, it appears to be post-caching.
The RFC indicates the Date: should be enforced pre-caching. But was
unable to find a place of input cloning/processing after initial parse.
The storeEntry timestamp is used to estimate correct receiving date.

16 years agoSimpler test for PURGE method
Amos Jeffries [Sun, 28 Jun 2009 08:11:27 +0000 (20:11 +1200)] 
Simpler test for PURGE method

Uses a tri-state setting on enable_purge and acl parsing to
detect PURGE method addition/removal instead of a complicated ACL
creation test post-configure.

This removes the annoying false errors about temp ACL and some minor
speed up in all actions that parse squid.conf.

16 years agoAuthor: Francesco Chemolli <kinkie@squid-cache.org>
Amos Jeffries [Sun, 28 Jun 2009 08:03:28 +0000 (20:03 +1200)] 
Author: Francesco Chemolli <kinkie@squid-cache.org>
Bug 2092: Changed select loop call counter to 64-bit

... unsigned long int so that it won't wrap around so easily.

16 years agoAuthor: Philip Allison <philip.allison@smoothwall.net>
Alex Rousskov [Sat, 27 Jun 2009 01:14:58 +0000 (19:14 -0600)] 
Author: Philip Allison <philip.allison@smoothwall.net>
Bug 2614 fix: Potential loss of adapted body data from eCAP adapters

It was possible for Squid to stop reading buffered adapted body data before it
has all been sent to the browser.

Squid treated a call to noteAbContentDone by an adapter as a signal to stop
consuming and sending adapted body data. The correct behaviour is to use
noteAbContentDone to record the fact that the adapter has stopped producing
new adapted body data, but continue to consume and send data until all
buffered ab content is consumed and sent (i.e., abContent returns an empty
Area).

Links to relevant discussions:

https://answers.launchpad.net/ecap/+question/63068
https://answers.launchpad.net/ecap/+question/63147

16 years agoLanguage Updates: Add aliases from live traffic info
Amos Jeffries [Fri, 26 Jun 2009 13:32:27 +0000 (01:32 +1200)] 
Language Updates: Add aliases from live traffic info

Taking a scan of the last 98 days traffic and locating the country-code
Accept-Language headers used in that traffic to refer to the existing
languages gives a subset we can alias to further improve the coverage.

16 years agoPrevent getservbyname() being called with a numeric value on Windows.
Amos Jeffries [Fri, 26 Jun 2009 09:10:11 +0000 (21:10 +1200)] 
Prevent getservbyname() being called with a numeric value on Windows.

The function getservebyname() returns garbage values when called with
a numeric port "name" for Windows people.