Commit 690a346c authored by Cecilie Fritzvold's avatar Cecilie Fritzvold

Fixes #157. Always replace Date with current time on varnish server.


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1955 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 010c250e
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
* $Id$ * $Id$
*/ */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/time.h> #include <sys/time.h>
...@@ -109,6 +111,8 @@ res_do_conds(struct sess *sp) ...@@ -109,6 +111,8 @@ res_do_conds(struct sess *sp)
void void
RES_BuildHttp(struct sess *sp) RES_BuildHttp(struct sess *sp)
{ {
char *time_str;
CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
if (sp->obj->response == 200 && sp->http->conds && res_do_conds(sp)) if (sp->obj->response == 200 && sp->http->conds && res_do_conds(sp))
...@@ -121,6 +125,17 @@ RES_BuildHttp(struct sess *sp) ...@@ -121,6 +125,17 @@ RES_BuildHttp(struct sess *sp)
http_CopyResp(sp->http, &sp->obj->http); http_CopyResp(sp->http, &sp->obj->http);
http_FilterFields(sp->wrk, sp->fd, sp->http, &sp->obj->http, http_FilterFields(sp->wrk, sp->fd, sp->http, &sp->obj->http,
HTTPH_A_DELIVER); 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) if (sp->xid != sp->obj->xid)
http_PrintfHeader(sp->wrk, sp->fd, sp->http, http_PrintfHeader(sp->wrk, sp->fd, sp->http,
"X-Varnish: %u %u", sp->xid, sp->obj->xid); "X-Varnish: %u %u", sp->xid, sp->obj->xid);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment