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
wessels [Fri, 20 Jun 1997 06:00:10 +0000 (06:00 +0000)]
- memCopy needs to return a signed value to report errors, so we need
to have 'ssize_t'
- Fixed FTP end-of-transfer confusion
- Rearranged assertions in icpSendMoreData to account for STORE_ABORT
wessels [Wed, 18 Jun 1997 22:15:53 +0000 (22:15 +0000)]
Put storeDeleteBehind() call before storeCopy callback. Apparently
invoking the callback may release the StoreEntry, so either we need
to lock it or do the delete behind first.
wessels [Wed, 18 Jun 1997 09:06:22 +0000 (09:06 +0000)]
remove assertion from store rebuild code. A swap log entry might be
"newer" if we're in a slow rebuild. In that case the swap log entry
should be ignored, assuming the existing entry was added during the
rebuild.
wessels [Wed, 18 Jun 1997 06:19:50 +0000 (06:19 +0000)]
Junk the 'callback_meta' idea
Now use a hash table of callback datas. A callback pointer is added when
the data is created, then callback functions lock and unlock it while
waiting for the operation to complete.