]> git.ipfire.org Git - thirdparty/squid.git/log
thirdparty/squid.git
17 years agoDo not bootstrap lib/libLtdl. Better to fix the libtool installation than working...
Henrik Nordstrom [Tue, 15 Apr 2008 20:53:08 +0000 (14:53 -0600)] 
Do not bootstrap lib/libLtdl. Better to fix the libtool installation than working around it. (done on squid-cache.org)

17 years agoAdd x86_64 support to XPROF_STATS
Henrik Nordstrom [Mon, 14 Apr 2008 21:29:38 +0000 (23:29 +0200)] 
Add x86_64 support to XPROF_STATS

17 years agoBug #2310: Incorrect default time/date log format
Henrik Nordstrom [Mon, 14 Apr 2008 21:03:20 +0000 (23:03 +0200)] 
Bug #2310: Incorrect default time/date log format

The %tl and %tg logformat tags is meant to use the same date format as
Apache/NCSA, but in Squid-3 there was a space instead of : between the
date and time.

This is not seen in Squid-2.

17 years agoAdded dummy eCAP files to make "make dist" happy.
Alex Rousskov [Mon, 14 Apr 2008 16:34:34 +0000 (10:34 -0600)] 
Added dummy eCAP files to make "make dist" happy.

17 years agoBootstrap lib/libLtld when running top-level bootstrap.sh.
Alex Rousskov [Mon, 14 Apr 2008 16:18:00 +0000 (10:18 -0600)] 
Bootstrap lib/libLtld when running top-level bootstrap.sh.

This appears necessary because libtoolize-generated lib/libLtdl/Makefile.in is
probably made with an older automake version and refers to a non-existent
mkinstalldirs script. Yet, bootsrapping libLtdl produces warnings (or
non-fatal errors) so I am not sure it is the right thing to do long-term.

17 years agoFix 'make dist' breakage created by header testing.
Amos Jeffries [Mon, 14 Apr 2008 13:51:31 +0000 (01:51 +1200)] 
Fix 'make dist' breakage created by header testing.

17 years agoTPROXY v4 support upgrade (part 1 of 2)
Amos Jeffries [Mon, 14 Apr 2008 06:30:27 +0000 (18:30 +1200)] 
TPROXY v4 support upgrade (part 1 of 2)

Part 1 adds complete TPROXYv4 capabilities to Squid.
The alterations are rather superficially tacked into the netfilter support.

Polish for this feature involves some rather intrusive alterations to
transparency which are still undergoing testing. That is part 2.

A temporary configure option --enable-linux-tproxy4 is provided as part of
this commit to enable the TPROXY v4 code. Part 2 will remove this option
again in favour of squid.conf transparency controls.

17 years agoCleanup Debug include sequence.
Amos Jeffries [Mon, 14 Apr 2008 00:20:51 +0000 (12:20 +1200)] 
Cleanup Debug include sequence.

17 years agoFix build error on Irix.
Guido Serassio [Sun, 13 Apr 2008 17:01:15 +0000 (19:01 +0200)] 
Fix build error on Irix.

On Irix the inclusion of sstream defines assert(), so the build fails for
a redefinition error.
Just include Debug.h as last to fix the problem.

17 years agoUpdate auto-documentation generatino so .dyn files work again
Amos Jeffries [Sun, 13 Apr 2008 12:04:17 +0000 (00:04 +1200)] 
Update auto-documentation generatino so .dyn files work again

17 years agoUpdate auto-docs text for IPAddress class
Amos Jeffries [Sat, 12 Apr 2008 11:48:25 +0000 (23:48 +1200)] 
Update auto-docs text for IPAddress class

17 years agoeCAP support, part 1: Loadable modules and ICAP-independent Squid core.
Alex Rousskov [Sat, 12 Apr 2008 04:52:49 +0000 (22:52 -0600)] 
eCAP support, part 1: Loadable modules and ICAP-independent Squid core.

The first part of eCAP work includes (a) initial support for loadable
modules and (b) removing ICAP from main Squid sources, replaced with the
adaptation API that does not depend on a specific adaptation mechanism.

The patch does not contain significant changes to main Squid sources.
Generic adaptation API should minimize significant core changes going
forward. Details are below. For a low-level change log, see the eCAP bzr
branch at https://code.launchpad.net/~rousskov/squid/ecap

