default_ttl applied even when Expires exist

Poul-Henning Kamp phk at
Mon Apr 21 07:33:09 CEST 2008

In message <8240BA9F-EAC7-4A9B-8128-265ABAD83B89 at>, Ricardo N
ewbery writes:

>> I see in rfc2616.c that this behavior is intentional.  Varnish  
>> apparently assumes a "clockless" origin server if the Expires date  
>> is not in the future and then applies the default ttl.

>Regarding this behavior.  I would like to suggest to the Varnish  
>developers that this logic seems faulty.  I guess it's reasonable to  
>assume a bad backend clock if the Date header looks off... but the  
>Expires header?

That particular piece of code is taken pretty directly from RFC2616
with addition of the default_ttl assumption.

I'm not at all adverse to changing this code, provided we can agree
what the correct heuristics should be.

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the varnish-misc mailing list