wessels [Tue, 3 Feb 1998 14:35:25 +0000 (14:35 +0000)]
Started working on swap headers and meta data. I changed the Get/Add
routines to something which Packs/Unpacks the whole buffer to/from a
linked list of TLV structures. The hard part now is that the swapin
and swapout routines most certainly need to be modified to have
special read/write meta header code.
wessels [Tue, 3 Feb 1998 04:14:49 +0000 (04:14 +0000)]
Stewart Forster Jumbo Patch
- Completely rewritten aiops.c that creates and manages a pool of
threads so thread creation overhead is eliminated
- Lots of extra debugging
- Lots of mods to store.c to detect and cancel outstanding ASYNC ops.
Code is not proven exhaustive and there are definately still cases
to be found where outstanding disk ops aren't cancelled properly.
- Changes to call interface to a few routines to support disk op
`tagging', so operations can be cleanly cancelled on store_abort()s.
- Implementation of swap.state files as transaction logs. Removed
objects are now noted with a negative object size. This allows
reliatively clean rebuilds from non-clean shutdowns.
- Now that the swap.state files are transaction logs, there's now no
need to validate by stat()ing. All the validation procedure does
is now just set the valid bit AFTER all the swap.state files have
been read, because by that time, only valid objects can be left.
Object still need to be marked invalid when reading the swap.state
file because there's no guarantee the file has been retaken or
deleted.
- An fstat() call is now added after every storeSwapInFileOpened() so
object sizes can be checked. Added code to storeRelease() the
object if the sizes don't match.
- #defining USE_ASYNC_IO now uses the async unlink() rather than
unlinkd()
- #defining MONOTONIC_STORE will support the creation of disk objects
clustered into directories. This GREATLY improves disk performance
(factor of 3) over old `write-over-old-object' method. If using the
MONOTONIC_STORE, the {get/put}_unusedFileno stack stuff is disabled.
This is actually a good thing and greatly reduces the risk of serving
up bad objects.
- Fixed unlink() in storeWriteCleanLogs to be real unlink() rather
than ASYNC/unlinkd unlinks. swap.state.new files were being removed
just after they were created due to delayed unlinks.
- Disabled various assertions and made these into debug warning
messages to make the code more stable until the bugs can be tracked
down.
- Added most of Michael O'Reilly's patches which included many bug
fixes. Ask him for full details.
- Moved aio_check_callbacks in comm_{poll|select}(). It was called
after the fdset had been built which was wrong because the callbacks
were changing the state of the read/write handlers prior to the
poll/select() calls.
wessels [Tue, 3 Feb 1998 02:49:53 +0000 (02:49 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
Squid-1.2.beta11: Support for NLST listings
Format NLST listings, and inform the user that the NLST
(plain) format is available when we find a LIST listing
that we don't understand.
Squid-1.2.beta11: SIZE on binary FTP transfers
Use SIZE on Binary transfers, and not ASCII. The condition
was inversed, making squid use SIZE on ASCII transfers.
Squid-1.2.beta11: Enable virtual and Host: based acceleration in
order to be able to use Squid as a transparent proxy without
breaking either virtual servers or clients not sending Host:
header the order of the virtual and Host: based acceleration
needs to be swapped, giving Host: a higher precendence than
virtual host.
Squid-1.2.beta11: Use memmove/bcopy as detected by configure
Some systems does not have memmove, but have the older bcopy
implementation.
wessels [Tue, 3 Feb 1998 02:39:21 +0000 (02:39 +0000)]
From: Masashi Fujita <objectx@bandit.co.jp>
1) --enable-acltree message displayed while running configure
seems to be reveresed (typo?).
2) --enable-dlmalloc seems to be of no effect.
(src/Makefile doesn't refer @LIB_MALLOC@.)
3) Could not build squid outside of source tree.
wessels [Sat, 31 Jan 1998 12:31:52 +0000 (12:31 +0000)]
- Combined various interprocess communication setup functions
into ipcCreate().
- Removed some leftover ICP_HIT_OBJ things.
- Removed cacheinfo and proto_count() and friends; these are to
be replaced in functionality by StatCounters and 5/60 minute
average views via cachemgr.
Changes to squid-1.2.beta11 (Jan 6, 1998):
wessels [Thu, 8 Jan 1998 04:16:25 +0000 (04:16 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
* Symlink destinations in FTP listings
* @SQUID_PTHREAD_LIB@ and not @PTHREADLIB@ when linking squid, to only
link in -lpthreads when async-io is used.
* --enable-kill-parent-hack instead of --enable-kill-parent
New changes
* -D_REENTRANT when compiling with pthreads (--enable-async-io)
* Disable use of SIGUSR1,2 when using linuxthreads (-lpthreads on linux)
linuxthreads uses these two signals internally, since there is no
other available signals to use..
wessels [Wed, 7 Jan 1998 01:12:22 +0000 (01:12 +0000)]
Fixed up 'fooConnectionsClose()' functions. created icpConnectionsClose()
and clientHttpConnectionsClose(). For the UDP sockets, fixed a
bug which caused us to try closing the same FD twice.
wessels [Tue, 6 Jan 1998 07:27:40 +0000 (07:27 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
Here is one big patch, with all the changes I have sent for beta8 that
was not in beta10 and some new ones.
Added remaining options to configure
--enable-new-storekey=[sha|md5(|url)] (was --enable-hashkey)
--enable-acltree
--enable-icmp
--enable-delay-hack
--enable-useragent-log
--enable-kill-parent (this should be named -hack)
--enable-snmp
--enable-time-hack
--enable-cachemgr-hostname[=hostname] (new)
--enable-arp-acl (new)
Added Doug Lea malloc-2.6.4 to the distribution, so that people easily
can try a decent malloc package if they syspect their malloc is broken.
--enable-dlmalloc
Let configure determine witch parts that needs to be compiled,
instead of wrapping the sourcefiles in #ifdef
Moved all the --enable... to the beginning of configure.
Deleted src/options.h. This does NOT work well together with autoconf. I
have instead moved the comments to acconfig.h, and added a small header
with some instructions on how the thing can be configured (all is
visible in include/autoconfig.h[.in]).
Some malloc()/free() calls replaced with x-versions.
Made XMALLOC_DEBUG_COUNT working again. Requires a small stub function
for client and cachemgr.cgi (lib/stub_memaccount.c).
wessels [Mon, 5 Jan 1998 07:45:43 +0000 (07:45 +0000)]
- Changed algorithm for determining alive/dead state of peers.
Instead of using a fixed number of unacknowledged ICP replies,
it is now based on timeouts. If there are no ICP replies
received from a peer within 'dead_peer_timeout' seconds, then
we call it dead.
- Added calls to getCurrentTime() in comm_{select,poll}_incoming().
- Fixed shutdown bug when the incoming and outgoing ICP socket is
the same file descriptor.
wessels [Sat, 3 Jan 1998 12:27:17 +0000 (12:27 +0000)]
We were erroneously assuming that non-200 replies would have a content-length
if there were a reply body. RFC 2068 does not require this. If there is
no content-length, then we can't have a persistent connection.
wessels [Sat, 3 Jan 1998 05:03:40 +0000 (05:03 +0000)]
- Fixed some dnsserver-related reconfigure bugs. Need to
use cbdataLock, etc in fqdncache.c. Also don't want to
use ipcacheQueueDrain() and fqdncacheQueueDrain().
wessels [Sat, 3 Jan 1998 01:15:32 +0000 (01:15 +0000)]
From: "Michael O'Reilly" <michael@metal.iinet.net.au>
here's a patch to fix it. (The threads library is closing FD 0 for
some reason on the fork(). It's a bug in the threads library, but this
is a work around.. )
wessels [Sat, 3 Jan 1998 01:04:21 +0000 (01:04 +0000)]
Tail-chasing because struct rusage not defined on Solaris. The real
problem was 'typedef void struct' instead of 'typedef struct'. However,
we also now have a configure test for 'struct rusage' instead of
just using HAVE_GETRUSAGE.