serassio [Tue, 8 Feb 2005 05:30:15 +0000 (05:30 +0000)]
Added configure test to see if -lepoll is available when using --enable-epoll:
-lepoll is not needed (and may be not present) on kernel 2.6 platforms
with newest glibc, but may be needed on systems updated from 2.4 to 2.6
kernel still using old glibc.
wessels [Sat, 29 Jan 2005 05:54:16 +0000 (05:54 +0000)]
Bug #1217: Buffer overflow in WCCP recvfrom() call
The length argument of the WCCP recvfrom() call is
larger than it should be. An attacker may send a
larger-than-normal WCCP packet and overflow a buffer.
serassio [Fri, 28 Jan 2005 16:23:41 +0000 (16:23 +0000)]
Bug #1189: buffer overflow bug in gopherToHTML()
Yet another buffer overflow bug in gopherToHTML(). This one is similar
to others already found and the same solution is used. If a potential
overflow is detected, the excess input is simply lost.
serassio [Fri, 28 Jan 2005 16:05:25 +0000 (16:05 +0000)]
Bug #1190: Denial of service with forged WCCP messages
WCCP_I_SEE_YOU messages contain a 'number of caches' field which
should be between 1 and 32. Values outside that range may
crash Squid if WCCP is enabled, and if an attacker can
spoof UDP packets with the WCCP router's IP address.
This patch drops and logs WCCP_I_SEE_YOU messages if the number of
caches is less than 1 or greater than 32.
serassio [Fri, 28 Jan 2005 02:57:09 +0000 (02:57 +0000)]
Bug #1212: helper leak on squid -k reconfigure
HelperShutdown does not actually shutdown any helper.
The problem was originated during the forward port of fixes from bug #1118.
This patch also adds a debug message "shutting down".
serassio [Thu, 6 Jan 2005 20:16:38 +0000 (20:16 +0000)]
MSVC fixup:
Changes developed during latest code sprint allowing
the build with MS Visual Studio 2005 beta 1:
- log() needs type casting
- abs() needs type casting
- Splay<> template fix
- type casting for ESI tag
- getpagesize() prototype is not defined in all Windows
build environment
- Windows specific type casting for recv() and send()
- strchr() on Windows doesn't like username() as argument
robertc [Mon, 3 Jan 2005 23:08:24 +0000 (23:08 +0000)]
Merge in current state of store refactoring work. The search method has been
fully implemented for all current store types.
Patches applied:
* robertc@squid-cache.org--squid/squid--store-interface--3.0--base-0
tag of robertc@squid-cache.org--squid/squid--HEAD--3.0--patch-516
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-1
merge in the diskio logic cleanup we depend on
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-2
setup a unit test environment for store.cc
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-3
merge from HEAD
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-4
start formal store interface refactoring, moving stat into the Store hierarchy
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-5
make SwapDirs reference counted, test StoreControllers new methods
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-6
move storeDirInit to be just the virtual init method on Store
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-7
nuke Config.Swap.maxSize for calls to Store::Root().maxSize()
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-8
migrate Reference and dereference to StoreController
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-9
make store maintenance a top level Store api call
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-10
move storeDirUpdateSize to Store interface
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-11
move store creation into the Store API
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-12
move storeDirSync into the Store API
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-13
more INDEXSD nuking, and push the swapdir aspects of store statting into SwapDir
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-14
more INDEXSD nuking. move SwapDir.low_size to a minSize() query
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-15
another INDEXSD removal, storeDirCallback folded into the Store API
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-16
correct logic error in StoreController::Callback from previous changes
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-22
make RemovalPolicySettingsa class
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-23
make testUfs use a real UFSSwapDir
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-24
testUfs should clean up after it succeeds
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-25
merge from HEAD
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-26
wave enough dead chickens that we can set a store object to public
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-27
get testUfs to put an object in the store successfully
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-28
get testUfs to save clean log state
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-29
let rebuild work fully on testUfs, so we can start adapting RebuildState to being a StoreSearch
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-30
implement basic search for UFSSwapDirs
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-32
convert RebuildState to CDBATA_CLASS2
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-33
switch from log based searching to replacement policy based searching for UFSSwapDirs
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-34
rename variable s to swapData in UFS restore from directory routine
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-35
store rebuilds need to check for duplicates across the entire store.
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-36
start testing COSS - store creation for starters
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-37
make StoreSearch a header of its own, and implement search(NULL,NULL) for COSS
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-38
start testing the Null store type
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-39
implement null store search(NULL, NULL)
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-40
remove a couple of unneded SwapDir.h includes
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-41
move search one level up in the Store hierarchy
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-42
test the rudiments of StoreHashIndex
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-43
move hash initialisation into StoreHashIndex::init
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-44
oops, forgot new files
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-45
implement search for StoreHashIndex
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-46
void * apis suck badly. fix a casting problem with destroyStoreEntry
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-47
implement search for StoreController
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-48
convert store object statting to use the StoreSearch api
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-49
convert cache digests to the store search api
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-50
convert store cleanup callback to use the store api
* robertc@squid-cache.org--squid/squid--store-interface--3.0--patch-51
merge from HEAD
hno [Mon, 27 Dec 2004 23:59:14 +0000 (23:59 +0000)]
Bug #1177: Don't close all "other" filedescriptors
Currently when Squid is started it forcibly closes all "other" filedescriptors
other than stdin/stdout/stderr. While this is a reasonable security precaution
to clean up filedescriptor leakage from the caller it crashes some SSL libraries
and possibly other functions which opens internal filedescriptors on startup or
while the configuration is parsed.
It also causes problems for daemontools or other service monitors monitoring
the daemon by keeping a unused pipe open to the daemon process.
hno [Fri, 24 Dec 2004 05:17:20 +0000 (05:17 +0000)]
minumum_expiry_time directive
The minimum caching time according to (Expires - Date)
Headers Squid honors if the object can't be revalidated
defaults to 60 seconds. In reverse proxy enorinments it
might be desirable to honor shorter object lifetimes. It
is most likely better to make your server return a
meaningful Last-Modified header however.
serassio [Wed, 22 Dec 2004 23:21:33 +0000 (23:21 +0000)]
Bug #707: Added functionality to query the origin server for IMS requests.
Original 2.5 STABLE3 patch from Brian.
This adds two new config options:
1. refresh_all_ims (on/default off) will force all IMS queries to pass
through to the origin server (or parent cache).
2. refresh_patterns have a refresh-ims option, which does the same, but on a
more selective level.