Re: pipeline replies ..

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Sun, 11 Aug 2002 04:50:26 +0200

On Friday 09 August 2002 10.22, Adrian Chadd wrote:
> + store_client *tsc = http->sc;
> +

Not used in the code below...

> debug(33, 3) ("clientKeepaliveNextRequest: FD %d\n",
> conn->fd); conn->defer.until = 0; /* Kick it to read a new
> request */ httpRequestFree(http);
> @@ -1734,13 +1736,24 @@
> if (0 == storeClientCopyPending(http->sc, entry, http)) {
> if (EBIT_TEST(entry->flags, ENTRY_ABORTED))
> debug(33, 0) ("clientKeepaliveNextRequest:
> ENTRY_ABORTED\n"); - http->reqofs = 0;
> - storeClientCopy(http->sc, entry,
> - http->out.offset,
> - HTTP_REQBUF_SZ,
> - http->reqbuf,
> - clientSendMoreData,
> - http);
> + /* If we have any data in our reqbuf, use it */
> + if (http->reqsize > 0) {
> + /* XXX is this even valid? passing reqbuf in for
> itself..? (adrian) */ + clientSendMoreData(http,
> http->reqbuf, http->reqsize); + } else {

Looks fine until we get around to fix buffer management proper. Why
didn't I think of this when looking at this the first time??? When
looking at this problem I thought there needed to be yet another
buffer..

Ah.. I was confused on the variable "http"... the buffer is belonging
to the request, not the client connection. Have been bitten by this
variable name several times always thinking it is a "http"
connection, not a individual request/response message..

Regards
Henrik
Received on Sat Aug 10 2002 - 20:50:31 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:16:03 MST