On 22/09/2008, at 11:26 PM, Amos Jeffries wrote:

Benno Rice wrote:
Address comments from Alex and Amos.
 - Add some comments describing various function purposes.
- Remove some debugging debugs that had crept in.
- Use debugs() in preference to debug()().
- Adjust some debug levels.

Getting close.

<snip>
=== modified file 'src/enums.h'
--- src/enums.h 2008-07-11 20:43:43 +0000
+++ src/enums.h 2008-09-01 05:27:59 +0000
@@ -545,4 +545,15 @@
    DISABLE_PMTU_TRANSPARENT
};
+#if USE_HTCP
+/*
+ * This should be in htcp.h but because neighborsHtcpClear is defined in
+ * protos.h it has to be here.
+ */

So why is neighborsHtcpClear outside htcp.h then?


Because it's not a piece of HTCP functionality. It lives in neighbors.cc with the rest of the general peer-related code. The equivalent ICP functions live there too, IIRC. Do you think it should move? It should probably be renamed if so.

[snip]

+/*
+ * Do the first pass of handling an HTCP message. This used to be two + * separate functions, htcpHandle and htcpHandleData. They were merged to + * allow for forwarding HTCP packets easily to other peers if desired.
+ *
+ * This function now works out what type of message we have received and then + * hands it off to other functions to break apart message-specific data.
+ */
+static void
+htcpHandle(char *buf, int sz, IPAddress &from)

Um, sorry for not picking this up earlier. With that documentation, I think the function should probably be called htcpHandleMsg or similar to describe what its handling.
(ie, FTP use HandleControlReply)

I just kept the original name of the function. I'll change it as you describe however.

{
+    htcpHeader htcpHdr;
    htcpDataHeader hdr;
-
-    if ((size_t)sz < sizeof(htcpDataHeader))
+    char *hbuf;
+    int hsz;
+    assert (sz >= 0);
+
+    if ((size_t)sz < sizeof(htcpHeader))
+    {
+ debugs(31, 1, "htcpHandle: msg size less than htcpHeader size");
+        return;
+    }
+
+    htcpHexdump("htcpHandle", buf, sz);
+    xmemcpy(&htcpHdr, buf, sizeof(htcpHeader));
+    htcpHdr.length = ntohs(htcpHdr.length);
+
+    if (htcpHdr.minor == 0)
+        old_squid_format = 1;
+    else
+        old_squid_format = 0;
+
+ debugs(31, 3, "htcpHandle: htcpHdr.length = " << htcpHdr.length);
+    debugs(31, 3, "htcpHandle: htcpHdr.major = " << htcpHdr.major);
+    debugs(31, 3, "htcpHandle: htcpHdr.minor = " << htcpHdr.minor);
+
+    if (sz != htcpHdr.length)
+    {
+ debugs(31, 1, "htcpHandle: sz/" << sz << " != htcpHdr.length/" <<
+               htcpHdr.length << " from " << from );

Level 1 is admin visible.
What does it mean about their Squid's operation that its this important? what can they do to fix it?


[snip]

All of these were here previously in exactly this form. I did not add any of them. I can change them all but if you examine the diff you'll see that any I appear to have added (such as this one) are actually due to the code rearrangement.

New merge will be posted shortly.

--
Benno Rice
[EMAIL PROTECTED]



Reply via email to