Configuration and features:

  Added adaptation_service_set squid.conf option, deprecating
  icap_class. The new option has more accurate documentation and does
  not depend on the adaptation protocol so one can group eCAP and ICAP
  services.

  Added adaptation_service_set squid.conf option, deprecating
  icap_access. The new option has more accurate documentation and does
  not depend on the adaptation protocol so one can mix-and-match eCAP
  and ICAP ACL rules.

  Added loadable_modules squid.conf option to specify what shared
  libraries to load dynamically. The support is based on libtool's ltdl
  convenience library and is enabled by default. It can be disabled
  using --disable-loadable-modules.  Loadable modules are needed for
  eCAP, but loadable_modules code deals with generic module
  manipulation, independent from eCAP support. Squid does not yet
  communicate with the loaded modules. TODO: support cachemgr
  reporting and reconfiguration of modules.

Internals:

  Squid core no longer knows about ICAP: General message adaptation code
  has been moved from src/ICAP to src/adaptation/. The only connection
  between main Squid code and ICAP is squid.conf parser and a few
  enabling lines in main.cc. USE_ADAPTATION is enabled if ICAP_CLIENT or
  USE_ECAP is enabled. TODO: Make adaptation comments, debug, and error
  messages in main Squid code ICAP-neutral. This has not been done yet
  to reduce VCS conflicts.

  The src/ICAP/ directory now has its own Makefile (so does the new
  src/adaptation). TODO: Should ICAP and eCAP directories be moved
  inside adaptation/?

  The eCAP directory and the --enable-ecap option have been added, but
  they should not be used yet.

  Added an adaptation service group API to support groups of services.
  Current code supports service sets and single-service groups. Sets
  provide a way to group interchangeable services together so that one
  (the "best" available) service is applied to the message. A
  single-service group is an internal feature to allow user to mix
  service and group names in squid.conf ACLs.  TODO: support service
  chains (as a service group) and perhaps group of groups?

  Implemented delayed creation of adaptation services. We used to create
  ICAPServiceRep objects when parsing the configuration file.
  Create-as-you-parse is imperfect for several reasons, especially if
  the services are dynamically loaded as is the case with eCAP. We now
  remember the service configuration and then create the actual service
  object _after_ the configuration has been parsed and loadable modules,
  if any, have been loaded.

  The bootstrap.sh script has been updated to generate ltdl library
  using libtoolize and move it to lib/libLtdl (except for the standard
  copyright file). With libtool version 2, the move will be supported by
  libtoolize itself.  The lib/libLtdl directory and libtool.m4 file are
  not in VCS.

17 years agoShift candidates when the top candidate does not match
Alex Rousskov [Sat, 12 Apr 2008 04:16:45 +0000 (22:16 -0600)] 
Shift candidates when the top candidate does not match
Supply reply for reply-based ACLs
Polished debugging

17 years agoMerged from trunk.
Alex Rousskov [Sat, 12 Apr 2008 03:14:51 +0000 (21:14 -0600)] 
Merged from trunk.

17 years agoMerge from trunk
Alex Rousskov [Fri, 11 Apr 2008 23:46:30 +0000 (17:46 -0600)] 
Merge from trunk

17 years agoWrap ESI headers away from .h dependency testing when module disabled.
Amos Jeffries [Thu, 10 Apr 2008 12:18:39 +0000 (00:18 +1200)] 
Wrap ESI headers away from .h dependency testing when module disabled.

These mysteriously had passed all dependency tests on machines where
the XML libraries existed, despite ESI disabling. Only showed up when built
on a machine without Expat.

17 years agoBug 2302: IPv6 IPs of the CONNECT header URLs parse wrong
Amos Jeffries [Thu, 10 Apr 2008 11:29:39 +0000 (23:29 +1200)] 
Bug 2302: IPv6 IPs of the CONNECT header URLs parse wrong

17 years agoAuthor: Alex Rousskov <rousskov@measurement-factory.com>
Amos Jeffries [Wed, 9 Apr 2008 13:12:15 +0000 (01:12 +1200)] 
Author: Alex Rousskov <rousskov@measurement-factory.com>
Bug 2186 pt 2: DIRECT/<ip> mixed with DIRECT/<hostname>

