Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnishevent
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
varnishevent
Commits
daa6c31d
Commit
daa6c31d
authored
Mar 31, 2015
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement and test formatters for %O
parent
2905effa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
9 deletions
+83
-9
format.c
src/format.c
+47
-9
format.h
src/format.h
+3
-0
test_format.c
src/test/test_format.c
+33
-0
No files found.
src/format.c
View file @
daa6c31d
...
...
@@ -268,18 +268,38 @@ format_h_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
FORMAT_h
(
client
,
ReqStart
,
0
)
FORMAT_h
(
backend
,
Backend
,
2
)
static
void
format_IO_client
(
tx_t
*
tx
,
int
req_fld
,
int
pipe_fld
,
char
**
s
,
size_t
*
len
)
{
int
field
;
logline_t
*
rec
=
get_tag
(
tx
,
SLT_ReqAcct
);
if
(
rec
!=
NULL
)
field
=
req_fld
;
else
{
rec
=
get_tag
(
tx
,
SLT_PipeAcct
);
field
=
pipe_fld
;
}
*
s
=
get_rec_fld
(
rec
,
field
);
*
len
=
strlen
(
*
s
);
}
static
inline
void
format_IO_backend
(
tx_t
*
tx
,
int
field
,
char
**
s
,
size_t
*
len
)
{
logline_t
*
rec
=
get_tag
(
tx
,
SLT_BereqAcct
);
*
s
=
get_rec_fld
(
rec
,
field
);
*
len
=
strlen
(
*
s
);
}
void
format_I_client
(
tx_t
*
tx
,
char
*
name
,
enum
VSL_tag_e
tag
,
char
**
s
,
size_t
*
len
)
size_t
*
len
)
{
(
void
)
name
;
(
void
)
tag
;
logline_t
*
rec
=
get_tag
(
tx
,
SLT_ReqAcct
);
if
(
rec
==
NULL
)
rec
=
get_tag
(
tx
,
SLT_PipeAcct
);
*
s
=
get_rec_fld
(
rec
,
2
);
*
len
=
strlen
(
*
s
);
format_IO_client
(
tx
,
2
,
2
,
s
,
len
);
}
void
...
...
@@ -289,14 +309,32 @@ format_I_backend(tx_t *tx, char *name, enum VSL_tag_e tag, char **s,
(
void
)
name
;
(
void
)
tag
;
logline_t
*
rec
=
get_tag
(
tx
,
SLT_BereqAcct
);
*
s
=
get_rec_fld
(
rec
,
5
);
*
len
=
strlen
(
*
s
);
format_IO_backend
(
tx
,
5
,
s
,
len
);
}
FORMAT
(
client
,
m
,
ReqMethod
)
FORMAT
(
backend
,
m
,
BereqMethod
)
void
format_O_client
(
tx_t
*
tx
,
char
*
name
,
enum
VSL_tag_e
tag
,
char
**
s
,
size_t
*
len
)
{
(
void
)
name
;
(
void
)
tag
;
format_IO_client
(
tx
,
5
,
3
,
s
,
len
);
}
void
format_O_backend
(
tx_t
*
tx
,
char
*
name
,
enum
VSL_tag_e
tag
,
char
**
s
,
size_t
*
len
)
{
(
void
)
name
;
(
void
)
tag
;
format_IO_backend
(
tx
,
2
,
s
,
len
);
}
#if 0
#define FORMAT_q(dir, xurl) \
...
...
src/format.h
View file @
daa6c31d
...
...
@@ -71,3 +71,6 @@ formatter_f format_I_backend;
formatter_f
format_m_client
;
formatter_f
format_m_backend
;
formatter_f
format_O_client
;
formatter_f
format_O_backend
;
src/test/test_format.c
View file @
daa6c31d
...
...
@@ -555,6 +555,38 @@ static const char
return
NULL
;
}
static
const
char
*
test_format_O
(
void
)
{
tx_t
tx
;
logline_t
rec
;
chunk_t
chunk
;
char
*
str
;
size_t
len
;
printf
(
"... testing format_O_*()
\n
"
);
init_tx_rec_chunk
(
&
tx
,
&
rec
,
&
chunk
);
MAN
(
chunk
.
data
);
set_record_data
(
&
rec
,
&
chunk
,
REQACCT_PAYLOAD
,
SLT_ReqAcct
);
format_O_client
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"283"
)
==
0
);
MASSERT
(
len
==
3
);
rec
.
tag
=
SLT_BereqAcct
;
format_O_backend
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"60"
)
==
0
);
MASSERT
(
len
==
2
);
set_record_data
(
&
rec
,
&
chunk
,
PIPEACCT_PAYLOAD
,
SLT_PipeAcct
);
format_O_client
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"105"
)
==
0
);
MASSERT
(
len
==
3
);
return
NULL
;
}
static
const
char
*
all_tests
(
void
)
{
...
...
@@ -571,6 +603,7 @@ static const char
mu_run_test
(
test_format_h
);
mu_run_test
(
test_format_I
);
mu_run_test
(
test_format_m
);
mu_run_test
(
test_format_O
);
return
NULL
;
}
...
...
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