-const char jcc_rcs[] = "$Id: jcc.c,v 1.225 2009/02/19 18:09:32 fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.229 2009/03/07 11:17:01 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
*
* Revisions :
* $Log: jcc.c,v $
+ * Revision 1.229 2009/03/07 11:17:01 fabiankeil
+ * Fix compiler warning.
+ *
+ * Revision 1.228 2009/03/06 20:30:13 fabiankeil
+ * Log unsigned values as such.
+ *
+ * Revision 1.227 2009/03/02 19:18:11 fabiankeil
+ * Streamline parse_http_request()'s prototype. As
+ * cparser pointed out it doesn't actually use csp.
+ *
+ * Revision 1.226 2009/03/01 18:28:24 fabiankeil
+ * Help clang understand that we aren't dereferencing
+ * NULL pointers here.
+ *
* Revision 1.225 2009/02/19 18:09:32 fabiankeil
* Unbreak build without FEATURE_CONNECTION_KEEP_ALIVE.
* Noticed by David.
/* Log that the request was crunched and why. */
log_error(LOG_LEVEL_CRUNCH, "%s: %s", crunch_reason(rsp), http->url);
- log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" %s %d",
+ log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" %s %u",
csp->ip_addr_str, http->ocmd, status_code, rsp->content_length);
/* Clean up and return */
} while (tmp_len < len);
log_error(LOG_LEVEL_ERROR, "%s\'s request contains at least one NULL byte "
- "(length=%d, strlen=%d).", csp->ip_addr_str, len, c_len);
+ "(length=%d, strlen=%u).", csp->ip_addr_str, len, c_len);
log_error(LOG_LEVEL_HEADER,
"Offending request data with NULL bytes turned into \'°\' characters: %s", buf);
log_error(LOG_LEVEL_INFO, "Rewrite detected: %s", csp->headers->first->str);
free_http_request(http);
- err = parse_http_request(csp->headers->first->str, http, csp);
+ err = parse_http_request(csp->headers->first->str, http);
if (JB_ERR_OK != err)
{
log_error(LOG_LEVEL_ERROR, "Couldn't parse rewritten request: %s.",
* FALSE otherwise.
*
*********************************************************************/
-static int server_response_is_complete(struct client_state *csp, size_t content_length)
+static int server_response_is_complete(struct client_state *csp,
+ unsigned long long content_length)
{
- int content_length_known = (csp->flags & CSP_FLAG_CONTENT_LENGTH_SET);
+ int content_length_known = !!(csp->flags & CSP_FLAG_CONTENT_LENGTH_SET);
if (!strcmpic(csp->http->gpc, "HEAD"))
{
}
#endif /* def FEATURE_FORCE_LOAD */
- err = parse_http_request(req, http, csp);
+ err = parse_http_request(req, http);
freez(req);
if (JB_ERR_OK != err)
{
jb_socket maxfd;
int server_body;
int ms_iis5_hack = 0;
- size_t byte_count = 0;
+ unsigned long long byte_count = 0;
int forwarded_connect_retries = 0;
int max_forwarded_connect_retries = csp->config->forwarded_connect_retries;
const struct forward_spec *fwd;
log_error(LOG_LEVEL_CONNECT,
"Looks like we read the last chunk together with "
"the server headers. We better stop reading.");
- byte_count = (size_t)(csp->iob->eod - csp->iob->cur);
+ byte_count = (unsigned long long)(csp->iob->eod - csp->iob->cur);
csp->expected_content_length = byte_count;
csp->flags |= CSP_FLAG_CONTENT_LENGTH_SET;
}
if (server_body && server_response_is_complete(csp, byte_count))
{
log_error(LOG_LEVEL_CONNECT,
- "Done reading from server. Expected content length: %d. "
- "Actual content length: %d. Most recently received: %d.",
+ "Done reading from server. Expected content length: %llu. "
+ "Actual content length: %llu. Most recently received: %d.",
csp->expected_content_length, byte_count, len);
len = 0;
/*
log_error(LOG_LEVEL_CONNECT,
"Looks like we reached the end of the last chunk. "
"We better stop reading.");
- csp->expected_content_length = byte_count + (size_t)len;
+ csp->expected_content_length = byte_count + (unsigned long long)len;
csp->flags |= CSP_FLAG_CONTENT_LENGTH_SET;
}
}
}
if (write_socket(csp->cfd, hdr, strlen(hdr))
- || write_socket(csp->cfd, p != NULL ? p : csp->iob->cur, csp->content_length))
+ || write_socket(csp->cfd,
+ ((p != NULL) ? p : csp->iob->cur), (size_t)csp->content_length))
{
log_error(LOG_LEVEL_ERROR, "write modified content to client failed: %E");
freez(hdr);
* we just flushed. len will be added a few lines below,
* hdrlen doesn't matter for LOG_LEVEL_CLF.
*/
- byte_count = (size_t)flushed;
+ byte_count = (unsigned long long)flushed;
freez(hdr);
content_filter = NULL;
server_body = 1;
return;
}
}
- byte_count += (size_t)len;
+ byte_count += (unsigned long long)len;
continue;
}
else
*/
int header_offset = csp->iob->cur - header_start;
assert(csp->iob->cur >= header_start);
- byte_count += (size_t)(len - header_offset);
+ byte_count += (unsigned long long)(len - header_offset);
log_error(LOG_LEVEL_CONNECT, "Continuing buffering headers. "
- "byte_count: %d. header_offset: %d. len: %d.",
+ "byte_count: %llu. header_offset: %d. len: %d.",
byte_count, header_offset, len);
continue;
}
return;
}
- byte_count += (size_t)len;
+ byte_count += (unsigned long long)len;
}
else
{
*/
int header_length = csp->iob->cur - header_start;
assert(csp->iob->cur > header_start);
- byte_count += (size_t)(len - header_length);
+ byte_count += (unsigned long long)(len - header_length);
}
/* we're finished with the server's header */
&& (csp->expected_content_length != byte_count))
{
log_error(LOG_LEVEL_CONNECT,
- "Received %d bytes while expecting %d.",
+ "Received %llu bytes while expecting %llu.",
byte_count, csp->expected_content_length);
mark_server_socket_tainted(csp);
}
#endif
- log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" 200 %d",
+ log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" 200 %llu",
csp->ip_addr_str, http->ocmd, csp->content_length);
}