Commit 1764f13a authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Split resp.* construction so that version independent stuff goes

into req_fsm.c::cnt_deliver{}
parent 164378c5
......@@ -157,6 +157,7 @@ DOT deliver:stream:s -> stream [style=bold,color=blue]
static enum req_fsm_nxt
cnt_deliver(struct worker *wrk, struct req *req)
{
char time_str[30];
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
......@@ -216,11 +217,34 @@ cnt_deliver(struct worker *wrk, struct req *req)
if (!cache_param->obj_readonly)
req->obj->last_use = req->t_resp; /* XXX: locking ? */
}
HTTP_Setup(req->resp, req->ws, req->vsl, HTTP_Resp);
RES_BuildHttp(req);
http_ClrHeader(req->resp);
http_FilterResp(req->obj->http, req->resp, 0);
http_Unset(req->resp, H_Date);
VTIM_format(VTIM_real(), time_str);
http_PrintfHeader(req->resp, "Date: %s", time_str);
if (req->wrk->stats.cache_hit)
http_PrintfHeader(req->resp,
"X-Varnish: %u %u", req->vsl->wid & VSL_IDENTMASK,
req->obj->vxid & VSL_IDENTMASK);
else
http_PrintfHeader(req->resp,
"X-Varnish: %u", req->vsl->wid & VSL_IDENTMASK);
http_PrintfHeader(req->resp, "Age: %.0f",
req->obj->exp.age + req->t_resp - req->obj->exp.entered);
http_SetHeader(req->resp, "Via: 1.1 varnish");
VCL_deliver_method(req->vcl, wrk, req, NULL, req->http->ws);
RES_BuildHttp(req);
while (req->obj->objcore->busyobj) {
VSLb(req->vsl, SLT_Debug, "HERE %s %d", __func__, __LINE__);
(void)usleep(10000);
......
......@@ -32,7 +32,6 @@
#include "cache.h"
#include "vct.h"
#include "vtim.h"
/*--------------------------------------------------------------------*/
......@@ -105,14 +104,10 @@ res_dorange(const struct req *req, const char *r, ssize_t *plow, ssize_t *phigh)
void
RES_BuildHttp(struct req *req)
{
char time_str[30];
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
CHECK_OBJ_NOTNULL(req->obj, OBJECT_MAGIC);
http_ClrHeader(req->resp);
http_FilterResp(req->obj->http, req->resp, 0);
if (!(req->res_mode & RES_LEN)) {
http_Unset(req->resp, H_Content_Length);
} else if (cache_param->http_range_support) {
......@@ -133,21 +128,6 @@ RES_BuildHttp(struct req *req)
} else if (req->res_mode & RES_CHUNKED)
http_SetHeader(req->resp, "Transfer-Encoding: chunked");
http_Unset(req->resp, H_Date);
VTIM_format(VTIM_real(), time_str);
http_PrintfHeader(req->resp, "Date: %s", time_str);
if (req->wrk->stats.cache_hit)
http_PrintfHeader(req->resp,
"X-Varnish: %u %u", req->vsl->wid & VSL_IDENTMASK,
req->obj->vxid & VSL_IDENTMASK);
else
http_PrintfHeader(req->resp,
"X-Varnish: %u", req->vsl->wid & VSL_IDENTMASK);
http_PrintfHeader(req->resp, "Age: %.0f",
req->obj->exp.age + req->t_resp -
req->obj->exp.entered);
http_SetHeader(req->resp, "Via: 1.1 varnish");
http_PrintfHeader(req->resp, "Connection: %s",
req->doclose ? "close" : "keep-alive");
}
......
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