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
28a648f6
Commit
28a648f6
authored
Sep 07, 2015
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Give the "topline" header-id's a length-field in HTTPHdrPack.
Patch by: martin (slightly polished)
parent
e79fce21
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
11 deletions
+19
-11
cache.h
bin/varnishd/cache/cache.h
+3
-0
cache_ban.c
bin/varnishd/cache/cache_ban.c
+1
-1
cache_http.c
bin/varnishd/cache/cache_http.c
+13
-8
cache_vrt_var.c
bin/varnishd/cache/cache_vrt_var.c
+2
-2
No files found.
bin/varnishd/cache/cache.h
View file @
28a648f6
...
...
@@ -845,6 +845,9 @@ unsigned HTTP1_Write(const struct worker *w, const struct http *hp, const int*);
#define HTTPH(a, b, c) extern char b[];
#include "tbl/http_headers.h"
#undef HTTPH
extern
const
char
H__Status
[];
extern
const
char
H__Proto
[];
extern
const
char
H__Reason
[];
/* cache_main.c */
#define VXID(u) ((u) & VSL_IDENTMASK)
...
...
bin/varnishd/cache/cache_ban.c
View file @
28a648f6
...
...
@@ -857,7 +857,7 @@ ban_evaluate(struct worker *wrk, const uint8_t *bs, struct objcore *oc,
arg1
=
HTTP_GetHdrPack
(
wrk
,
oc
,
bt
.
arg1_spec
);
break
;
case
BANS_ARG_OBJSTATUS
:
arg1
=
HTTP_GetHdrPack
(
wrk
,
oc
,
":status"
);
arg1
=
HTTP_GetHdrPack
(
wrk
,
oc
,
H__Status
);
break
;
default:
WRONG
(
"Wrong BAN_ARG code"
);
...
...
bin/varnishd/cache/cache_http.c
View file @
28a648f6
...
...
@@ -44,6 +44,10 @@
#include "tbl/http_headers.h"
#undef HTTPH
const
char
H__Status
[]
=
"
\010
:status:"
;
const
char
H__Proto
[]
=
"
\007
:proto:"
;
const
char
H__Reason
[]
=
"
\010
:reason:"
;
/*--------------------------------------------------------------------
* These two functions are in an incestous relationship with the
* order of macros in include/tbl/vsl_tags_http.h
...
...
@@ -901,6 +905,12 @@ HTTP_GetHdrPack(struct worker *wrk, struct objcore *oc, const char *hdr)
CHECK_OBJ_NOTNULL
(
oc
,
OBJCORE_MAGIC
);
AN
(
hdr
);
l
=
hdr
[
0
];
assert
(
l
>
0
);
assert
(
l
==
strlen
(
hdr
+
1
));
assert
(
hdr
[
l
]
==
':'
);
hdr
++
;
ptr
=
ObjGetattr
(
wrk
,
oc
,
OA_HEADERS
,
NULL
);
AN
(
ptr
);
...
...
@@ -909,21 +919,16 @@ HTTP_GetHdrPack(struct worker *wrk, struct objcore *oc, const char *hdr)
VSL
(
SLT_Debug
,
0
,
"%d %s"
,
__LINE__
,
ptr
);
/* Skip PROTO, STATUS and REASON */
if
(
!
strcmp
(
hdr
,
":proto"
))
if
(
!
strcmp
(
hdr
,
":proto
:
"
))
return
(
ptr
);
ptr
=
strchr
(
ptr
,
'\0'
)
+
1
;
if
(
!
strcmp
(
hdr
,
":status"
))
if
(
!
strcmp
(
hdr
,
":status
:
"
))
return
(
ptr
);
ptr
=
strchr
(
ptr
,
'\0'
)
+
1
;
if
(
!
strcmp
(
hdr
,
":reason"
))
if
(
!
strcmp
(
hdr
,
":reason
:
"
))
return
(
ptr
);
ptr
=
strchr
(
ptr
,
'\0'
)
+
1
;
l
=
hdr
[
0
];
assert
(
l
==
strlen
(
hdr
+
1
));
assert
(
hdr
[
l
]
==
':'
);
hdr
++
;
while
(
*
ptr
!=
'\0'
)
{
if
(
!
strncasecmp
(
ptr
,
hdr
,
l
))
{
ptr
+=
l
;
...
...
bin/varnishd/cache/cache_vrt_var.c
View file @
28a648f6
...
...
@@ -157,7 +157,7 @@ VRT_r_obj_proto(VRT_CTX)
CHECK_OBJ_NOTNULL
(
ctx
->
req
,
REQ_MAGIC
);
CHECK_OBJ_NOTNULL
(
ctx
->
req
->
objcore
,
OBJCORE_MAGIC
);
return
(
HTTP_GetHdrPack
(
ctx
->
req
->
wrk
,
ctx
->
req
->
objcore
,
":proto"
));
return
(
HTTP_GetHdrPack
(
ctx
->
req
->
wrk
,
ctx
->
req
->
objcore
,
H__Proto
));
}
const
char
*
...
...
@@ -167,7 +167,7 @@ VRT_r_obj_reason(VRT_CTX)
CHECK_OBJ_NOTNULL
(
ctx
->
req
,
REQ_MAGIC
);
CHECK_OBJ_NOTNULL
(
ctx
->
req
->
objcore
,
OBJCORE_MAGIC
);
return
(
HTTP_GetHdrPack
(
ctx
->
req
->
wrk
,
ctx
->
req
->
objcore
,
":reason"
));
return
(
HTTP_GetHdrPack
(
ctx
->
req
->
wrk
,
ctx
->
req
->
objcore
,
H__Reason
));
}
/*--------------------------------------------------------------------
...
...
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