I've updated to 0.9.1.1 and it seems to me that the header is being calculated incorrectly for media files.
on http://words.mikefinley.co.uk I have the media expires header lifetime set to 432000 seconds (4 days), and expect this to mean that it will expire four days from now, however when I test with webpagetest.org it reports this for the image I was checking with:
GET /wp-content/gallery/cache/11__250x_blea_tarn-2780.jpg HTTP/1.1
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; PTST 2.222)
HTTP/1.1 200 OK
Date: Tue, 03 Aug 2010 08:28:38 GMT
Last-Modified: Thu, 29 Jul 2010 16:36:50 GMT
Cache-Control: public, must-revalidate, proxy-revalidate
Expires: Tue, 03 Aug 2010 16:36:50 GMT
Keep-Alive: timeout=5, max=99
As you can see, expiry is set four days after the creation date of the image file, not four days after the request, meaning that really old data won't be cached unless very long expiry dates are set. (I had originally set the expiry time at one day, and was puzzled why nothing was being cached by the browser.)
Am I wrong in my understanding of how this should work, or is this an error in W3TC?