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
Fixes related to proxying passthrough requests. peer_select.c had a few debug
statements with entry->url, but entry == NULL for passthrough. pass.c
needed to access passState->request (the original request) instead of
'request' when proxying.
Seems that some KEY_PRIVATE entries were being swapped out. This
caused problems during reload because we now also reload the flags.
An entry would be loaded with e->key == e->url, but KEY_PRIVATE set.
Now we clear KEY_PRIVATE in storeAddDiskRestore(), ignore entries
with KEY_PRIVATE in storeDoRebuildFromDisk(), and don't swap out
KEY_PRIVATE entries from storeCheckSwapable().
- cf.data.pre had disabled all cachemgr passwords
- nuke ENTRY_HTML flag
- set defaults for more things in globals.h
- Added storeComplete() call for bad cachemgr passwords.
- icpProcessMISS needed to have protoDispatch() AFTER storeClientCopy()
because if cachemgr passwd was incorrect, storeComplete() would
get called before storeClientCopy().
- in storeCreateEntry(), set the key before other stuff, notably
call storeReleaseRequest().
- Little more debugging to store.c
- warning if no units present for times or byte sizes
- added defaults to all time_t's in cf.data.pre
- Fixed up connect callbacks to recognize COMM_DNS_ERR and !COMM_OK
- Set FTP_HTTP_HEADER_SENT for ftp
- Initialize neighbors_do_private_keys in globals.c
- Remove opt_no_ipcache
- removed redundant externs from squid.h
- changed more debug_trap's to assert's
- changed over-high-water-mark warning to only report once at
each threshold