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.
wessels [Thu, 1 Jan 1998 12:48:38 +0000 (12:48 +0000)]
- Fix bug from Henrik's patch. We can't set the FD timeout after
calling clientReadRequest() because the FD might be closed by then.
- Add an assertion in commSetTimeout() that the FD be open.
wessels [Thu, 1 Jan 1998 07:05:52 +0000 (07:05 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
The client request processing (with this patch) is as follows:
1. Read request data from the client into a buffer
2. If the queue of pending objects is less than 2, then process the
buffer and queue objects for delivery.
3. Immediately restart request processing when a object is delivered,
since we might have read additional requests into the buffer.
wessels [Thu, 1 Jan 1998 06:55:12 +0000 (06:55 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
strdup on the request buffer is not a great idea
* The buffer can contain NULL bytes.
* Unneded overhead
memmove does the job much better, and without corrupting the data on the
way.
wessels [Thu, 1 Jan 1998 05:11:56 +0000 (05:11 +0000)]
The ERR_CANNOT_FORWARD error was overloaded. The text of the message
implies that a 'miss_access' rule is the cause. This error has
been renamed to ERR_FORWARDING_DENIED. The meaning of ERR_CANNOT_FORWARD
has been changed to mean that we could not find a next-hop source
for this request, presumably because 'never_direct' is in use and all
parent caches are down.
wessels [Thu, 1 Jan 1998 03:45:42 +0000 (03:45 +0000)]
From: Peter Wemm <peter@netplex.com.au>
Dont use libresolv on FreeBSD. If its on the system, chances are
that its a bogus one from some other distribution and will not work
properly.
wessels [Thu, 1 Jan 1998 03:41:54 +0000 (03:41 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
Here are some additional autoconf options..
--enable-xmalloc-debug-count
--async-io
And a very small spelling correction to the previous patch
wessels [Thu, 1 Jan 1998 03:38:24 +0000 (03:38 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
* Enable caching for extended tests (where appropriate)
* --enable-store-key=sha|md5
* --enable-xmalloc-statistics
* --enable-xmalloc-debug
* The autoconf patches I sent earlier (setresuid, gnumalloc)
* A fix to the setresuid patch (HAVE_SETRESUID was not updated)
wessels [Thu, 1 Jan 1998 03:32:32 +0000 (03:32 +0000)]
From: Henrik Nordstrom <hno@hem.passagen.se>
Here is a patch that reuses the already opened data channel when we
trigger the different "hacks" (directory without trailing /, or the
slashhack).
wessels [Thu, 1 Jan 1998 02:28:08 +0000 (02:28 +0000)]
Don't set a close handler for the data FD. If we have both ctrl and
data FD's call ftpStateFree() upon close, then we have to delete the
close handler which did NOT get called to prevent ftpStateFree()
getting called twice. Instead we'll always call comm_close() on the
ctrl FD.
wessels [Thu, 1 Jan 1998 00:52:04 +0000 (00:52 +0000)]
Add comm_add_close_handler() for ftpState->data.fd. If the data socket
connection failed, then a comm_close() call was closing the data socket,
but not freeing up the ftpState.
wessels [Wed, 31 Dec 1997 12:06:22 +0000 (12:06 +0000)]
From: Stewart Forster <slf@connect.com.au>
In the default makefile, there is no mention of needing to include
-lpthread for Solaris (I don't know about other OS's). This WILL
cause squid to fail under Solaris, and the standard C library has
non-reentrant routines that will die unless the appropriate thread
library is included.
wessels [Wed, 31 Dec 1997 12:01:46 +0000 (12:01 +0000)]
From: Stewart Forster <slf@connect.com.au>
In comm.c, for VERY low load if you're using async I/O it will go
VERY slow because it will only timeout of the poll every second if
there's no traffic to squid. The fix is to reduce the timeout.
This will now poll for asyncio 20 times a second, rather than once.
This will give a certain 40K/sec transfer rate on a Solaris box.
wessels [Wed, 31 Dec 1997 11:58:04 +0000 (11:58 +0000)]
From: Stewart Forster <slf@connect.com.au>
The patch given by Oskar Pearson was too Linux-centric and ignored
all other OS's desires to use poll(). The corrected business is
below.
wessels [Wed, 31 Dec 1997 06:09:45 +0000 (06:09 +0000)]
- Fixed bogus call to storeDirUpdateSwapSize() for "aborted" objects
or those which never reach SWAPOUT_DONE state.
- use e->object_len in every storeDirUpdateSwapSize() call.
- assert swap fileno is free in getUnusedFileno()
- in storeRelease(), call storeLog() before clearing swap_file_number.
kostas [Sun, 21 Dec 1997 18:00:19 +0000 (18:00 +0000)]
Modified for AS support. We need to know the ip address before going
to PeerSelectFoo() and neighborCount() because AclMatchAcl() can't
block (and it would be more complicated to make a n-b version of it)
wessels [Sun, 7 Dec 1997 01:58:34 +0000 (01:58 +0000)]
Moved URN->URL resolution over to "server-side"
Now we always generate an HTML list of the possibilities. IF we
get a 'minimum RTT' site, then we'll add a 'Location' reply header
and the user-agent should fetch it automatically.