/*
- * $Id: http.cc,v 1.453 2005/08/19 16:49:26 wessels Exp $
+ * $Id: http.cc,v 1.454 2005/08/19 17:03:28 wessels Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
{
int bin;
int clen;
- do_next_read = 0;
+ flags.do_next_read = 0;
assert(buf == readBuf);
if (len == 0) {
/* Continue to read... */
/* Timeout NOT increased. This whitespace was from previous reply */
- do_next_read = 1;
+ flags.do_next_read = 1;
maybeReadData();
return;
}
fd, xstrerror());
if (ignoreErrno(errno)) {
- do_next_read = 1;
+ flags.do_next_read = 1;
} else if (entry->isEmpty()) {
ErrorState *err;
err = errorCon(ERR_READ_ERROR, HTTP_BAD_GATEWAY);
err->request = requestLink((HttpRequest *) request);
err->xerrno = errno;
fwdFail(fwd, err);
- do_next_read = 0;
+ flags.do_next_read = 0;
comm_close(fd);
} else {
- do_next_read = 0;
+ flags.do_next_read = 0;
comm_close(fd);
}
} else if (flag == COMM_OK && len == 0 && entry->isEmpty()) {
err->request = requestLink((HttpRequest *) request);
fwdFail(fwd, err);
eof = 1;
- do_next_read = 0;
+ flags.do_next_read = 0;
comm_close(fd);
} else if (flag == COMM_OK && len == 0) {
/* Connection closed; retrieval done. */
err = errorCon(ERR_INVALID_RESP, HTTP_BAD_GATEWAY);
err->request = requestLink((HttpRequest *) request);
fwdFail(fwd, err);
- do_next_read = 0;
+ flags.do_next_read = 0;
} else {
if (entry->mem_obj->getReply()->sline.status == HTTP_HEADER_TOO_LARGE) {
ErrorState *err;
fwdComplete(fwd);
}
- do_next_read = 0;
+ flags.do_next_read = 0;
comm_close(fd);
}
} else {
HttpStateData::processReplyData(const char *buf, size_t len)
{
if (!flags.headers_parsed) {
- do_next_read = 1;
+ flags.do_next_read = 1;
maybeReadData();
return;
}
commSetTimeout(fd, Config.Timeout.read, NULL, NULL);
}
- do_next_read = 1;
+ flags.do_next_read = 1;
break;
case COMPLETE_PERSISTENT_MSG:
/* yes we have to clear all these! */
commSetTimeout(fd, -1, NULL, NULL);
- do_next_read = 0;
+ flags.do_next_read = 0;
comm_remove_close_handler(fd, httpStateFree, this);
fwdUnregister(fd, fwd);
void
HttpStateData::maybeReadData()
{
- if (do_next_read) {
- do_next_read = 0;
+ if (flags.do_next_read) {
+ flags.do_next_read = 0;
entry->delayAwareRead(fd, buf, SQUID_TCP_SO_RCVBUF, httpReadReply, this);
}
}