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
0a92f869
Commit
0a92f869
authored
Mar 31, 2015
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
implement and test formatters for %q
parent
daa6c31d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
17 deletions
+65
-17
format.c
src/format.c
+20
-17
format.h
src/format.h
+3
-0
test_format.c
src/test/test_format.c
+42
-0
No files found.
src/format.c
View file @
0a92f869
...
...
@@ -335,25 +335,28 @@ format_O_backend(tx_t *tx, char *name, enum VSL_tag_e tag, char **s,
format_IO_backend
(
tx
,
2
,
s
,
len
);
}
#if 0
#define FORMAT_q(dir, xurl) \
static void \
format_q_##dir(logline_t *ll, char *name, enum VSL_tag_e tag, \
char **s, size_t *len) \
{ \
(void) name; \
(void) tag; \
char *qs = NULL; \
qs = memchr(TAG(ll,SLT_##xurl).data, '?', TAG(ll,SLT_##xurl).len); \
if (qs != NULL) { \
*s = qs + 1; \
*len = TAG(ll,SLT_##xurl).len - (qs - TAG(ll,SLT_##xurl).data - 1); \
} \
#define FORMAT_q(dir, xurl) \
void \
format_q_##dir(tx_t *tx, char *name, enum VSL_tag_e tag, \
char **s, size_t *len) \
{ \
char *qs = NULL; \
(void) name; \
(void) tag; \
\
logline_t *rec = get_tag(tx, SLT_##xurl); \
get_payload(rec); \
qs = memchr(VSB_data(payload), '?', rec->len); \
if (qs != NULL) { \
*s = qs + 1; \
*len = rec->len - (*s - VSB_data(payload)); \
} \
}
FORMAT_q(client, RxURL)
FORMAT_q(backend, TxURL)
FORMAT_q
(
client
,
ReqURL
)
FORMAT_q
(
backend
,
BereqURL
)
#if 0
#define FORMAT_r(dir, dx, hx) \
static void \
...
...
src/format.h
View file @
0a92f869
...
...
@@ -74,3 +74,6 @@ formatter_f format_m_backend;
formatter_f
format_O_client
;
formatter_f
format_O_backend
;
formatter_f
format_q_client
;
formatter_f
format_q_backend
;
src/test/test_format.c
View file @
0a92f869
...
...
@@ -587,6 +587,47 @@ static const char
return
NULL
;
}
static
const
char
*
test_format_q
(
void
)
{
tx_t
tx
;
logline_t
rec
;
chunk_t
chunk
;
char
*
str
;
size_t
len
;
printf
(
"... testing format_q_*()
\n
"
);
init_tx_rec_chunk
(
&
tx
,
&
rec
,
&
chunk
);
MAN
(
chunk
.
data
);
#define URL_QUERY_PAYLOAD "/foo?bar=baz&quux=wilco"
set_record_data
(
&
rec
,
&
chunk
,
URL_QUERY_PAYLOAD
,
SLT_ReqURL
);
format_q_client
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"bar=baz&quux=wilco"
)
==
0
);
MASSERT
(
len
==
18
);
rec
.
tag
=
SLT_BereqURL
;
format_q_backend
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MASSERT
(
strcmp
(
str
,
"bar=baz&quux=wilco"
)
==
0
);
MASSERT
(
len
==
18
);
#define URL_PAYLOAD "/foo"
set_record_data
(
&
rec
,
&
chunk
,
URL_PAYLOAD
,
SLT_ReqURL
);
str
=
NULL
;
len
=
0
;
format_q_client
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MAZ
(
str
);
MAZ
(
len
);
rec
.
tag
=
SLT_BereqURL
;
format_q_backend
(
&
tx
,
NULL
,
SLT__Bogus
,
&
str
,
&
len
);
MAZ
(
str
);
MAZ
(
len
);
return
NULL
;
}
static
const
char
*
all_tests
(
void
)
{
...
...
@@ -604,6 +645,7 @@ static const char
mu_run_test
(
test_format_I
);
mu_run_test
(
test_format_m
);
mu_run_test
(
test_format_O
);
mu_run_test
(
test_format_q
);
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