Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
U
unique-xids
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
unique-xids
Commits
2d53dfe4
Commit
2d53dfe4
authored
Apr 22, 2013
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start moving the backend VCL variables to use busyobj rather than req
parent
5800cf91
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
26 deletions
+49
-26
cache_vrt_var.c
bin/varnishd/cache/cache_vrt_var.c
+27
-18
generate.py
lib/libvcl/generate.py
+22
-8
No files found.
bin/varnishd/cache/cache_vrt_var.c
View file @
2d53dfe4
...
...
@@ -63,38 +63,47 @@ vrt_do_string(const struct http *hp, int fld,
#define VRT_DO_HDR(obj, hdr, http, fld) \
void \
VRT_l_##obj##_##hdr(const struct
req *req
, const char *p, ...) \
VRT_l_##obj##_##hdr(const struct
CPAR *px
, const char *p, ...) \
{ \
va_list ap; \
\
CHECK_OBJ_NOTNULL(
req, REQ_MAGIC);
\
CHECK_OBJ_NOTNULL(
px, CMAGIC);
\
va_start(ap, p); \
vrt_do_string(http, fld, #obj "." #hdr, p, ap); \
va_end(ap); \
} \
\
const char * \
VRT_r_##obj##_##hdr(const struct
req *req
) \
VRT_r_##obj##_##hdr(const struct
CPAR *px
) \
{ \
CHECK_OBJ_NOTNULL(
req, REQ_MAGIC);
\
CHECK_OBJ_NOTNULL(
px, CMAGIC);
\
CHECK_OBJ_NOTNULL(http, HTTP_MAGIC); \
return (http->hd[fld].b); \
}
VRT_DO_HDR
(
req
,
method
,
req
->
http
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
req
,
request
,
req
->
http
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
req
,
url
,
req
->
http
,
HTTP_HDR_URL
)
VRT_DO_HDR
(
req
,
proto
,
req
->
http
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
bereq
,
method
,
req
->
busyobj
->
bereq
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
bereq
,
request
,
req
->
busyobj
->
bereq
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
bereq
,
url
,
req
->
busyobj
->
bereq
,
HTTP_HDR_URL
)
VRT_DO_HDR
(
bereq
,
proto
,
req
->
busyobj
->
bereq
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
obj
,
proto
,
req
->
obj
->
http
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
obj
,
response
,
req
->
obj
->
http
,
HTTP_HDR_RESPONSE
)
VRT_DO_HDR
(
resp
,
proto
,
req
->
resp
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
resp
,
response
,
req
->
resp
,
HTTP_HDR_RESPONSE
)
VRT_DO_HDR
(
beresp
,
proto
,
req
->
busyobj
->
beresp
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
beresp
,
response
,
req
->
busyobj
->
beresp
,
HTTP_HDR_RESPONSE
)
#define CPAR req
#define CMAGIC REQ_MAGIC
VRT_DO_HDR
(
req
,
method
,
px
->
http
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
req
,
request
,
px
->
http
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
req
,
url
,
px
->
http
,
HTTP_HDR_URL
)
VRT_DO_HDR
(
req
,
proto
,
px
->
http
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
obj
,
proto
,
px
->
obj
->
http
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
obj
,
response
,
px
->
obj
->
http
,
HTTP_HDR_RESPONSE
)
VRT_DO_HDR
(
resp
,
proto
,
px
->
resp
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
resp
,
response
,
px
->
resp
,
HTTP_HDR_RESPONSE
)
#undef CPAR
#undef CMAGIC
#define CPAR busyobj
#define CMAGIC BUSYOBJ_MAGIC
VRT_DO_HDR
(
bereq
,
method
,
px
->
bereq
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
bereq
,
request
,
px
->
bereq
,
HTTP_HDR_METHOD
)
VRT_DO_HDR
(
bereq
,
url
,
px
->
bereq
,
HTTP_HDR_URL
)
VRT_DO_HDR
(
bereq
,
proto
,
px
->
bereq
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
beresp
,
proto
,
px
->
beresp
,
HTTP_HDR_PROTO
)
VRT_DO_HDR
(
beresp
,
response
,
px
->
beresp
,
HTTP_HDR_RESPONSE
)
#undef CPAR
#undef CMAGIC
/*--------------------------------------------------------------------*/
...
...
lib/libvcl/generate.py
View file @
2d53dfe4
...
...
@@ -241,25 +241,25 @@ sp_variables = (
'STRING'
,
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'bereq.request'
,
'STRING'
,
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'bereq.url'
,
'STRING'
,
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'bereq.proto'
,
'STRING'
,
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
(
'pipe'
,
'backend_fetch'
,
'pass'
,
'miss'
,
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'bereq.http.'
,
'HEADER'
,
...
...
@@ -289,7 +289,7 @@ sp_variables = (
'STRING'
,
(
'backend_response'
,),
(
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'beresp.saintmode'
,
'DURATION'
,
...
...
@@ -307,7 +307,7 @@ sp_variables = (
'STRING'
,
(
'backend_response'
,),
(
'backend_response'
,),
'c
R
'
'c
B
'
),
(
'beresp.http.'
,
'HEADER'
,
...
...
@@ -859,10 +859,19 @@ def mk_proto(c, r=False):
for
i
in
c
:
if
i
==
"c"
and
not
r
:
s
+=
" const"
if
i
==
"R"
:
elif
i
==
"c"
:
pass
elif
i
==
"R"
:
if
r
:
s
+=
" const"
s
+=
" struct req *"
elif
i
==
"B"
:
if
r
:
s
+=
" const"
s
+=
" struct busyobj *"
else
:
print
(
"Unknown args-spec char '
%
s'"
%
i
)
exit
(
1
)
return
s
[
1
:]
...
...
@@ -873,8 +882,13 @@ def mk_args(c, r=False):
for
i
in
c
:
if
i
==
"c"
:
continue
;
if
i
==
"R"
:
el
if
i
==
"R"
:
s
+=
"req"
elif
i
==
"B"
:
s
+=
"bo"
else
:
print
(
"Unknown args-spec char '
%
s'"
%
i
)
exit
(
1
)
if
s
!=
""
and
not
r
:
s
+=
","
return
s
...
...
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