17 years agoMake IdleConn::removeFd err on the soft site if the fd could not be found
Henrik Nordstrom [Mon, 7 Apr 2008 22:38:10 +0000 (00:38 +0200)] 
Make IdleConn::removeFd err on the soft site if the fd could not be found

this fixes the assert seen by Tsantilas Christos. It's not really a proper
fix to the underlying problem, but at least makes Squid surive.

The actual problem is race windows introduced by the async call queue. In
this case both "closed by remote server" and "timeout" events may get queued
at the same time, or to be specific the "closed by remote server" read event
stays in the queue and gets called even after pconn has deregistered interest
in the event.

17 years agoTransparent flag must be done before bind(). BASIC_TPROXY4
Amos Jeffries [Mon, 7 Apr 2008 22:05:09 +0000 (10:05 +1200)] 
Transparent flag must be done before bind().

Also fix a small cut-n-paste error with #endif.

17 years agoChange cachemgr filedescriptors timeout column to seconds
Henrik Nordstrom [Mon, 7 Apr 2008 20:51:24 +0000 (22:51 +0200)] 
Change cachemgr filedescriptors timeout column to seconds

generally more useful that way. Also a forward-port from Squid-2.

17 years agoMigrate uses of comm_set_transparent to using comm_openex flag instead.
Amos Jeffries [Mon, 7 Apr 2008 10:40:15 +0000 (22:40 +1200)] 
Migrate uses of comm_set_transparent to using comm_openex flag instead.

Cleaner and reduces the overall Comm API.
IPv6 update had incorrectly interpreted comm_open flags as ai_flags.
  (same context, different actual name/values)

17 years agoMove IP_TRANSPARENT setting into comm_openex(...)
Amos Jeffries [Mon, 7 Apr 2008 10:30:11 +0000 (22:30 +1200)] 
Move IP_TRANSPARENT setting into comm_openex(...)
Author: Laszlo Attilla Toth <panther@balabit.hu>

Adds flag COMM_TRANSPARENT which must be passed to comm_openex() for
transparent ports.

17 years agoMerged from trunk
Amos Jeffries [Mon, 7 Apr 2008 09:40:58 +0000 (21:40 +1200)] 
Merged from trunk

17 years agoBug #2001: Fails to forward responses where headers >4KB
Henrik Nordstrom [Mon, 7 Apr 2008 07:26:08 +0000 (09:26 +0200)] 
Bug #2001: Fails to forward responses where headers >4KB

This changes reply processing to clone the already parsed reply header
instead of trying to parse it yet another time. This allows us to seek
over the header contents and that way get away with just having a 4KB
buffer..

In the long run the store client API will be changed to provide a clean
split between headers and body, providing headers in parsed form (including
intermediary 1xx messages) and then the body starting at offset 0. This
change is a first step along that path but without changing the store client
api as such, with the intention of being merged into 3.0.

17 years agoMerged from trunk
Henrik Nordstrom [Sun, 6 Apr 2008 23:24:20 +0000 (01:24 +0200)] 
Merged from trunk

17 years agoBug 2265: --enable-icmp compile fails on FreeBSD
Amos Jeffries [Sun, 6 Apr 2008 12:40:55 +0000 (00:40 +1200)] 
Bug 2265: --enable-icmp compile fails on FreeBSD
Author: Christos Tsantilas <chtsanti@users.sourceforge.net>

Re-introduces definition of icmphdr/icmp for OS which do not define them.

This code was removed during the initial re-write because it was thought
, incorrectly, to be no longer needed.

17 years agoBug 2299: src/ACLARP.cc fails to compile on Solaris 10
Amos Jeffries [Sun, 6 Apr 2008 12:37:53 +0000 (00:37 +1200)] 
Bug 2299: src/ACLARP.cc fails to compile on Solaris 10
Author: Christos Tsantilas <chtsanti@users.sourceforge.net>

17 years agoWindows port: Released name of Longhorn Server is Windows Server 2008
Guido Serassio [Sun, 6 Apr 2008 09:44:29 +0000 (11:44 +0200)] 
Windows port: Released name of Longhorn Server is Windows Server 2008

17 years agoMerged from trunk
Henrik Nordstrom [Sun, 6 Apr 2008 01:34:08 +0000 (03:34 +0200)] 
Merged from trunk

17 years agoFallback on transparent interception mode even if the connection didn't seem
Henrik Nordstrom [Sun, 6 Apr 2008 01:31:13 +0000 (03:31 +0200)] 
Fallback on transparent interception mode even if the connection didn't seem
to be transparently intercepted

Needed to deal properly with situations where connections to the local host
is intercepted, or when people NAT outside the Squid server but still compile
Squid with support for the NAT/interception method availabe on the host OS..

17 years agoMerged from trunk
Henrik Nordstrom [Sun, 6 Apr 2008 00:51:55 +0000 (02:51 +0200)] 
Merged from trunk

17 years agoMerge from TRUNK
Amos Jeffries [Sat, 5 Apr 2008 22:57:27 +0000 (10:57 +1200)] 
Merge from TRUNK

17 years agooperations in foward.cc
Amos Jeffries [Sat, 5 Apr 2008 22:55:18 +0000 (10:55 +1200)] 
operations in foward.cc

17 years agoBug 2245: cache_dir is not built correctly
Amos Jeffries [Sat, 5 Apr 2008 12:20:44 +0000 (00:20 +1200)] 
Bug 2245: cache_dir is not built correctly

17 years agoCall testheaders.sh with locally detected shell.
Amos Jeffries [Sat, 5 Apr 2008 11:21:54 +0000 (23:21 +1200)] 
Call testheaders.sh with locally detected shell.

Fixes problems where bash shell is not available at /bin/bash

Also replaces some remaining relative paths with the build top dir variable.

17 years agoBug 2286: assertion failed: HttpHdrContRange.cc:100: "spec->length >= 0"
Amos Jeffries [Sat, 5 Apr 2008 10:55:30 +0000 (22:55 +1200)] 
Bug 2286: assertion failed: HttpHdrContRange.cc:100: "spec->length >= 0"
Author: Christos Tsantilos <chtsanti@users.sourceforge.net>

Moves the assertion check for spec->length in function
httpHdrRangeRespSpecParseInit  exactly after the spec->length copmuted.

Also Fix of a possible  misuse of errno in httpHeaderParseOffset function
The errno before used with strtol function must set to "0".

17 years agoRemoved stale and unused sources to minimize diffs with trunk.
Alex Rousskov [Sat, 5 Apr 2008 05:24:42 +0000 (23:24 -0600)] 
Removed stale and unused sources to minimize diffs with trunk.

17 years agoPolished for trunk merge
Alex Rousskov [Sat, 5 Apr 2008 05:16:03 +0000 (23:16 -0600)] 
Polished for trunk merge

17 years agoMerge from trunk
Alex Rousskov [Sat, 5 Apr 2008 04:54:38 +0000 (22:54 -0600)] 
Merge from trunk

17 years agoMade testheaders.h happy.
Alex Rousskov [Sat, 5 Apr 2008 04:40:38 +0000 (22:40 -0600)] 
Made testheaders.h happy.

17 years agoBug 2267 - increase MAX_URL to 8192
Amos Jeffries [Sat, 5 Apr 2008 02:00:45 +0000 (14:00 +1200)] 
Bug 2267 - increase MAX_URL to 8192

17 years agoMerge from trunk
Alex Rousskov [Fri, 4 Apr 2008 23:06:03 +0000 (17:06 -0600)] 
Merge from trunk

17 years agoWe should probably unlock callback_data in case we did not call the callback.
Alex Rousskov [Fri, 4 Apr 2008 17:14:29 +0000 (11:14 -0600)] 
We should probably unlock callback_data in case we did not call the callback.

17 years agoFixed wrong "this" parameter use after moving adaptation check start code
Alex Rousskov [Fri, 4 Apr 2008 17:11:00 +0000 (11:11 -0600)] 
Fixed wrong "this" parameter use after moving adaptation check start code
from one object to another.

17 years agoMoved AccessCheck object creation and check starting to AccessCheck::Start.
Alex Rousskov [Fri, 4 Apr 2008 16:26:01 +0000 (10:26 -0600)] 
Moved AccessCheck object creation and check starting to AccessCheck::Start.
We may be able to simplify the callers further by migrating to the AsyncJobCall
interface for callbacks.

17 years agoBug 2267 - increase MAX_URL to 8192
Amos Jeffries [Fri, 4 Apr 2008 13:59:45 +0000 (01:59 +1200)] 
Bug 2267 - increase MAX_URL to 8192

17 years agoAdded global Enabled flag to Adaptation::Config so that AccessCheck::Start
Alex Rousskov [Fri, 4 Apr 2008 05:31:40 +0000 (23:31 -0600)] 
Added global Enabled flag to Adaptation::Config so that AccessCheck::Start
can check that instead of becoming dependent on each adaptation mechanism
and its config.onoff setting. Could have created a generic Registry of
all adaptation mechanisms instead.

17 years agoPolished comments
Alex Rousskov [Fri, 4 Apr 2008 04:27:13 +0000 (22:27 -0600)] 
Polished comments

17 years agoApplied --local commits
Alex Rousskov [Thu, 3 Apr 2008 23:26:48 +0000 (17:26 -0600)] 
Applied --local commits

17 years agoIndented and polished.
Alex Rousskov [Thu, 3 Apr 2008 23:20:33 +0000 (17:20 -0600)] 
Indented and polished.

17 years agoCreate an "implicit" SingleService group if an access rule refers to a service
Alex Rousskov [Thu, 3 Apr 2008 23:11:40 +0000 (17:11 -0600)] 
Create an "implicit" SingleService group if an access rule refers to a service
rather than a service group.

17 years agoAdded debugging
Alex Rousskov [Thu, 3 Apr 2008 23:10:04 +0000 (17:10 -0600)] 
Added debugging

17 years agoPolished after removing lib/libLtdl from VCS.
Alex Rousskov [Thu, 3 Apr 2008 21:42:46 +0000 (15:42 -0600)] 
Polished after removing lib/libLtdl from VCS.

17 years agoGot rid of references to libtool.m4 because libtoolize does not require it
Alex Rousskov [Thu, 3 Apr 2008 21:24:07 +0000 (15:24 -0600)] 
Got rid of references to libtool.m4 because libtoolize does not require it
and we want to rely on packager's version anyway (just like with other
autotools-generated or provided files).

17 years agoIgnore and do not version lib/libLtdl because it is libtool-generated.
Alex Rousskov [Thu, 3 Apr 2008 21:19:21 +0000 (15:19 -0600)] 
Ignore and do not version lib/libLtdl because it is libtool-generated.
Ignore cfgaux because it is libtool-generated (merged from trunk).

17 years agoSelectively roll comm_connect_addr part of the Linux leak fix out of trunk.
Amos Jeffries [Thu, 3 Apr 2008 21:12:16 +0000 (09:12 +1200)] 
Selectively roll comm_connect_addr part of the Linux leak fix out of trunk.

The IPAddress and configure parts are left to simplify future testing of why it
does not work in FreeBSD and what went wrong with the sockaddr_storage.

17 years agoAdd netinet/in.h to configure tests for ss_len etc.
Amos Jeffries [Thu, 3 Apr 2008 21:04:37 +0000 (09:04 +1200)] 
Add netinet/in.h to configure tests for ss_len etc.

17 years agoWrap Delay Pools module headers
Amos Jeffries [Thu, 3 Apr 2008 11:56:42 +0000 (23:56 +1200)] 
Wrap Delay Pools module headers

- prevents all compiling and testing of the headers when the component is disabled.

17 years agoAdd more auto-generated files to BZR ignore list.
Amos Jeffries [Thu, 3 Apr 2008 10:32:04 +0000 (22:32 +1200)] 
Add more auto-generated files to BZR ignore list.

17 years agoAttempted fix for FreeBSD run-time socket error "(22) Invalid Object" on connects
Amos Jeffries [Thu, 3 Apr 2008 09:39:06 +0000 (21:39 +1200)] 
Attempted fix for FreeBSD run-time socket error "(22) Invalid Object" on connects

- Sets the ss_len / sin_len / sin6_len fields of sockaddr_* objects
  when retrieved for connection setup.
- Tests the OS at compile time for each of these fields existence to
  cope with some OS (ie Linux) not using or providing them.

17 years agoMerge from trunk
Alex Rousskov [Thu, 3 Apr 2008 05:45:07 +0000 (23:45 -0600)] 
Merge from trunk

