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
e03aea6d
Commit
e03aea6d
authored
Apr 01, 2015
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement and test formatters for %T
parent
b38ed7c9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
12 deletions
+64
-12
format.c
src/format.c
+33
-12
format.h
src/format.h
+3
-0
test_format.c
src/test/test_format.c
+28
-0
No files found.
src/format.c
View file @
e03aea6d
...
@@ -225,26 +225,33 @@ format_b_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
...
@@ -225,26 +225,33 @@ format_b_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
FORMAT_b
(
client
,
ReqAcct
)
FORMAT_b
(
client
,
ReqAcct
)
FORMAT_b
(
backend
,
BereqAcct
)
FORMAT_b
(
backend
,
BereqAcct
)
static
void
format_DT
(
tx_t
*
tx
,
vre_t
*
time_re
,
int
m
,
char
**
s
,
size_t
*
len
)
{
char
*
t
;
double
d
;
char
*
f
=
get_hdr
(
tx
,
SLT_Timestamp
,
time_re
);
t
=
get_fld
(
f
,
1
);
errno
=
0
;
d
=
strtod
(
t
,
NULL
);
if
(
errno
!=
0
)
scratch
[
0
]
=
'\0'
;
else
sprintf
(
scratch
,
"%d"
,
(
int
)
(
d
*
m
));
*
s
=
scratch
;
*
len
=
strlen
(
scratch
);
}
#define FORMAT_D(dir, ts) \
#define FORMAT_D(dir, ts) \
void \
void \
format_D_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
format_D_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
size_t *len) \
size_t *len) \
{ \
{ \
char *t; \
double d; \
(void) name; \
(void) name; \
(void) tag; \
(void) tag; \
\
\
char *f = get_hdr(tx, SLT_Timestamp, time_##ts##_re); \
format_DT(tx, time_##ts##_re, 1e6, s, len); \
t = get_fld(f, 1); \
errno = 0; \
d = strtod(t, NULL); \
if (errno != 0) \
scratch[0] = '\0'; \
else \
sprintf(scratch, "%d", (int) (d * 1e6)); \
*s = scratch; \
*len = strlen(scratch); \
}
}
FORMAT_D
(
client
,
resp
)
FORMAT_D
(
client
,
resp
)
...
@@ -430,6 +437,20 @@ format_##ltr(tx_t *tx, char *name, enum VSL_tag_e tag, \
...
@@ -430,6 +437,20 @@ format_##ltr(tx_t *tx, char *name, enum VSL_tag_e tag, \
FORMAT_tim
(
t
,
"[%d/%b/%Y:%T %z]"
,
(
void
)
name
)
FORMAT_tim
(
t
,
"[%d/%b/%Y:%T %z]"
,
(
void
)
name
)
#define FORMAT_T(dir, ts) \
void \
format_T_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, char **s, \
size_t *len) \
{ \
(void) name; \
(void) tag; \
\
format_DT(tx, time_##ts##_re, 1, s, len); \
}
FORMAT_T
(
client
,
resp
)
FORMAT_T
(
backend
,
beresp_body
)
#if 0
#if 0
#define FORMAT_U(dir, dx) \
#define FORMAT_U(dir, dx) \
...
...
src/format.h
View file @
e03aea6d
...
@@ -88,3 +88,6 @@ formatter_f format_s_client;
...
@@ -88,3 +88,6 @@ formatter_f format_s_client;
formatter_f
format_s_backend
;
formatter_f
format_s_backend
;
formatter_f
format_t
;
formatter_f
format_t
;
formatter_f
format_T_client
;
formatter_f
format_T_backend
;
src/test/test_format.c
View file @
e03aea6d
...
@@ -829,6 +829,33 @@ static const char
...
@@ -829,6 +829,33 @@ static const char
return
NULL
;
return
NULL
;
}
}
static
const
char
*
test_format_T
(
void
)
{
tx_t
tx
;
logline_t
rec
;
chunk_t
chunk
;
char
*
str
;
size_t
len
;
printf
(
"... testing format_T_*()
\n
"
);
init_tx_rec_chunk
(
&
tx
,
&
rec
,
&
chunk
);
MAN
(
chunk
.
data
);
set_record_data
(
&
rec
,
&
chunk
,
TS_RESP_PAYLOAD
,
SLT_Timestamp
);
format_T_client
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"0"
)
==
0
);
MASSERT
(
len
==
1
);
set_record_data
(
&
rec
,
&
chunk
,
TS_BERESP_PAYLOAD
,
SLT_Timestamp
);
format_T_backend
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"0"
)
==
0
);
MASSERT
(
len
==
1
);
return
NULL
;
}
static
const
char
static
const
char
*
all_tests
(
void
)
*
all_tests
(
void
)
{
{
...
@@ -850,6 +877,7 @@ static const char
...
@@ -850,6 +877,7 @@ static const char
mu_run_test
(
test_format_r
);
mu_run_test
(
test_format_r
);
mu_run_test
(
test_format_s
);
mu_run_test
(
test_format_s
);
mu_run_test
(
test_format_t
);
mu_run_test
(
test_format_t
);
mu_run_test
(
test_format_T
);
return
NULL
;
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