--------------------- PatchSet 5041 Date: 2002/09/19 04:05:11 Author: rbcollins Branch: fixrange Tag: (none) Log: bugfix: get correct node for errors Members: src/client_side.c:1.72.2.33->1.72.2.34 Index: squid/src/client_side.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/client_side.c,v retrieving revision 1.72.2.33 retrieving revision 1.72.2.34 diff -u -r1.72.2.33 -r1.72.2.34 --- squid/src/client_side.c 19 Sep 2002 03:44:52 -0000 1.72.2.33 +++ squid/src/client_side.c 19 Sep 2002 04:05:11 -0000 1.72.2.34 @@ -1,6 +1,6 @@ /* - * $Id: client_side.c,v 1.72.2.33 2002/09/19 03:44:52 rbcollins Exp $ + * $Id: client_side.c,v 1.72.2.34 2002/09/19 04:05:11 rbcollins Exp $ * * DEBUG: section 33 Client-side Routines * AUTHOR: Duane Wessels @@ -170,6 +170,12 @@ return context->http->client_stream.tail->data; } +clientStreamNode * +getClientReplyContext (clientSocketContext *context) +{ + return context->http->client_stream.tail->prev->data; +} + void clientSocketRemoveThisFromConnectionList(clientSocketContext *context, ConnStateData *conn) @@ -1286,7 +1292,7 @@ commSetTimeout(fd, Config.Timeout.lifetime, clientLifetimeTimeout, http); if (parser_return_code < 0) { - clientStreamNode *node = getTail (context); + clientStreamNode *node = getClientReplyContext (context); debug(33, 1) ("clientReadRequest: FD %d Invalid Request\n", fd); clientSetReplyToError(node->data, ERR_INVALID_REQ, HTTP_BAD_REQUEST, method, NULL, @@ -1297,7 +1303,7 @@ break; } if ((request = urlParse(method, http->uri)) == NULL) { - clientStreamNode *node = getTail (context); + clientStreamNode *node = getClientReplyContext (context); debug(33, 5) ("Invalid URL: %s\n", http->uri); clientSetReplyToError(node->data, ERR_INVALID_URL, HTTP_BAD_REQUEST, method, http->uri, @@ -1343,7 +1349,7 @@ request->http_ver = http->http_ver; if (!urlCheckRequest(request) || httpHeaderHas(&request->header, HDR_TRANSFER_ENCODING)) { - clientStreamNode *node = getTail (context); + clientStreamNode *node = getClientReplyContext (context); clientSetReplyToError(node->data, ERR_UNSUP_REQ, HTTP_NOT_IMPLEMENTED, request->method, NULL, &conn->peer.sin_addr, request, NULL, NULL); @@ -1352,7 +1358,7 @@ break; } if (!clientIsContentLengthValid(request)) { - clientStreamNode *node = http->client_stream.tail->prev->data; + clientStreamNode *node = getClientReplyContext (context); clientSetReplyToError(node->data, ERR_INVALID_REQ, HTTP_LENGTH_REQUIRED, request->method, NULL, &conn->peer.sin_addr, request, NULL, NULL); @@ -1369,7 +1375,7 @@ /* Is it too large? */ if (!clientIsRequestBodyValid(request->content_length) || clientIsRequestBodyTooLargeForPolicy(request->content_length)) { - clientStreamNode *node = getTail (context); + clientStreamNode *node = getClientReplyContext (context); clientSetReplyToError(node->data, ERR_TOO_BIG, HTTP_REQUEST_ENTITY_TOO_LARGE, METHOD_NONE, NULL, &conn->peer.sin_addr, http->request, NULL, NULL); @@ -1390,7 +1396,7 @@ clientStreamNode *node; context = parseHttpRequestAbort(conn, "error:request-too-large"); - node = getTail (context); + node = getClientReplyContext (context); debug(33, 1) ("Request header is too large (%d bytes)\n", (int) conn->in.offset); debug(33, 1) ("Config 'request_header_max_size'= %ld bytes.\n",