17 years agoAdded an adaptation service group API to support groups of services. Current
Alex Rousskov [Thu, 3 Apr 2008 05:31:29 +0000 (23:31 -0600)] 
Added an adaptation service group API to support groups of services. Current
code supports service sets and single-service groups. The former provides a
way to group interchangeable services together so that one (the "best"
available) service is applied to the message. The latter is an internal
feature to allow user to mix service and group names in squid.conf ACLs.
TODO: support service chains (as a service group) and perhaps group of groups.

Moved adaptation access rule state from being shared between ICAPClass and
ICAPAccessCheck classes into a dedicated AccessRule class. This simplifies
both classes and allows for checking access rules in the correct order.

Use group names when linking adaptation access rules to groups. This is less
efficient (especially since we are still using Vector iteration to find a
matching group) but much simpler. TODO: Optimize.

All adaptation services, access rules, and service groups now have a
finalize() method that is called after configuration parsing has been
completed but before the main loop starts. This allows to verify or optimize
name-based links to other services, rules, and groups.

Moved adaptation access check and group classes into their own files.

Added adaptation_service_set squid.conf option, deprecating icap_class. The
new option has more accurate documentation and does not depend on the
adaptation protocol so one can group eCAP and ICAP services.

Added adaptation_service_set squid.conf option, deprecating icap_access. The
new option has more accurate documentation and does not depend on the
adaptation protocol so one can mix-and-match eCAP and ICAP ACL rules.

17 years agoHonor 0x and 0 prefixes as numeric base indication when parsing squid.conf
Alex Rousskov [Thu, 3 Apr 2008 04:41:41 +0000 (22:41 -0600)] 
Honor 0x and 0 prefixes as numeric base indication when parsing squid.conf
integer options.

Squid3 parses squid.conf file integers as decimal numbers while Squid2 honors
0 and 0x prefixes (indicating octal and hex numbers). The later functionality
is needed for things like unmask that are traditionally specified using octal
format.

This patch changes Squid3 behavior to match that of Squid2.
Internally, Squid3 uses sscanf and Squid2 uses strtol.

TODO: Squid3::GetInteger should probably use xatol,
and xatol should be fixed to proper verify the result of strtol.

17 years agoCorrect and simplify parsing of list headers
Henrik Nordstrom [Wed, 2 Apr 2008 00:11:51 +0000 (18:11 -0600)] 
Correct and simplify parsing of list headers

17 years agoIgnore autotool generated files
Henrik Nordstrom [Wed, 2 Apr 2008 00:01:18 +0000 (18:01 -0600)] 
Ignore autotool generated files

17 years agoRemove autotool derived files from trunk, we only need to keep these in STABLE branches.
Henrik Nordstrom [Tue, 1 Apr 2008 23:58:32 +0000 (17:58 -0600)] 
Remove autotool derived files from trunk, we only need to keep these in STABLE branches.

17 years agoConvert some old-TPROXY code in forward.cc not previously done.
Amos Jeffries [Tue, 1 Apr 2008 11:13:48 +0000 (23:13 +1200)] 
Convert some old-TPROXY code in forward.cc not previously done.

17 years agoSimplify HTTP header list parsing a bit after the changes for Bug #420.
Henrik Nordstrom [Mon, 31 Mar 2008 23:39:06 +0000 (01:39 +0200)] 
Simplify HTTP header list parsing a bit after the changes for Bug #420.

17 years agoBug #420: Deal properly with empty list elements
Henrik Nordstrom [Mon, 31 Mar 2008 23:30:27 +0000 (01:30 +0200)] 
Bug #420: Deal properly with empty list elements

yet another fix to previous commits, this time fixing how to deal with
quoted elements.

17 years agoBug #420: Deal properly with null elements
Henrik Nordstrom [Mon, 31 Mar 2008 23:22:08 +0000 (01:22 +0200)] 
Bug #420: Deal properly with null elements

Bugfix to previous commit. HTTP headers may be folded.

17 years agoBug #420: Deal properly with null elements in lists (Connection and other list headers)
Henrik Nordstrom [Mon, 31 Mar 2008 23:16:39 +0000 (01:16 +0200)] 
Bug #420: Deal properly with null elements in lists (Connection and other list headers)

need to deal with whitespace-only null elements

ConnectIon: , , , X-Delete-Me , , ,

