From: wessels <> Date: Mon, 1 Dec 1997 11:46:50 +0000 (+0000) Subject: Oof, icpCheckTransferDone() fix. We were ending the transfer after X-Git-Tag: SQUID_3_0_PRE1~4442 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7435d12532e5fb24a39624366eab5b81b4c606b0;p=thirdparty%2Fsquid.git Oof, icpCheckTransferDone() fix. We were ending the transfer after the reply headers for ALL replies, not just non-200 replies. --- diff --git a/src/client_side.cc b/src/client_side.cc index bdb65f1151..fa2a448a88 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -1,6 +1,6 @@ /* - * $Id: client_side.cc,v 1.162 1997/12/01 02:19:19 wessels Exp $ + * $Id: client_side.cc,v 1.163 1997/12/01 04:46:50 wessels Exp $ * * DEBUG: section 33 Client-side Routines * AUTHOR: Duane Wessels @@ -1776,12 +1776,20 @@ icpCheckTransferDone(clientHttpRequest * http) if ((mem = entry->mem_obj) == NULL) return 0; if (mem->reply->content_length < 0) { + /* + * for 200 replies, we MUST have a content length, + * or wait for EOF on the socket. + */ + if (mem->reply->code == 200) + return 0; /* * reply->hdr_sz will be set by httpParseReplyHeaders() * if we find the end of the headers. If we find the end, * and there is no content length, stick a fork in us. */ - if (mem->reply->hdr_sz > 0) + else if (mem->reply->hdr_sz == 0) + return 0; + else if (http->out.offset >= mem->reply->hdr_sz) return 1; else return 0;