scheduleWrite(requestBuf);
}
-void ICAPModXact::handleCommWrote(size_t)
+void ICAPModXact::handleCommWrote(size_t sz)
{
+ debugs(93, 5, HERE << "Wrote " << sz << " bytes");
+
if (state.writing == State::writingHeaders)
handleCommWroteHeaders();
else
Must(state.writing == State::writingHeaders);
if (virginBody.expected()) {
+ debugs(98, 5, HERE);
state.writing = preview.enabled() ?
State::writingPreview : State::writingPrime;
virginWriteClaim.protectAll();
writeMore();
} else {
+ debugs(98, 5, HERE);
stopWriting();
}
}
const size_t size = body->contentSize();
writeSomeBody("prime virgin body", size);
- if (state.doneReceiving)
+ if (state.doneReceiving) {
+ debugs(98, 5, HERE << "state.doneReceiving is set");
stopWriting();
+ }
}
void ICAPModXact::writeSomeBody(const char *label, size_t size)
Must(virginConsumed <= offset && offset <= end);
if (const size_t size = offset - virginConsumed) {
- debugs(93, 8, "ICAPModXact consumes " << size << " out of " << have <<
+ debugs(93, 8, HERE << "consuming " << size << " out of " << have <<
" virgin body bytes");
buf.consume(size);
virginConsumed += size;
if (state.writing == State::writingDone)
return;
- debugs(93, 7, "ICAPModXact will no longer write " << status());
+ debugs(93, 7, HERE << "will no longer write " << status());
state.writing = State::writingDone;
{
Must(state.parsingHeaders());
- if (state.parsing == State::psIcapHeader)
+ if (state.parsing == State::psIcapHeader) {
+ debugs(93, 5, HERE << "parse ICAP headers");
parseIcapHead();
+ }
- if (state.parsing == State::psHttpHeader)
+ if (state.parsing == State::psHttpHeader) {
+ debugs(93, 5, HERE << "parse HTTP headers");
parseHttpHead();
+ }
if (state.parsingHeaders()) { // need more data
Must(mayReadMore());
Must(parsed || !error); // success or need more data
if (!parsed) { // need more data
- debugs(93, 5, HERE << "parse failed, need more data");
+ debugs(93, 5, HERE << "parse failed, need more data, return false");
head->reset();
return false;
}
+ debugs(93, 5, HERE << "parse success, consume " << head->hdr_sz << " bytes, return true");
readBuf.consume(head->hdr_sz);
return true;
}
// internal cleanup
void ICAPModXact::doStop()
{
+ debugs(98, 5, HERE << "doStop() called");
ICAPXaction::doStop();
stopWriting();