]> git.ipfire.org Git - thirdparty/squid.git/commit - src/http.cc
Author: Christos Tsantilas <chtsanti@users.sourceforge.net>
authorrousskov <>
Tue, 24 Jul 2007 01:58:46 +0000 (01:58 +0000)
committerrousskov <>
Tue, 24 Jul 2007 01:58:46 +0000 (01:58 +0000)
commitba82c45284a83a78c0b236378a53779dc9480e39
tree49ecbbc2b172357d27ad8e1477566554bc78ec98
parent4052f4bd343ab851d241bfa744c8138434067c21
Author: Christos Tsantilas <chtsanti@users.sourceforge.net>
Bug #1971 fix, part 2, take B, v4: Polish HttpStateData::readReply() layout
to weed out bugs.

Moved processReplyHeader post-processing from readReply into newly added
continueAfterParsingHeader() method. Either deleted unreachable code in
readReply or re-arranged it to become reachable in continueAfterParsingHeader.

Start ICAP ACL checks only after the response header has been successfully
processed. The old code would start ICAP ACL checks for transactions that
would be aborted immediately after the check is scheduled.

Set eof when we read zero bytes. Doing so as a stand-alone step and referring
to 'eof' member from there on makes readReply code a little more clear.

Set reply member when HTTP header parser fails in processReplyHeader() so that
the caller has more information about the parsing error.

persistentConnStatus() now returns COMPLETE_NONPERSISTENT_MSG if we reach eof.
The old code would just call serverComplete() in readReply() instead, making
it a yet another special case there.

We are not done with ICAP if an ICAP ACL check is pending. This change
affects FTP as well and allows us to process more errors with ICAP.

Commented that persistentConnStatus() may be called for ICAP-adapted responses
that do not have a notion of a persistent connection. Why does this work?

These changes were inspired by Christos Tsantilas comments and patches but
the new bugs are mine.
src/Server.cc
src/http.cc
src/http.h