Martin.Pichlmaier@xxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:
Hello all,
I just compiled squid-3.0.STABLE17 and it compiled fine.
Unfortunately I now get many warning messages in cache.log (still testing,
not yet in productive environment):
2009/07/27 15:11:26| HttpMsg.cc(157) first line of HTTP message is invalid
2009/07/27 15:11:28| HttpMsg.cc(157) first line of HTTP message is invalid
2009/07/27 15:11:37| HttpMsg.cc(157) first line of HTTP message is invalid
2009/07/27 15:11:40| HttpMsg.cc(157) first line of HTTP message is invalid
2009/07/27 15:11:41| HttpMsg.cc(157) first line of HTTP message is invalid
It seems that nearly every URL I try to access gives that warning message,
for example www.arin.net, www.ripe.net, www.hp.com,
www.arin.net, even www.squid-cache.org and so on.
Are nearly all pages in the internet invalid or is the if-query or rather
the function incorrect?
The lines that produce the above warning are new in STABLE17...
HttpMsg.cc -- lines 156 to 160:
if (!sanityCheckStartLine(buf, hdr_len, error)) {
debugs(58,1, HERE << "first line of HTTP message is invalid");
// NP: sanityCheck sets *error
return false;
}
Oh dear. I missed a bit in the upgrade. Thanks.
This attached patch should quieten it down to only the real errors.
Amos
--
Please be using
Current Stable Squid 2.7.STABLE6 or 3.0.STABLE16
Current Beta Squid 3.1.0.10 or 3.1.0.11
=== modified file 'src/HttpMsg.cc'
--- src/HttpMsg.cc 2009-07-26 11:33:16 +0000
+++ src/HttpMsg.cc 2009-07-27 13:55:53 +0000
@@ -154,8 +154,7 @@
// sanity check the start line to see if this is in fact an HTTP message
if (!sanityCheckStartLine(buf, hdr_len, error)) {
- debugs(58,1, HERE << "first line of HTTP message is invalid");
- // NP: sanityCheck sets *error
+ // NP: sanityCheck sets *error and sends debug warnings.
return false;
}
=== modified file 'src/HttpReply.cc'
--- src/HttpReply.cc 2009-07-26 12:04:45 +0000
+++ src/HttpReply.cc 2009-07-27 14:01:49 +0000
@@ -446,8 +446,10 @@
// content is long enough to possibly hold a reply
// 4 being magic size of a 3-digit number plus space delimiter
if ( buf->contentSize() < (protoPrefix.size() + 4) ) {
- if (hdr_len > 0)
+ if (hdr_len > 0) {
+ debugs(58, 3, "HttpReply::sanityCheckStartLine: Too large reply header (" << hdr_len << " > " << Config.maxReplyHeaderSize <<")");
*error = HTTP_INVALID_HEADER;
+ }
return false;
}
=== modified file 'src/HttpRequest.cc'
--- src/HttpRequest.cc 2009-07-26 11:33:16 +0000
+++ src/HttpRequest.cc 2009-07-27 14:02:36 +0000
@@ -156,6 +156,7 @@
if ( buf->contentSize() < 2 ) {
// this is ony a real error if the headers apparently complete.
if (hdr_len > 0) {
+ debugs(58, 3, "HttpRequest::sanityCheckStartLine: debugs(58, 1, "HttpMsg::parse: Too large reply header (" << hdr_len << " > " << Config.maxReplyHeaderSize <<")");
*error = HTTP_INVALID_HEADER;
}
return false;
=== modified file 'src/pconn.cc'
--- src/pconn.cc 2009-02-19 02:17:28 +0000
+++ src/pconn.cc 2009-07-27 08:04:11 +0000
@@ -188,7 +188,7 @@
else
snprintf(buf, SQUIDHOSTNAMELEN * 3 + 10, "%s:%d", host, (int) port);
- debugs(48,6,"PconnPool::key(" << host << "," << port << "," << domain << "," << inet_ntoa(*client_address) << "is {" << buf << "}" );
+ debugs(48,6,"PconnPool::key(" << (host?host:"") << "," << port << "," << (domain?domain:"") << "," << (client_address?inet_ntoa(*client_address):"") << "is {" << buf << "}" );
return buf;
}