Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnish-cache
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
varnishcache
varnish-cache
Commits
45492fd3
Unverified
Commit
45492fd3
authored
Jul 12, 2023
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ESI: Use response status modulo 1000
Ref:
582ded6a
Fixes #3958
parent
81a0a303
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
12 deletions
+24
-12
cache_esi_deliver.c
bin/varnishd/cache/cache_esi_deliver.c
+4
-3
e00003.vtc
bin/varnishtest/tests/e00003.vtc
+20
-9
No files found.
bin/varnishd/cache/cache_esi_deliver.c
View file @
45492fd3
...
@@ -857,6 +857,7 @@ ved_deliver(struct req *req, struct boc *boc, int wantbody)
...
@@ -857,6 +857,7 @@ ved_deliver(struct req *req, struct boc *boc, int wantbody)
{
{
int
i
=
0
;
int
i
=
0
;
const
char
*
p
;
const
char
*
p
;
uint16_t
status
;
struct
ecx
*
ecx
;
struct
ecx
*
ecx
;
struct
ved_foo
foo
[
1
];
struct
ved_foo
foo
[
1
];
struct
vrt_ctx
ctx
[
1
];
struct
vrt_ctx
ctx
[
1
];
...
@@ -870,9 +871,9 @@ ved_deliver(struct req *req, struct boc *boc, int wantbody)
...
@@ -870,9 +871,9 @@ ved_deliver(struct req *req, struct boc *boc, int wantbody)
if
(
wantbody
==
0
)
if
(
wantbody
==
0
)
return
;
return
;
if
(
!
ecx
->
incl_cont
&&
status
=
req
->
resp
->
status
%
1000
;
req
->
resp
->
status
!=
200
&&
req
->
resp
->
status
!=
204
)
{
if
(
!
ecx
->
incl_cont
&&
status
!=
200
&&
status
!=
204
)
{
req
->
top
->
topreq
->
vdc
->
retval
=
-
1
;
req
->
top
->
topreq
->
vdc
->
retval
=
-
1
;
req
->
top
->
topreq
->
doclose
=
req
->
doclose
;
req
->
top
->
topreq
->
doclose
=
req
->
doclose
;
return
;
return
;
...
...
bin/varnishtest/tests/e00003.vtc
View file @
45492fd3
...
@@ -8,8 +8,7 @@ server s1 {
...
@@ -8,8 +8,7 @@ server s1 {
txresp -body {
txresp -body {
<html>
<html>
Before include
Before include
<esi:include
src=
"/body"
sr=
"foo"
/>
<esi:include
src=
"/body"
sr=
"foo"
/><esi:include
src=
"/synth"
/>
After include
After include
</html>
</html>
}
}
rxreq
rxreq
...
@@ -21,9 +20,17 @@ server s1 {
...
@@ -21,9 +20,17 @@ server s1 {
} -start
} -start
varnish v1 -vcl+backend {
varnish v1 -vcl+backend {
sub vcl_synth {
set resp.body = """
""";
return (deliver);
}
sub vcl_recv {
sub vcl_recv {
if (req.esi_level > 0) {
if (req.esi_level > 0) {
set req.url = req.url + req.esi_level;
set req.url = req.url + req.esi_level;
if (req.url ~ "^/synth") {
return (synth(3200));
}
} else {
} else {
set req.http.esi0 = "foo";
set req.http.esi0 = "foo";
}
}
...
@@ -64,7 +71,7 @@ logexpect l4 -v v1 -g request {
...
@@ -64,7 +71,7 @@ logexpect l4 -v v1 -g request {
} -start
} -start
logexpect l5 -v v1 -g request {
logexpect l5 -v v1 -g request {
expect * 100
5
Begin "^req .* rxreq"
expect * 100
6
Begin "^req .* rxreq"
# Header bytes is 5 larger than in l1 due to two item X-Varnish hdr
# Header bytes is 5 larger than in l1 due to two item X-Varnish hdr
expect * = ReqAcct "^29 0 29 175 75 250$"
expect * = ReqAcct "^29 0 29 175 75 250$"
expect 0 = End
expect 0 = End
...
@@ -87,7 +94,7 @@ client c1 {
...
@@ -87,7 +94,7 @@ client c1 {
}
}
client c1 -run
client c1 -run
varnish v1 -expect esi_req ==
2
varnish v1 -expect esi_req ==
4
varnish v1 -expect esi_errors == 0
varnish v1 -expect esi_errors == 0
varnish v1 -expect MAIN.s_resp_bodybytes == 150
varnish v1 -expect MAIN.s_resp_bodybytes == 150
...
@@ -104,7 +111,7 @@ shell {
...
@@ -104,7 +111,7 @@ shell {
cat >expected.txt
<
<
-EOF
cat >expected.txt
<
<
-EOF
1001
c
rxreq
1001
c
rxreq
100
5
c
rxreq
100
6
c
rxreq
EOF
EOF
diff
-u
expected
.
txt
ncsa
.
txt
diff
-u
expected
.
txt
ncsa
.
txt
}
}
...
@@ -129,8 +136,10 @@ shell {
...
@@ -129,8 +136,10 @@ shell {
cat >expected.txt
<
<
-EOF
cat >expected.txt
<
<
-EOF
1001
c
rxreq
1001
c
rxreq
1003
c
esi
1003
c
esi
1005
c
rxreq
1005
c
esi
1006
c
esi
1006
c
rxreq
1007
c
esi
1008
c
esi
EOF
EOF
diff
-u
expected
.
txt
ncsa
.
txt
diff
-u
expected
.
txt
ncsa
.
txt
}
}
...
@@ -145,8 +154,10 @@ shell {
...
@@ -145,8 +154,10 @@ shell {
1002
b
fetch
1002
b
fetch
1003
c
esi
1003
c
esi
1004
b
fetch
1004
b
fetch
1005
c
rxreq
1005
c
esi
1006
c
esi
1006
c
rxreq
1007
c
esi
1008
c
esi
EOF
EOF
diff
-u
expected
.
txt
ncsa
.
txt
diff
-u
expected
.
txt
ncsa
.
txt
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment