Commit 1199d241 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Give SLT_Begin and SLT_Link a third field "why", and normalise the

first field to the type of entity.

Martin will commit corresponding and necessary changes to the
API in a matter of milliseconds or possibly hours or days, so
minor weirdness from varnishlog/ncsa can be expected for a brief
amount of time.

Testcase l00000 & l00001 are also broken until the API catches up.
parent 948e3fd0
......@@ -844,7 +844,7 @@ double BAN_Time(const struct ban *ban);
/* cache_busyobj.c */
void VBO_Init(void);
struct busyobj *VBO_GetBusyObj(struct worker *, struct req *);
struct busyobj *VBO_GetBusyObj(struct worker *, const struct req *);
void VBO_DerefBusyObj(struct worker *wrk, struct busyobj **busyobj);
void VBO_Free(struct busyobj **vbo);
void VBO_extend(struct busyobj *, ssize_t);
......
......@@ -89,7 +89,7 @@ VBO_Free(struct busyobj **bop)
}
struct busyobj *
VBO_GetBusyObj(struct worker *wrk, struct req *req)
VBO_GetBusyObj(struct worker *wrk, const struct req *req)
{
struct busyobj *bo = NULL;
uint16_t nhttp;
......@@ -136,8 +136,6 @@ VBO_GetBusyObj(struct worker *wrk, struct req *req)
sz = cache_param->vsl_buffer;
VSL_Setup(bo->vsl, p, sz);
bo->vsl->wid = VXID_Get(&wrk->vxid_pool) | VSL_BACKENDMARKER;
VSLb(bo->vsl, SLT_Begin, "bereq %u", req->vsl->wid & VSL_IDENTMASK);
VSLb(req->vsl, SLT_Link, "bereq %u", bo->vsl->wid & VSL_IDENTMASK);
p += sz;
p = (void*)PRNDUP(p);
assert(p < bo->end);
......
......@@ -61,8 +61,8 @@ ved_include(struct req *preq, const char *src, const char *host)
req = SES_GetReq(wrk, preq->sp);
req->req_body_status = REQ_BODY_NONE;
VSLb(req->vsl, SLT_Begin, "esireq %u", preq->vsl->wid & VSL_IDENTMASK);
VSLb(preq->vsl, SLT_Link, "esireq %u", req->vsl->wid & VSL_IDENTMASK);
VSLb(req->vsl, SLT_Begin, "req %u esi", preq->vsl->wid & VSL_IDENTMASK);
VSLb(preq->vsl, SLT_Link, "req %u esi", req->vsl->wid & VSL_IDENTMASK);
req->esi_level = preq->esi_level + 1;
HTTP_Copy(req->http0, preq->http0);
......
......@@ -724,6 +724,7 @@ VBF_Fetch(struct worker *wrk, struct req *req, struct objcore *oc,
struct object *oldobj, enum vbf_fetch_mode_e mode)
{
struct busyobj *bo;
const char *how;
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
......@@ -732,6 +733,19 @@ VBF_Fetch(struct worker *wrk, struct req *req, struct objcore *oc,
bo = VBO_GetBusyObj(wrk, req);
CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
switch(mode) {
case VBF_PASS: how = "pass"; break;
case VBF_NORMAL: how = "fetch"; break;
case VBF_BACKGROUND: how = "bgfetch"; break;
default: WRONG("Wrong fetch mode");
}
VSLb(bo->vsl, SLT_Begin, "bereq %u %s ",
req->vsl->wid & VSL_IDENTMASK, how);
VSLb(req->vsl, SLT_Link, "bereq %u %s ",
bo->vsl->wid & VSL_IDENTMASK, how);
bo->refcount = 2;
oc->busyobj = bo;
......
......@@ -286,9 +286,9 @@ http1_dissect(struct worker *wrk, struct req *req)
*/
if (req->vsl->wid == 0) {
req->vsl->wid = VXID_Get(&wrk->vxid_pool) | VSL_CLIENTMARKER;
VSLb(req->vsl, SLT_Begin, "req %u",
VSLb(req->vsl, SLT_Begin, "req %u rxreq",
req->sp->vxid & VSL_IDENTMASK);
VSL(SLT_Link, req->sp->vxid, "req %u",
VSL(SLT_Link, req->sp->vxid, "req %u rxreq",
req->vsl->wid & VSL_IDENTMASK);
}
......
......@@ -642,12 +642,12 @@ cnt_restart(struct worker *wrk, struct req *req)
} else {
wid = VXID_Get(&wrk->vxid_pool);
// XXX: ReqEnd + ReqAcct ?
VSLb(req->vsl, SLT_Link, "req %u", wid);
VSLb(req->vsl, SLT_Link, "req %u restart", wid);
VSLb(req->vsl, SLT_End, "");
VSL_Flush(req->vsl, 0);
owid = req->vsl->wid & VSL_IDENTMASK;
req->vsl->wid = wid | VSL_CLIENTMARKER;
VSLb(req->vsl, SLT_Begin, "req %u", owid);
VSLb(req->vsl, SLT_Begin, "req %u restart", owid);
req->err_code = 0;
req->req_step = R_STP_RECV;
......
......@@ -197,7 +197,7 @@ ses_vsl_socket(struct sess *sp, const char *lsockname)
sp->client_port_str = WS_Copy(sp->ws, lport, -1);
VTCP_name(sess_local_addr(sp), laddr, sizeof laddr,
lport, sizeof lport);
VSL(SLT_Begin, sp->vxid, "sess");
VSL(SLT_Begin, sp->vxid, "sess 0 HTTP/1");
VSL(SLT_SessOpen, sp->vxid, "%s %s %s %s %s %.6f %d",
sp->client_addr_str, sp->client_port_str, lsockname, laddr, lport,
sp->t_open, sp->fd);
......@@ -389,8 +389,9 @@ SES_GetReq(struct worker *wrk, struct sess *sp)
sz = cache_param->vsl_buffer;
VSL_Setup(req->vsl, p, sz);
req->vsl->wid = VXID_Get(&wrk->vxid_pool) | VSL_CLIENTMARKER;
VSLb(req->vsl, SLT_Begin, "req %u", sp->vxid & VSL_IDENTMASK);
VSL(SLT_Link, req->sp->vxid, "req %u", req->vsl->wid & VSL_IDENTMASK);
VSLb(req->vsl, SLT_Begin, "req %u rxreq", sp->vxid & VSL_IDENTMASK);
VSL(SLT_Link, req->sp->vxid, "req %u rxreq",
req->vsl->wid & VSL_IDENTMASK);
p += sz;
p = (void*)PRNDUP(p);
......
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