17 years agohttp_port tproxy options MUST imply transparent.
Amos Jeffries [Mon, 31 Mar 2008 10:45:54 +0000 (22:45 +1200)] 
http_port tproxy options MUST imply transparent.
Also the TOS for IP_TRANSPARENT is apparently always '1'

17 years agoAdded generic support for loadable Squid modules or plugins.
Alex Rousskov [Mon, 31 Mar 2008 04:31:48 +0000 (22:31 -0600)] 
Added generic support for loadable Squid modules or plugins.

The "loadable_modules" squid.conf option specifies what shared libraries to
load dynamically. The support is based on libtool's ltdl library, which has
been integrated with Squid prior to this commit, along with the
--enable-loadable-modules ./configure option.

Loaded modules are currently never unloaded, but that may change.

Loadable modules are needed for eCAP, but loadable_modules code deals with
generic module manipulation, independent from eCAP support.

TODO: support cachemgr reporting and reconfiguration.

17 years agoCompile errors with --enable-linux-tproxy4 set
Amos Jeffries [Mon, 31 Mar 2008 04:01:31 +0000 (16:01 +1200)] 
Compile errors with --enable-linux-tproxy4 set

17 years agoMerge from trunk
Alex Rousskov [Mon, 31 Mar 2008 01:06:13 +0000 (19:06 -0600)] 
Merge from trunk

17 years agoMake libtoolize-generated files writable before updating them, to prevent
Alex Rousskov [Sun, 30 Mar 2008 23:53:13 +0000 (17:53 -0600)] 
Make libtoolize-generated files writable before updating them, to prevent
"mv" from asking the user whether to overwrite those files.

With libtool version 2(?), all this voodoo will become unnecessary.

17 years agoRenamed types and members after moving adaptation-method-agnostic APIs to the
Alex Rousskov [Sun, 30 Mar 2008 19:48:34 +0000 (13:48 -0600)] 
Renamed types and members after moving adaptation-method-agnostic APIs to the
Adaptation namespace and adding support for delayed adaptation service
creation.

17 years agoFinalize adaptation configuration after the config file was parsed.
Alex Rousskov [Sun, 30 Mar 2008 19:44:37 +0000 (13:44 -0600)] 
Finalize adaptation configuration after the config file was parsed.

We may want to make this code adaptation-method-agnostic, but it is not
clear whether hiding adaptation methods from main() is worth the trouble.

17 years agoRenamed types and members after moving adaptation-method-agnostic APIs to the
Alex Rousskov [Sun, 30 Mar 2008 19:40:57 +0000 (13:40 -0600)] 
Renamed types and members after moving adaptation-method-agnostic APIs to the
Adaptation namespace and adding support for delayed adaptation service
creation.

17 years agoAdded new source files.
Alex Rousskov [Sun, 30 Mar 2008 19:38:51 +0000 (13:38 -0600)] 
Added new source files.

17 years agoAdded forward declarations for adaptation-related APIs. This may relax
Alex Rousskov [Sun, 30 Mar 2008 19:35:21 +0000 (13:35 -0600)] 
Added forward declarations for adaptation-related APIs. This may relax
dependencies among header files using adaptation APIs.

17 years agoMoved configuration options that do not depend on the adaptation method
Alex Rousskov [Sun, 30 Mar 2008 19:13:51 +0000 (13:13 -0600)] 
Moved configuration options that do not depend on the adaptation method
from ICAP/ICAPConfig to adaptation/Config. ICAP and eCAP will not share
the same base configuration but will share the same base configuration code
(i.e., there will be two independent ICAPConfig and ecap::Config objects,
but they will have a common parent).

Implemented delayed creation of adaptation services. We used to create
ICAPServiceRep objects when parsing the configuration file.
Create-as-you-parse is imperfect for several reasons, especially if the
services are dynamically loaded as is the case with eCAP. We now remember the
service configuration and then create the actual service object _after_ the
configuration has been parsed and loadable modules, if any, have been loaded.

No functional changes are expected from this change.

17 years agoMoved ICAP/ICAPInit* classes to adaptations/Init* classes.
Alex Rousskov [Sun, 30 Mar 2008 19:06:02 +0000 (13:06 -0600)] 
Moved ICAP/ICAPInit* classes to adaptations/Init* classes.

This move helps Squid core code to manage adaptations without referring
to a specific adaptation mechanism. No functional changes are expected,
although InitiateHolder has been polished to prevent dereferencing of
invalidated Initiator.

