Commit e421360b authored by Geoff Simmons's avatar Geoff Simmons

Add the 4th "esi-level" field to VSL Begin and Link output.

cf. Varnish PR 3828: https://github.com/varnishcache/varnish-cache/pull/3828
parent 1097f6f4
varnishtest ""
server s1 {
rxreq
txresp -body {<Before esi1>
<esi:include src="/esi1.html"/>
Between esi1 and esi2
<esi:include src="/esi2.html"/>
After esi2
}
} -start
server s2 {
rxreq
expect req.url == "/esi1.html"
txresp -body {<Before esi1-1>
<esi:include src="/esi1-1.html"/>
Between esi1-1 and esi1-2
<esi:include src="/esi1-2.html"/>
After esi1-2
}
} -start
server s3 {
rxreq
expect req.url == "/esi2.html"
txresp -body {<Before esi2-1>
<esi:include src="/esi2-1.html"/>
Between esi2-1 and esi2-2
<esi:include src="/esi2-2.html"/>
After esi2-2
}
} -start
server s4 {
rxreq
expect req.url == "/esi1-1.html"
txresp -body {esi1-1
}
} -start
server s5 {
rxreq
expect req.url == "/esi1-2.html"
txresp -body {esi1-2
}
} -start
server s6 {
rxreq
expect req.url == "/esi2-1.html"
txresp -body {esi2-1
}
} -start
server s7 {
rxreq
expect req.url == "/esi2-2.html"
txresp -body {esi2-2
}
} -start
varnish v1 -vcl+backend {
import ${vmod_pesi};
import ${vmod_pesi_debug};
include "debug.inc.vcl";
sub vcl_backend_fetch {
if (bereq.url == "/") {
set bereq.backend = s1;
}
elsif (bereq.url == "/esi1.html") {
set bereq.backend = s2;
}
elsif (bereq.url == "/esi2.html") {
set bereq.backend = s3;
}
elsif (bereq.url == "/esi1-1.html") {
set bereq.backend = s4;
}
elsif (bereq.url == "/esi1-2.html") {
set bereq.backend = s5;
}
elsif (bereq.url == "/esi2-1.html") {
set bereq.backend = s6;
}
elsif (bereq.url == "/esi2-2.html") {
set bereq.backend = s7;
}
}
sub vcl_backend_response {
set beresp.do_esi = true;
}
sub vcl_deliver {
pesi.activate();
}
} -start
client c1 {
txreq
rxresp
expect resp.status == 200
expect resp.bodylen == 191
expect resp.body == {<Before esi1>
<Before esi1-1>
esi1-1
Between esi1-1 and esi1-2
esi1-2
After esi1-2
Between esi1 and esi2
<Before esi2-1>
esi2-1
Between esi2-1 and esi2-2
esi2-2
After esi2-2
After esi2
}
} -run
shell -match {req \d+ esi 1} {varnishlog -n ${v1_name} -d -c -E -I Begin:esi}
shell -match {req \d+ esi 2} {varnishlog -n ${v1_name} -d -c -E -I Begin:esi}
shell -match {req \d+ esi 1} {varnishlog -n ${v1_name} -d -c -E -I Link:esi}
shell -match {req \d+ esi 2} {varnishlog -n ${v1_name} -d -c -E -I Link:esi}
......@@ -342,11 +342,13 @@ vped_include(struct req *preq, const char *src, const char *host,
req->vsl->wid = VXID_Get(wrk, VSL_CLIENTMARKER);
VSLdbgv(preq, "vped_include: new xid=%d", VXID(req->vsl->wid));
VSLb(req->vsl, SLT_Begin, "req %u esi", VXID(preq->vsl->wid));
VSLb(preq->vsl, SLT_Link, "req %u esi", VXID(req->vsl->wid));
req->esi_level = preq->esi_level + 1;
VSLb(req->vsl, SLT_Begin, "req %u esi %u", VXID(preq->vsl->wid),
req->esi_level);
VSLb(preq->vsl, SLT_Link, "req %u esi %u", VXID(req->vsl->wid),
req->esi_level);
req->top = preq->top;
HTTP_Setup(req->http, req->ws, req->vsl, SLT_ReqMethod);
......
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