Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-re2
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
Nils Goroll
libvmod-re2
Commits
a438c7b1
Commit
a438c7b1
authored
Mar 25, 2016
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename the .backref_named() method to .namedref()
parent
425244ba
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
36 additions
and
42 deletions
+36
-42
README.rst
README.rst
+5
-5
backref_fail.vtc
src/tests/backref_fail.vtc
+15
-19
backref_named.vtc
src/tests/backref_named.vtc
+10
-12
vmod_re2.c
src/vmod_re2.c
+3
-3
vmod_re2.vcc
src/vmod_re2.vcc
+3
-3
No files found.
README.rst
View file @
a438c7b1
...
@@ -32,8 +32,8 @@ CONTENTS
...
@@ -32,8 +32,8 @@ CONTENTS
* STRING namedref(PRIV_TASK, STRING, STRING)
* STRING namedref(PRIV_TASK, STRING, STRING)
* Object regex
* Object regex
* STRING regex.backref(INT, STRING)
* STRING regex.backref(INT, STRING)
* STRING regex.backref_named(STRING, STRING)
* BOOL regex.match(STRING)
* BOOL regex.match(STRING)
* STRING regex.namedref(STRING, STRING)
* STRING version()
* STRING version()
.. _obj_regex:
.. _obj_regex:
...
@@ -58,13 +58,13 @@ STRING regex.backref(INT, STRING)
...
@@ -58,13 +58,13 @@ STRING regex.backref(INT, STRING)
Prototype
Prototype
STRING regex.backref(INT ref, STRING fallback)
STRING regex.backref(INT ref, STRING fallback)
.. _func_regex.
backref_named
:
.. _func_regex.
namedref
:
STRING regex.
backref_named
(STRING, STRING)
STRING regex.
namedref
(STRING, STRING)
-------------------------------------
-----
-------------------------------------
Prototype
Prototype
STRING regex.
backref_named
(STRING name, STRING fallback)
STRING regex.
namedref
(STRING name, STRING fallback)
.. _func_match:
.. _func_match:
...
...
src/tests/backref_fail.vtc
View file @
a438c7b1
...
@@ -139,34 +139,30 @@ varnish v1 -vcl+backend {
...
@@ -139,34 +139,30 @@ varnish v1 -vcl+backend {
}
}
sub vcl_deliver {
sub vcl_deliver {
# Call to
backref_named
() before match()
# Call to
namedref
() before match()
set resp.http.nomatch = barbaz.
backref_named
("bar", "fallback");
set resp.http.nomatch = barbaz.
namedref
("bar", "fallback");
if (frobnitz.match(resp.http.foo)) {
if (frobnitz.match(resp.http.foo)) {
set resp.http.frob = "nitz";
set resp.http.frob = "nitz";
}
}
set resp.http.frob1 = frobnitz.backref_named("frob",
set resp.http.frob1 = frobnitz.namedref("frob", "fallback1");
"fallback1");
set resp.http.frob2 = frobnitz.namedref("nitz", "fallback2");
set resp.http.frob2 = frobnitz.backref_named("nitz",
"fallback2");
if (barbaz.match(resp.http.foo)) {
if (barbaz.match(resp.http.foo)) {
set resp.http.foo1 = barbaz.backref_named("bar",
set resp.http.foo1 = barbaz.namedref("bar", "error1");
"error1");
set resp.http.foo2 = barbaz.namedref("baz", "error2");
set resp.http.foo2 = barbaz.backref_named("baz",
"error2");
}
}
if (barbaz.match(resp.http.barf)) {
if (barbaz.match(resp.http.barf)) {
set resp.http.puke = "match";
set resp.http.puke = "match";
}
}
set resp.http.barf1 = barbaz.
backref_named
("bar", "fallback1");
set resp.http.barf1 = barbaz.
namedref
("bar", "fallback1");
set resp.http.barf2 = barbaz.
backref_named
("baz", "fallback2");
set resp.http.barf2 = barbaz.
namedref
("baz", "fallback2");
if (azbc.match("abc")) {
if (azbc.match("abc")) {
set resp.http.abc1 = azbc.
backref_named
("a", "error1");
set resp.http.abc1 = azbc.
namedref
("a", "error1");
set resp.http.abc2 = azbc.
backref_named
("z", "none");
set resp.http.abc2 = azbc.
namedref
("z", "none");
set resp.http.abc3 = azbc.
backref_named
("bc", "error3");
set resp.http.abc3 = azbc.
namedref
("bc", "error3");
} else {
} else {
set resp.http.abc = "fail";
set resp.http.abc = "fail";
}
}
...
@@ -174,16 +170,16 @@ varnish v1 -vcl+backend {
...
@@ -174,16 +170,16 @@ varnish v1 -vcl+backend {
if (never.match(resp.http.foo)) {
if (never.match(resp.http.foo)) {
set resp.http.never = "match";
set resp.http.never = "match";
}
}
set resp.http.never1 = never.
backref_named
("bar", "fallback1");
set resp.http.never1 = never.
namedref
("bar", "fallback1");
set resp.http.never2 = never.
backref_named
("baz", "fallback2");
set resp.http.never2 = never.
namedref
("baz", "fallback2");
}
}
}
}
logexpect l2 -v v1 -d 0 -g vxid -q "VCL_Error" {
logexpect l2 -v v1 -d 0 -g vxid -q "VCL_Error" {
expect 0 * Begin req
expect 0 * Begin req
expect * = VCL_Error "^vmod re2 error: backref 1, fallback .fallback.: backref called without prior match$"
expect * = VCL_Error "^vmod re2 error: backref 1, fallback .fallback.: backref called without prior match$"
expect * = VCL_Error "^vmod re2 error: never.
backref_named
.name=.bar., fallback=.fallback1..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
namedref
.name=.bar., fallback=.fallback1..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
backref_named
.name=.baz., fallback=.fallback2..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
namedref
.name=.baz., fallback=.fallback2..: never_capture is true for object never$"
expect * = End
expect * = End
} -start
} -start
...
...
src/tests/backref_named.vtc
View file @
a438c7b1
# looks like -*- vcl -*-
# looks like -*- vcl -*-
varnishtest "
backref_named
()"
varnishtest "
namedref
()"
varnish v1 -vcl {
varnish v1 -vcl {
import re2 from "${vmod_topbuild}/src/.libs/libvmod_re2.so";
import re2 from "${vmod_topbuild}/src/.libs/libvmod_re2.so";
...
@@ -21,21 +21,19 @@ varnish v1 -vcl {
...
@@ -21,21 +21,19 @@ varnish v1 -vcl {
set resp.http.num0 = barbaz.backref(0, "error0");
set resp.http.num0 = barbaz.backref(0, "error0");
set resp.http.num1 = barbaz.backref(1, "error1");
set resp.http.num1 = barbaz.backref(1, "error1");
set resp.http.num2 = barbaz.backref(2, "error2");
set resp.http.num2 = barbaz.backref(2, "error2");
set resp.http.bar
set resp.http.bar = barbaz.namedref("bar", "error_bar");
= barbaz.backref_named("bar", "error_bar");
set resp.http.baz = barbaz.namedref("baz", "error_baz");
set resp.http.baz
= barbaz.backref_named("baz", "error_baz");
set resp.http.quux
set resp.http.quux
= barbaz.
backref_named
("quux", "error_quux");
= barbaz.
namedref
("quux", "error_quux");
}
}
if (never.match("barbaz")) {
if (never.match("barbaz")) {
set resp.http.never = "match";
set resp.http.never = "match";
set resp.http.neverbar
set resp.http.neverbar
= never.
backref_named
("bar", "error_bar");
= never.
namedref
("bar", "error_bar");
set resp.http.neverbaz
set resp.http.neverbaz
= never.
backref_named
("baz", "error_baz");
= never.
namedref
("baz", "error_baz");
set resp.http.neverquux
set resp.http.neverquux
= never.
backref_named
("quux", "error_quux");
= never.
namedref
("quux", "error_quux");
}
}
if (re2.match("(?P<bar>bar)(?P<baz>baz)", "barbaz")) {
if (re2.match("(?P<bar>bar)(?P<baz>baz)", "barbaz")) {
...
@@ -90,9 +88,9 @@ client c1 {
...
@@ -90,9 +88,9 @@ client c1 {
logexpect l1 -v v1 -d 1 -g vxid -q "VCL_Error" {
logexpect l1 -v v1 -d 1 -g vxid -q "VCL_Error" {
expect 0 * Begin req
expect 0 * Begin req
expect * = VCL_Error "^vmod re2 error: namedref name=.quux., fallback=.error_quux.: no such named group$"
expect * = VCL_Error "^vmod re2 error: namedref name=.quux., fallback=.error_quux.: no such named group$"
expect * = VCL_Error "^vmod re2 error: never.
backref_named
.name=.bar., fallback=.error_bar..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
namedref
.name=.bar., fallback=.error_bar..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
backref_named
.name=.baz., fallback=.error_baz..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
namedref
.name=.baz., fallback=.error_baz..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
backref_named
.name=.quux., fallback=.error_quux..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: never.
namedref
.name=.quux., fallback=.error_quux..: never_capture is true for object never$"
expect * = VCL_Error "^vmod re2 error: namedref name=.quux., fallback=.error_quux.: no such named group$"
expect * = VCL_Error "^vmod re2 error: namedref name=.quux., fallback=.error_quux.: no such named group$"
expect * = VCL_Error "^vmod re2 error: re2.namedref.name=.bar., fallback=.error_bar..: never_capture was true in previous match$"
expect * = VCL_Error "^vmod re2 error: re2.namedref.name=.bar., fallback=.error_bar..: never_capture was true in previous match$"
expect * = VCL_Error "^vmod re2 error: re2.namedref.name=.baz., fallback=.error_baz..: never_capture was true in previous match$"
expect * = VCL_Error "^vmod re2 error: re2.namedref.name=.baz., fallback=.error_baz..: never_capture was true in previous match$"
...
...
src/vmod_re2.c
View file @
a438c7b1
...
@@ -341,11 +341,11 @@ vmod_regex_backref(VRT_CTX, struct vmod_re2_regex *re, VCL_INT refnum,
...
@@ -341,11 +341,11 @@ vmod_regex_backref(VRT_CTX, struct vmod_re2_regex *re, VCL_INT refnum,
#undef ERR_PREFIX
#undef ERR_PREFIX
#define ERR_PREFIX "%s.
backref_named
(name=\"%s\", fallback=\"%s\"): "
#define ERR_PREFIX "%s.
namedref
(name=\"%s\", fallback=\"%s\"): "
VCL_STRING
VCL_STRING
vmod_regex_
backref_named
(
VRT_CTX
,
struct
vmod_re2_regex
*
re
,
VCL_STRING
name
,
vmod_regex_
namedref
(
VRT_CTX
,
struct
vmod_re2_regex
*
re
,
VCL_STRING
name
,
VCL_STRING
fallback
)
VCL_STRING
fallback
)
{
{
void
*
groups
;
void
*
groups
;
...
...
src/vmod_re2.vcc
View file @
a438c7b1
...
@@ -17,10 +17,10 @@ $Object regex(STRING pattern, BOOL utf8=0, BOOL posix_syntax=0,
...
@@ -17,10 +17,10 @@ $Object regex(STRING pattern, BOOL utf8=0, BOOL posix_syntax=0,
$Method BOOL .match(STRING)
$Method BOOL .match(STRING)
$Method STRING .backref(INT ref, STRING fallback = "**BACKREF FAILED**")
$Method STRING .backref(INT ref, STRING fallback = "**BACKREF
METHOD
FAILED**")
$Method STRING .
backref_named
(STRING name,
$Method STRING .
namedref
(STRING name,
STRING fallback = "**BACKREF
FAILED**")
STRING fallback = "**NAMEDREF METHOD
FAILED**")
$Function BOOL match(PRIV_TASK, STRING pattern, STRING subject, BOOL utf8=0,
$Function BOOL match(PRIV_TASK, STRING pattern, STRING subject, BOOL utf8=0,
BOOL posix_syntax=0, BOOL longest_match=0,
BOOL posix_syntax=0, BOOL longest_match=0,
...
...
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