17 years agoMoved ICAP/ICAPInit* classes to adaptations/Init* classes.
Alex Rousskov [Sun, 30 Mar 2008 19:00:57 +0000 (13:00 -0600)] 
Moved ICAP/ICAPInit* classes to adaptations/Init* classes.

This move helps Squid core code to manage adaptations without referring
to a specific adaptation mechanism. No functional changes are expected,
although InitiateHolder has been polished to prevent dereferencing of
invalidated Initiator.

17 years agoMoved adaptation-method-independent service-configuration code from
Alex Rousskov [Sun, 30 Mar 2008 18:47:14 +0000 (12:47 -0600)] 
Moved adaptation-method-independent service-configuration code from
ICAPServiceRep to Adaptation::ServiceConfig so that eCAP services can use it.

17 years agoMigrating from ICAP-specific API to generic "adaptation" API.
Alex Rousskov [Sun, 30 Mar 2008 18:20:14 +0000 (12:20 -0600)] 
Migrating from ICAP-specific API to generic "adaptation" API.

Core Squid code should not care about the specific adaptation mechanism in
use.

This change should not affect Squid functinality.

The migration is not complete because the on/off switch is still
ICAP-specific and because comments, debug, and error messages may still
refer to ICAP.

17 years agoMerged from trunk
Henrik Nordstrom [Sun, 30 Mar 2008 13:42:54 +0000 (15:42 +0200)] 
Merged from trunk

17 years agoRevert an incorrect removal of flags.storelogiccomplete
Henrik Nordstrom [Sun, 30 Mar 2008 13:34:01 +0000 (15:34 +0200)] 
Revert an incorrect removal of flags.storelogiccomplete

it's a somewhat confusing flag, but needs to be there until the split
of response headers & body is completed.

17 years agoOops. Should have been set transparent on the child socket.
Amos Jeffries [Sat, 29 Mar 2008 11:39:47 +0000 (23:39 +1200)] 
Oops. Should have been set transparent on the child socket.

17 years agoExperiment re-setting the IP_TRANSPARENT flag after accept()
Amos Jeffries [Sat, 29 Mar 2008 11:38:28 +0000 (23:38 +1200)] 
Experiment re-setting the IP_TRANSPARENT flag after accept()

17 years agoChange SOL_IP at Laszlo's direction.
Amos Jeffries [Sat, 29 Mar 2008 11:33:37 +0000 (23:33 +1200)] 
Change SOL_IP at Laszlo's direction.

17 years agoUpdate Release Notes for TPROXY changes.
Amos Jeffries [Sat, 29 Mar 2008 11:23:47 +0000 (23:23 +1200)] 
Update Release Notes for TPROXY changes.

17 years agoMerge from HEAD/TRUNK
Amos Jeffries [Sat, 29 Mar 2008 11:02:07 +0000 (23:02 +1200)] 
Merge from HEAD/TRUNK

17 years agoBug #420: Fails to parse Connection: ,,,Header,,,
Henrik Nordstrom [Fri, 28 Mar 2008 20:46:41 +0000 (21:46 +0100)] 
Bug #420: Fails to parse Connection: ,,,Header,,,

and other list constructs with empty members

17 years agoFix compile error.
Amos Jeffries [Wed, 26 Mar 2008 12:02:56 +0000 (00:02 +1200)] 
Fix compile error.

17 years agoMerged from trunk.
Amos Jeffries [Wed, 26 Mar 2008 11:49:34 +0000 (23:49 +1200)] 
Merged from trunk.
Added final step of TPROXY4 patch - settign of IP_TRANSPARENT option

17 years agoMerged from trunk
Henrik Nordstrom [Tue, 25 Mar 2008 15:42:04 +0000 (16:42 +0100)] 
Merged from trunk

17 years agoFix memset NULL warning in latest comm.cc changes
Henrik Nordstrom [Tue, 25 Mar 2008 15:40:36 +0000 (16:40 +0100)] 
Fix memset NULL warning in latest comm.cc changes

NULL is a NULL pointer, not 0.

17 years agoMerged from trunk
Henrik Nordstrom [Tue, 25 Mar 2008 15:32:43 +0000 (16:32 +0100)] 
Merged from trunk