wessels [Sat, 18 Oct 1997 05:57:41 +0000 (05:57 +0000)]
- parse the HTTP reply headers at swap in. This means that
storeClientCopyHandleRead() needs to have a MemObject around.
So I added a pointer back to the parent mem_obj from _store_client.
ugh.
- removed lots of OLD_CODE
wessels [Sat, 18 Oct 1997 05:31:10 +0000 (05:31 +0000)]
- Need to use clientCacheHit() for icpHandleIMSReply() as well. This
means making it global. icpHandleIMSReply() might think it is
serving a cache hit, but the swapfile might not be validated yet,
so swapin might fail.
wessels [Fri, 17 Oct 1997 11:20:18 +0000 (11:20 +0000)]
With new storeClientCopy() scheme, the client side might re-request
some data which has already been read from disk (if it didn't get
the full HTTP headers). That means we need to put lseek() back
in; ugh. New fde->disk.offset tracks the current file offset.
Fixed the 'double-read' bug found by Alex Rousskov. Always
make the read callback after each read() call. Don't wait
for the read buffer to full or for EOF.
This means dread_ctrl->offset isn't needed as it was being used
because there will only be one read() per dread_ctrl. ->offset
now becomes the offset requested from the store module, and we
seek if dread_ctrl->offset != fde->disk.offset.
wessels [Fri, 17 Oct 1997 05:59:52 +0000 (05:59 +0000)]
Reamped objects being held in memory during transit. There will be a
smallish windo of data in memory for objects being transferred from the
server side. For cache hits (swap ins) there is no window, we just read
directly into buffers allocated from the client side, given to store.c
via storeClientCopy().
wessels [Wed, 15 Oct 1997 00:31:24 +0000 (00:31 +0000)]
- More cleanup relating to reduced error code set. protostart() doesn't
really need ERR_NOT_IMPLEMENTED.
- Start working on VM_WINDOW code, removed/replaced old DONT_USE_VM defines
- Replaced !DONT_USE_VM defines with USE_ICP_HIT_OBJ.
wessels [Tue, 26 Aug 1997 04:35:50 +0000 (04:35 +0000)]
Misc fixes to eliminate problems at exit (and other things)
- changed storeDirCloseSwapLogs() to take a 'reopen' arg.
if not set, we don't reopen the logs for writing again.
- added FD_CLOSING flag to avoid recursive calls to comm_close().
- added 'non_peers' structure to keep stats on offendors, instead
of logging every bad reply.
wessels [Mon, 25 Aug 1997 09:51:46 +0000 (09:51 +0000)]
Configuration cleanup.
- set up 'DEFAULT_IF_NONE' option for things like http_port
and cache_dir where we want to set a default only if there
is not one or more given in the config file.
- Implemented the configuration dump via cachemanager. All the
easy config types have dump functions; the remainder are
unimplemented.
wessels [Mon, 25 Aug 1997 08:25:45 +0000 (08:25 +0000)]
return 0 if there is no object data, instead of returning -1. This
could happen, for example, with objcache requests for unsupported
features, such as netdb/icmp.
wessels [Sun, 24 Aug 1997 07:59:47 +0000 (07:59 +0000)]
Fixed not setting HTTP status code for errors. Still need to fix
the log code and other fields. This probably means a callback
from the errorpage module to the client-side.
wessels [Mon, 11 Aug 1997 22:52:41 +0000 (22:52 +0000)]
Dont put last-modified on error pages. Netscape (2.x at least) will
send IMS when you try to reload an error page, and the origin server
sends back NOT MODIFIED.
wessels [Mon, 11 Aug 1997 08:29:08 +0000 (08:29 +0000)]
- In http.c, we need to keep httpState->orig_request after the request
has been sent, in case we need to call httpRestart().
- Sometimes netscape (2.x, IRIX) hangs forever on '100% complete'. Seems
like netscape bug, but we should close the persistent connection after
a short bit anyway.
wessels [Sun, 10 Aug 1997 12:34:26 +0000 (12:34 +0000)]
More work on persistent connections
- added histogram counter
- added httpRestart() to retry failed requests when the
server closes on us.
- missing commSetTimeout() calls when reusing a pconn.
- need to disable read and timeout handler when pconn
pops a FD.
- const fixes
wessels [Sun, 10 Aug 1997 10:42:32 +0000 (10:42 +0000)]
SERVER-SIDE PERSISTENT CONNECTIONS:
- Added pconn.c
- Addec Cofig.Timeout.pconn; default 120 seconds
- Added httpState->flags
- Added flags arg to httpBuildRequestHeader()
- Added HTTP_PROXYING and HTTP_KEEPALIVE flags
- Added 'Connection' to allowed HTTP headers (http-anon.c)
- Added 'Proxy-Connection' to allowed HTTP headers (http-anon.c)
- Merged proxyhttpStart() with httpStart() and crated new
httpBuildState().
- New httpPconnTransferDone() detects end-of-data on persistent
connections.
Other casualties:
- clean up casting of HASHCMP functions
- changed comm_open to return -1 instead of wierd COMM_ERROR
- cbdata-ify comm_close_handler stuff
- make some args const
- changed some PARAMS(()) to CNCB's
- Fixed cachemgrShutdown() not being used
- Change some sizes to 'size_t'
- Change some offsets to 'off_t'
- Need to unlock static icons
- Move unbuffered logs flag to Config
- Too much time debugging keep-alive problems with Netscape Navigator-2.x