r1955 - trunk/varnish-cache/bin/varnishd

cecilihf at projects.linpro.no cecilihf at projects.linpro.no
Tue Sep 18 13:40:44 CEST 2007


Author: cecilihf
Date: 2007-09-18 13:40:44 +0200 (Tue, 18 Sep 2007)
New Revision: 1955

Modified:
   trunk/varnish-cache/bin/varnishd/cache_response.c
Log:
Fixes #157. Always replace Date with current time on varnish server.


Modified: trunk/varnish-cache/bin/varnishd/cache_response.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_response.c	2007-09-12 16:24:09 UTC (rev 1954)
+++ trunk/varnish-cache/bin/varnishd/cache_response.c	2007-09-18 11:40:44 UTC (rev 1955)
@@ -29,6 +29,8 @@
  * $Id$
  */
 
+#include <stdio.h>
+#include <stdlib.h>
 #include <sys/types.h>
 #include <sys/time.h>
 
@@ -109,6 +111,8 @@
 void
 RES_BuildHttp(struct sess *sp)
 {
+	char *time_str;
+
 	CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
 
 	if (sp->obj->response == 200 && sp->http->conds && res_do_conds(sp))
@@ -121,6 +125,17 @@
 	http_CopyResp(sp->http, &sp->obj->http);
 	http_FilterFields(sp->wrk, sp->fd, sp->http, &sp->obj->http,
 	    HTTPH_A_DELIVER);
+	
+	/* Replace Date header with current date instead of keeping the date
+	 * originally given by the backend when the object was fetched (which
+	 * could be a long time ago).
+	 */
+	http_Unset(sp->http, H_Date);
+	time_str = malloc(50);
+	sprintf(time_str, "Date: ");
+	TIM_format(TIM_real(), &(time_str[6]));
+	http_SetHeader(sp->wrk, sp->fd, sp->http, time_str);
+	
 	if (sp->xid != sp->obj->xid)
 		http_PrintfHeader(sp->wrk, sp->fd, sp->http,
 		    "X-Varnish: %u %u", sp->xid, sp->obj->xid);




More information about the varnish-commit mailing list