Everything you say is right, as usual.

> * The HTTP parser sets cache_control.flags |= CACHE_VARY when the
>   response contains a Vary header (http_parse.c:1206). I couldn't see
>   polipo checking the _value_ of the Vary header anywhere, so it clearly
>   doesn't cache different variation of the response to fulfil subsequent
>   requests based on the new request's Accept-* headers.

That's right.  It will revalidate every instance with Vary.  (This
triggers a bug in Apache's mod_gzip, which we work around by checking
the size and MIME type in addition to ETag and Last-Modified during
revalidation.)

> * There are additional CACHE_VARY checks in validateEntry (diskcache.c)

That one's easy -- ignore on-disk data that has Vary but no ETag.  If
you don't, you could be merging data from different instances (the one
in memory and the one on disk).

>   and httpTweakCacheability (http.c) that I haven't read through.

That one's probably redundant, but it cannot harm.

-- Juliusz

------------------------------------------------------------------------------
LogMeIn Central: Instant, anywhere, Remote PC access and management.
Stay in control, update software, and manage PCs from one command center
Diagnose problems and improve visibility into emerging IT issues
Automate, monitor and manage. Do more in less time with Central
http://p.sf.net/sfu/logmein12331_d2d
_______________________________________________
Polipo-users mailing list
Polipo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/polipo-users

Reply via email to