refresh.cc question

From: Doug Dixon <doug.dixon@dont-contact.us>
Date: Thu, 20 Apr 2006 18:27:49 +1200

Hi all

Bit of a (deepish) code question here...

In the refreshCheck function in refresh.cc (squid3 head revision):

         if (!request->flags.nocache_hack) {
             (void) 0;
         } else if (R->flags.ignore_reload) {
             /* The clients no-cache header is ignored */
             debug(22, 3) ("refreshCheck: MAYBE: ignore-reload\n");
         } else if (R->flags.reload_into_ims ||
Config.onoff.reload_into_ims) {
             /* The clients no-cache header is changed into a IMS
query */
             debug(22, 3) ("refreshCheck: YES: reload-into-ims\n");
             return STALE_RELOAD_INTO_IMS;
         } else {
             /* The clients no-cache header is not overridden on this
request */
             debug(22, 3) ("refreshCheck: YES: client reload\n");
             request->flags.nocache = 1;
             return STALE_FORCED_RELOAD;
         }

I've dug in the code and interpreted the if statement as follows: If
there are no occurrences of reload-into-ims or ignore-reload in any
refresh_patterns, and reload_into_ims is off, then flags.nocache_hack
will be false.

But doesn't this code mean that if I've got a reload-into-ims or
ignore-reload in at least one of my refresh_patterns, but the request
currently being analysed by this method does NOT have either of these
flags, (i.e. skips the first two else statements) that it will always
be force-reloaded?

If so, is this intentional?
And why does the final comment imply a 'no-cache' header was present
in the request? I can't see why that's true

Thanks for any help
Doug
Received on Thu Apr 20 2006 - 02:09:04 MDT

This archive was generated by hypermail pre-2.1.9 : Mon May 01 2006 - 12:00:03 MDT