Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-re
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
libvmod-re
Commits
847df22b
Unverified
Commit
847df22b
authored
Jul 20, 2023
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor match_iter_f: prepare for reuse
parent
91464034
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
15 deletions
+25
-15
vmod_re.c
src/vmod_re.c
+25
-15
No files found.
src/vmod_re.c
View file @
847df22b
...
...
@@ -509,26 +509,15 @@ reip_free(struct re_iter_priv *reip, int ret)
return
(
ret
);
}
static
int
v_matchproto_
(
objiterate_f
)
match_iter_f
(
void
*
priv
,
unsigned
flush
,
const
void
*
ptr
,
ssize_t
len
)
static
int
reip_iter
(
struct
re_iter_priv
*
reip
,
unsigned
flush
,
const
void
*
ptr
,
ssize_t
len
)
{
struct
re_iter_priv
*
reip
;
VCL_STRING
subject
;
ov_t
*
ov
;
int
i
;
CAST_OBJ_NOTNULL
(
reip
,
priv
,
RE_ITER_PRIV_MAGIC
);
#ifdef ITERDBG
VSLb
(
reip
->
ctx
->
vsl
,
SLT_Debug
,
"flush=%u, s=%d, ptr=%.*s, len=%zd"
,
flush
,
reip
->
s
,
len
,
ptr
,
len
);
#endif
/* already have a match ? */
if
(
reip
->
s
>
PCRE2_ERROR_NOMATCH
)
{
AZ
(
reip
->
buf
);
return
(
0
);
}
CHECK_OBJ_NOTNULL
(
reip
,
RE_ITER_PRIV_MAGIC
);
if
(
reip
->
s
==
PCRE2_ERROR_NOMATCH
)
{
AZ
(
reip
->
startoffset
);
...
...
@@ -626,6 +615,27 @@ match_iter_f(void *priv, unsigned flush, const void *ptr, ssize_t len)
return
(
reip_free
(
reip
,
0
));
}
static
int
v_matchproto_
(
objiterate_f
)
match_iter_f
(
void
*
priv
,
unsigned
flush
,
const
void
*
ptr
,
ssize_t
len
)
{
struct
re_iter_priv
*
reip
;
CAST_OBJ_NOTNULL
(
reip
,
priv
,
RE_ITER_PRIV_MAGIC
);
#ifdef ITERDBG
VSLb
(
reip
->
ctx
->
vsl
,
SLT_Debug
,
"flush=%u, s=%d, ptr=%.*s, len=%zd"
,
flush
,
reip
->
s
,
len
,
ptr
,
len
);
#endif
/* already have a match ? */
if
(
reip
->
s
>
PCRE2_ERROR_NOMATCH
)
{
AZ
(
reip
->
buf
);
return
(
0
);
}
return
(
reip_iter
(
reip
,
flush
,
ptr
,
len
));
}
VCL_BOOL
vmod_regex_match_body
(
VRT_CTX
,
struct
vmod_re_regex
*
re
,
VCL_ENUM
which
,
VCL_INT
limit
,
VCL_INT
limit_recursion
)
...
...
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