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
611baec6
Commit
611baec6
authored
Aug 20, 2021
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
STRING_LIST is no more.
parent
656aa24b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
14 additions
and
151 deletions
+14
-151
cache.h
bin/varnishd/cache/cache.h
+0
-9
cache_vrt.c
bin/varnishd/cache/cache_vrt.c
+0
-121
vrt.h
include/vrt.h
+2
-1
generate.py
lib/libvcc/generate.py
+0
-1
vcc_expr.c
lib/libvcc/vcc_expr.c
+12
-13
vcc_types.c
lib/libvcc/vcc_types.c
+0
-6
No files found.
bin/varnishd/cache/cache.h
View file @
611baec6
...
...
@@ -748,15 +748,6 @@ VSLb_ts_busyobj(struct busyobj *bo, const char *event, vtim_real now)
/* cache_vcl.c */
const
char
*
VCL_Name
(
const
struct
vcl
*
);
/* cache_vrt.c */
/*
* These prototypes go here, because we do not want to pollute vrt.h
* with va_list. VCC never generates direct calls to them.
* XXX: We should deprecate these (ref: STRANDS)
*/
const
char
*
VRT_String
(
struct
ws
*
ws
,
const
char
*
h
,
const
char
*
p
,
va_list
ap
);
char
*
VRT_StringList
(
char
*
d
,
unsigned
dl
,
const
char
*
p
,
va_list
ap
);
/* cache_wrk.c */
typedef
void
*
bgthread_t
(
struct
worker
*
,
void
*
priv
);
...
...
bin/varnishd/cache/cache_vrt.c
View file @
611baec6
...
...
@@ -54,7 +54,6 @@
#include "common/vsmw.h"
#include "proxy/cache_proxy.h"
const
void
*
const
vrt_magic_string_end
=
&
vrt_magic_string_end
;
const
struct
strands
*
vrt_null_strands
=
&
(
struct
strands
){
.
n
=
0
,
.
p
=
(
const
char
*
[
1
]){
NULL
}
...
...
@@ -395,126 +394,6 @@ VRT_HashStrands32(VCL_STRANDS s)
return
(
vle32dec
(
sha256
+
VSHA256_LEN
-
4
));
}
/*--------------------------------------------------------------------
* Collapse a STRING_LIST in the space provided, or return NULL
*/
char
*
VRT_StringList
(
char
*
d
,
unsigned
dl
,
const
char
*
p
,
va_list
ap
)
{
char
*
b
,
*
e
;
unsigned
x
;
b
=
d
;
e
=
b
+
dl
;
while
(
p
!=
vrt_magic_string_end
&&
b
<
e
)
{
if
(
p
!=
NULL
&&
*
p
!=
'\0'
)
{
x
=
strlen
(
p
);
if
(
b
+
x
<
e
)
memcpy
(
b
,
p
,
x
);
b
+=
x
;
}
p
=
va_arg
(
ap
,
const
char
*
);
}
if
(
b
>=
e
)
return
(
NULL
);
*
b
++
=
'\0'
;
return
(
b
);
}
/*--------------------------------------------------------------------
* Copy and merge a STRING_LIST into a workspace.
*/
const
char
*
VRT_String
(
struct
ws
*
ws
,
const
char
*
h
,
const
char
*
p
,
va_list
ap
)
{
char
*
b
,
*
e
;
const
char
*
q
;
unsigned
u
,
x
;
va_list
aq
;
u
=
WS_ReserveAll
(
ws
);
e
=
b
=
WS_Reservation
(
ws
);
e
+=
u
;
va_copy
(
aq
,
ap
);
do
q
=
va_arg
(
aq
,
const
char
*
);
while
(
q
==
NULL
||
(
q
!=
vrt_magic_string_end
&&
*
q
==
'\0'
));
if
(
h
!=
NULL
&&
p
==
NULL
&&
q
==
vrt_magic_string_end
&&
WS_Allocated
(
ws
,
h
,
-
1
))
{
va_end
(
aq
);
WS_Release
(
ws
,
0
);
return
(
h
);
}
if
(
h
==
NULL
&&
p
!=
NULL
&&
q
==
vrt_magic_string_end
&&
WS_Allocated
(
ws
,
p
,
-
1
))
{
va_end
(
aq
);
WS_Release
(
ws
,
0
);
return
(
p
);
}
if
(
h
==
NULL
&&
p
==
NULL
)
{
if
(
q
==
vrt_magic_string_end
)
{
va_end
(
aq
);
WS_Release
(
ws
,
0
);
return
(
""
);
}
do
p
=
va_arg
(
aq
,
const
char
*
);
while
(
p
==
NULL
||
(
p
!=
vrt_magic_string_end
&&
*
p
==
'\0'
));
if
(
p
==
vrt_magic_string_end
&&
WS_Allocated
(
ws
,
q
,
-
1
))
{
va_end
(
aq
);
WS_Release
(
ws
,
0
);
return
(
q
);
}
p
=
NULL
;
va_end
(
aq
);
}
if
(
h
!=
NULL
)
{
x
=
strlen
(
h
);
if
(
b
+
x
<
e
)
memcpy
(
b
,
h
,
x
);
b
+=
x
;
if
(
b
<
e
)
*
b
=
' '
;
b
++
;
}
b
=
VRT_StringList
(
b
,
e
>
b
?
e
-
b
:
0
,
p
,
ap
);
if
(
b
==
NULL
||
b
==
e
)
{
WS_MarkOverflow
(
ws
);
WS_Release
(
ws
,
0
);
return
(
NULL
);
}
e
=
b
;
b
=
WS_Reservation
(
ws
);
WS_Release
(
ws
,
e
-
b
);
return
(
b
);
}
/*--------------------------------------------------------------------
* Copy and merge a STRING_LIST on the current workspace
*/
VCL_STRING
VRT_CollectString
(
VRT_CTX
,
const
char
*
p
,
...)
{
va_list
ap
;
const
char
*
b
;
CHECK_OBJ_NOTNULL
(
ctx
,
VRT_CTX_MAGIC
);
CHECK_OBJ_NOTNULL
(
ctx
->
ws
,
WS_MAGIC
);
va_start
(
ap
,
p
);
b
=
VRT_String
(
ctx
->
ws
,
NULL
,
p
,
ap
);
va_end
(
ap
);
if
(
b
==
NULL
)
VRT_fail
(
ctx
,
"Workspace overflow"
);
return
(
b
);
}
/*--------------------------------------------------------------------
* Collapse STRANDS into the space provided, or return NULL
...
...
include/vrt.h
View file @
611baec6
...
...
@@ -54,6 +54,8 @@
* binary/load-time compatible, increment MAJOR version
*
* NEXT (2021-09-15)
* VCL_STRINGLIST, vrt_magic_string_end removed
* VRT_String(), VRT_StringList(), VRT_CollectString() removed
* VRT_CollectStrands() renamed to VRT_STRANDS_string()
* VRT_l_{beresp|resp}_body() changed to takes STRANDS argument
* VRT_SetHdr() changed to take `const char*` & `STRANDS` arguments.
...
...
@@ -714,5 +716,4 @@ void VRT_VCL_Allow_Discard(struct vclref **);
*/
VCL_VOID
VRT_synth_page
(
VRT_CTX
,
VCL_STRANDS
);
extern
const
void
*
const
vrt_magic_string_end
;
int
VRT_Stv
(
const
char
*
nm
);
lib/libvcc/generate.py
View file @
611baec6
...
...
@@ -327,7 +327,6 @@ class vcltype(object):
vcltype
(
"STRINGS"
,
"void"
,
True
)
vcltype
(
"STRING_LIST"
,
"void*"
,
True
)
vcltype
(
"SUB"
,
"void*"
,
True
)
fi
=
open
(
join
(
srcroot
,
"include/vrt.h"
))
...
...
lib/libvcc/vcc_expr.c
View file @
611baec6
...
...
@@ -48,7 +48,7 @@ struct expr {
uint8_t
constant
;
#define EXPR_VAR (1<<0)
#define EXPR_CONST (1<<1)
#define EXPR_STR_CONST (1<<2) // Last
STRING_LIST
elem is "..."
#define EXPR_STR_CONST (1<<2) // Last
string
elem is "..."
struct
token
*
t1
,
*
t2
;
struct
symbol
*
instance
;
int
nstr
;
...
...
@@ -176,13 +176,18 @@ vcc_expr_edit(struct vcc *tl, vcc_type_t fmt, const char *p, struct expr *e1,
e3
=
(
*
p
==
'S'
?
e1
:
e2
);
AN
(
e3
);
assert
(
e1
->
fmt
==
STRINGS
);
if
(
e3
->
nstr
>
1
)
if
(
e3
->
nstr
>
1
)
{
VSB_cat
(
e
->
vsb
,
"
\n
VRT_CollectString(ctx,
\v
+
\n
"
);
VSB_cat
(
e
->
vsb
,
VSB_data
(
e3
->
vsb
));
if
(
e3
->
nstr
>
1
)
"
\n
VRT_STRANDS_string(ctx,
\v
+
\n
"
);
VSB_printf
(
e
->
vsb
,
"&(struct strands){.n = %d, .p = "
"(const char *[%d]){
\n
%s
\n
}}"
,
e3
->
nstr
,
e3
->
nstr
,
VSB_data
(
e3
->
vsb
));
VSB_cat
(
e
->
vsb
,
",
\n
vrt_magic_string_end)
\v
-
\n
"
);
"
\v
-
\n
)
\n
"
);
}
else
{
VSB_cat
(
e
->
vsb
,
VSB_data
(
e3
->
vsb
));
}
break
;
case
'T'
:
case
't'
:
...
...
@@ -1396,9 +1401,7 @@ vcc_expr0(struct vcc *tl, struct expr **e, vcc_type_t fmt)
}
if
((
*
e
)
->
fmt
==
STRINGS
&&
fmt
->
stringform
)
{
if
(
fmt
==
STRING_LIST
)
(
*
e
)
->
fmt
=
STRING_LIST
;
else
if
(
fmt
==
STRING
)
if
(
fmt
==
STRING
)
*
e
=
vcc_expr_edit
(
tl
,
STRING
,
"
\v
S"
,
*
e
,
NULL
);
else
if
(
fmt
==
STRANDS
)
*
e
=
vcc_expr_edit
(
tl
,
STRANDS
,
"
\v
T"
,
(
*
e
),
NULL
);
...
...
@@ -1406,10 +1409,6 @@ vcc_expr0(struct vcc *tl, struct expr **e, vcc_type_t fmt)
WRONG
(
"Unhandled stringform"
);
}
if
((
*
e
)
->
fmt
==
STRING_LIST
)
*
e
=
vcc_expr_edit
(
tl
,
STRING_LIST
,
"
\n\v
1,
\n
vrt_magic_string_end"
,
*
e
,
NULL
);
if
(
fmt
==
BOOL
)
{
vcc_expr_tobool
(
tl
,
e
);
ERRCHK
(
tl
);
...
...
lib/libvcc/vcc_types.c
View file @
611baec6
...
...
@@ -202,12 +202,6 @@ const struct type STRINGS[1] = {{
.
tostring
=
""
,
}};
const
struct
type
STRING_LIST
[
1
]
=
{{
.
magic
=
TYPE_MAGIC
,
.
name
=
"STRING_LIST"
,
.
stringform
=
1
,
}};
const
struct
type
SUB
[
1
]
=
{{
.
magic
=
TYPE_MAGIC
,
.
name
=
"SUB"
,
...
...
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