NOVM ipcGetHeadersForIMS confusion???

From: Bryan Mawhinney <>
Date: Tue, 15 Jul 1997 17:51:43 +0200

I'm currently running NOVM-1.1.11

Looking through my log files recently I saw lots of TCP_IMS_MISSes for
data I knew to be in the cache and fresh.

From a debug log I determined that refreshCheck returns no. Looking
through ipc.c, I think icpProcessRequest is falling through to the lines
which read:

    } else if (BIT_TEST(request->flags, REQ_IMS)) {
        /* User-initiated IMS request for something we think is valid */
        icpState->log_type = LOG_TCP_IMS_MISS;

and a little later, it calls ipcGetHeadersForIMS

In ipcGetHeadersForIMS:

    if (mem->reply->code == 0) {
        /* All headers are not yet available, wait for more data */
        storeRegister(entry, fd, icpSendMoreData, (void *) icpState,
        return COMM_OK;

But this MemObject has just been created, the headers haven't been
parsed yet, and mem->reply->code is always going to be 0, isn't it?

Shouldn't we be ignoring the value of mem->reply-code (we know the data
is the cache), and just checking the modified date?

(I have a sneaky suspicion that Squid may be waiting for a response from
an IMS GET sent up the hierarchy, but that only seems to happen in the

I haven't yet come to grips with the workings of Squid, so any advice or
clarifications would be welcome.


Bryan Mawhinney
Telkom National Customer Service Assurance Center
(011) 836 3136
082 453 9170
Received on Tue Jul 15 1997 - 08:54:57 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:35:46 MST