Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-selector
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-selector
Commits
92ef0fa9
Commit
92ef0fa9
authored
Jun 24, 2018
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add the EXACT selector.
parent
99818aae
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
94 additions
and
2 deletions
+94
-2
README.rst
README.rst
+1
-1
patricia.c
src/patricia.c
+5
-0
patricia.h
src/patricia.h
+1
-0
prefix.vtc
src/tests/prefix.vtc
+83
-0
vmod_selector.c
src/vmod_selector.c
+2
-0
vmod_selector.vcc
src/vmod_selector.vcc
+2
-1
No files found.
README.rst
View file @
92ef0fa9
...
...
@@ -161,7 +161,7 @@ INT xset.which(ENUM select)
::
INT xset.which(
ENUM {UNIQUE, FIRST, LAST, SHORTEST, LONGEST} select=UNIQUE
ENUM {UNIQUE,
EXACT,
FIRST, LAST, SHORTEST, LONGEST} select=UNIQUE
)
Returns ...
...
...
src/patricia.c
View file @
92ef0fa9
...
...
@@ -278,6 +278,10 @@ pt_search(const struct pt_y * const restrict y,
match
->
min
=
y
->
idx
;
if
(
y
->
idx
>
match
->
max
)
match
->
max
=
y
->
idx
;
if
(
*
c
==
'\0'
)
{
match
->
exact
=
y
->
idx
;
return
(
0
);
}
}
if
(
i
<
y
->
len
)
...
...
@@ -306,6 +310,7 @@ PT_Prefixes(const struct pt_y * const restrict root,
match
->
n
=
0
;
match
->
min
=
UINT_MAX
;
match
->
max
=
0
;
match
->
exact
=
UINT_MAX
;
return
(
pt_search
(
root
,
strings
,
(
unsigned
char
*
)
subject
,
match
));
}
...
...
src/patricia.h
View file @
92ef0fa9
...
...
@@ -40,6 +40,7 @@ struct match_data {
unsigned
*
indices
;
unsigned
limit
;
unsigned
n
;
unsigned
exact
;
unsigned
min
;
unsigned
max
;
};
...
...
src/tests/prefix.vtc
View file @
92ef0fa9
...
...
@@ -159,6 +159,7 @@ varnish v1 -vcl {
set resp.http.N = s.nmatches();
set resp.http.Which = s.which();
set resp.http.Which-Unique = s.which(select=UNIQUE);
set resp.http.Which-Exact = s.which(select=EXACT);
set resp.http.Which-First = s.which(select=FIRST);
set resp.http.Which-Last = s.which(select=LAST);
set resp.http.Which-Shortest = s.which(select=SHORTEST);
...
...
@@ -180,6 +181,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "4"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "4"
expect resp.http.Which-First == "4"
expect resp.http.Which-Last == "4"
expect resp.http.Which-Shortest == "4"
...
...
@@ -196,6 +198,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "3"
expect resp.http.Which-First == "3"
expect resp.http.Which-Last == "4"
expect resp.http.Which-Shortest == "4"
...
...
@@ -212,6 +215,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "2"
expect resp.http.Which-First == "2"
expect resp.http.Which-Last == "4"
expect resp.http.Which-Shortest == "4"
...
...
@@ -228,6 +232,7 @@ client c1 {
expect resp.http.N == "4"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "1"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "4"
expect resp.http.Which-Shortest == "4"
...
...
@@ -244,6 +249,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -260,6 +266,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -276,6 +283,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -292,6 +300,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -327,6 +336,7 @@ varnish v1 -vcl {
set resp.http.N = s.nmatches();
set resp.http.Which = s.which();
set resp.http.Which-Unique = s.which(select=UNIQUE);
set resp.http.Which-Exact = s.which(select=EXACT);
set resp.http.Which-First = s.which(select=FIRST);
set resp.http.Which-Last = s.which(select=LAST);
set resp.http.Which-Shortest = s.which(select=SHORTEST);
...
...
@@ -348,6 +358,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "1"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "1"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "1"
expect resp.http.Which-Shortest == resp.http.Which-First
...
...
@@ -364,6 +375,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "2"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "2"
expect resp.http.Which-Shortest == resp.http.Which-First
...
...
@@ -380,6 +392,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "3"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "3"
expect resp.http.Which-Shortest == resp.http.Which-First
...
...
@@ -396,6 +409,7 @@ client c1 {
expect resp.http.N == "4"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "4"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "4"
expect resp.http.Which-Shortest == resp.http.Which-First
...
...
@@ -428,6 +442,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -444,6 +459,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -460,6 +476,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -573,6 +590,7 @@ varnish v1 -vcl {
set resp.http.N = s.nmatches();
set resp.http.Which = s.which();
set resp.http.Which-Unique = s.which(select=UNIQUE);
set resp.http.Which-Exact = s.which(select=EXACT);
set resp.http.Which-First = s.which(select=FIRST);
set resp.http.Which-Last = s.which(select=LAST);
set resp.http.Which-Shortest = s.which(select=SHORTEST);
...
...
@@ -589,6 +607,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "3"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "5"
expect resp.http.Which-Shortest == "5"
...
...
@@ -601,6 +620,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "1"
expect resp.http.Which-First == "1"
expect resp.http.Which-Last == "5"
expect resp.http.Which-Shortest == "5"
...
...
@@ -613,6 +633,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "5"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "5"
expect resp.http.Which-First == "5"
expect resp.http.Which-Last == "5"
expect resp.http.Which-Shortest == "5"
...
...
@@ -625,6 +646,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "5"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "5"
expect resp.http.Which-Last == "5"
expect resp.http.Which-Shortest == "5"
...
...
@@ -637,6 +659,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -649,6 +672,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "10"
expect resp.http.Which-First == "10"
expect resp.http.Which-Last == "14"
expect resp.http.Which-Shortest == "13"
...
...
@@ -661,6 +685,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "14"
expect resp.http.Which-First == "13"
expect resp.http.Which-Last == "14"
expect resp.http.Which-Shortest == "13"
...
...
@@ -673,6 +698,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "13"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "13"
expect resp.http.Which-First == "13"
expect resp.http.Which-Last == "13"
expect resp.http.Which-Shortest == "13"
...
...
@@ -685,6 +711,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "13"
expect resp.http.Which-Last == "14"
expect resp.http.Which-Shortest == "13"
...
...
@@ -697,6 +724,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -709,6 +737,7 @@ client c1 {
expect resp.http.N == "4"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "17"
expect resp.http.Which-First == "17"
expect resp.http.Which-Last == "28"
expect resp.http.Which-Shortest == "27"
...
...
@@ -721,6 +750,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "28"
expect resp.http.Which-First == "20"
expect resp.http.Which-Last == "28"
expect resp.http.Which-Shortest == "27"
...
...
@@ -733,6 +763,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "20"
expect resp.http.Which-First == "20"
expect resp.http.Which-Last == "27"
expect resp.http.Which-Shortest == "27"
...
...
@@ -745,6 +776,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "27"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "27"
expect resp.http.Which-First == "27"
expect resp.http.Which-Last == "27"
expect resp.http.Which-Shortest == "27"
...
...
@@ -757,6 +789,7 @@ client c1 {
expect resp.http.N == "4"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "17"
expect resp.http.Which-Last == "28"
expect resp.http.Which-Shortest == "27"
...
...
@@ -769,6 +802,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -781,6 +815,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "39"
expect resp.http.Which-First == "38"
expect resp.http.Which-Last == "40"
expect resp.http.Which-Shortest == "38"
...
...
@@ -793,6 +828,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "40"
expect resp.http.Which-First == "38"
expect resp.http.Which-Last == "40"
expect resp.http.Which-Shortest == "38"
...
...
@@ -805,6 +841,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "38"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "38"
expect resp.http.Which-First == "38"
expect resp.http.Which-Last == "38"
expect resp.http.Which-Shortest == "38"
...
...
@@ -817,6 +854,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "33"
expect resp.http.Which-Last == "38"
expect resp.http.Which-Shortest == "38"
...
...
@@ -829,6 +867,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "38"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "38"
expect resp.http.Which-Last == "38"
expect resp.http.Which-Shortest == "38"
...
...
@@ -841,6 +880,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "38"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "38"
expect resp.http.Which-Last == "38"
expect resp.http.Which-Shortest == "38"
...
...
@@ -853,6 +893,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -865,6 +906,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "61"
expect resp.http.Which-First == "56"
expect resp.http.Which-Last == "62"
expect resp.http.Which-Shortest == "56"
...
...
@@ -877,6 +919,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "62"
expect resp.http.Which-First == "56"
expect resp.http.Which-Last == "62"
expect resp.http.Which-Shortest == "56"
...
...
@@ -889,6 +932,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "56"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "56"
expect resp.http.Which-First == "56"
expect resp.http.Which-Last == "56"
expect resp.http.Which-Shortest == "56"
...
...
@@ -901,6 +945,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "57"
expect resp.http.Which-First == "56"
expect resp.http.Which-Last == "58"
expect resp.http.Which-Shortest == "56"
...
...
@@ -913,6 +958,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "58"
expect resp.http.Which-First == "56"
expect resp.http.Which-Last == "58"
expect resp.http.Which-Shortest == "56"
...
...
@@ -925,6 +971,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "50"
expect resp.http.Which-Last == "56"
expect resp.http.Which-Shortest == "56"
...
...
@@ -937,6 +984,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -949,6 +997,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "72"
expect resp.http.Which-First == "67"
expect resp.http.Which-Last == "74"
expect resp.http.Which-Shortest == "74"
...
...
@@ -961,6 +1010,7 @@ client c1 {
expect resp.http.N == "2"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "67"
expect resp.http.Which-First == "67"
expect resp.http.Which-Last == "74"
expect resp.http.Which-Shortest == "74"
...
...
@@ -973,6 +1023,7 @@ client c1 {
expect resp.http.N == "1"
expect resp.http.Which == "74"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "74"
expect resp.http.Which-First == "74"
expect resp.http.Which-Last == "74"
expect resp.http.Which-Shortest == "74"
...
...
@@ -985,6 +1036,7 @@ client c1 {
expect resp.http.N == "3"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "65"
expect resp.http.Which-Last == "74"
expect resp.http.Which-Shortest == "74"
...
...
@@ -997,6 +1049,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1010,6 +1063,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1022,6 +1076,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1034,6 +1089,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1046,6 +1102,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1058,6 +1115,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1070,6 +1128,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1082,6 +1141,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1094,6 +1154,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1106,6 +1167,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1118,6 +1180,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1130,6 +1193,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1142,6 +1206,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1154,6 +1219,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1166,6 +1232,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1178,6 +1245,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1190,6 +1258,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1202,6 +1271,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1214,6 +1284,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1226,6 +1297,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1238,6 +1310,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1250,6 +1323,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1262,6 +1336,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1274,6 +1349,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1286,6 +1362,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1298,6 +1375,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1310,6 +1388,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1322,6 +1401,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1334,6 +1414,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1346,6 +1427,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
@@ -1358,6 +1440,7 @@ client c1 {
expect resp.http.N == "0"
expect resp.http.Which == "0"
expect resp.http.Which-Unique == resp.http.Which
expect resp.http.Which-Exact == "0"
expect resp.http.Which-First == "0"
expect resp.http.Which-Last == "0"
expect resp.http.Which-Shortest == "0"
...
...
src/vmod_selector.c
View file @
92ef0fa9
...
...
@@ -387,6 +387,8 @@ select(VRT_CTX, const struct match_data * const restrict match,
}
return
match
->
indices
[
0
];
}
if
(
selects
==
vmod_enum_EXACT
)
return
match
->
exact
;
if
(
selects
==
vmod_enum_FIRST
)
return
match
->
min
;
if
(
selects
==
vmod_enum_LAST
)
...
...
src/vmod_selector.vcc
View file @
92ef0fa9
...
...
@@ -94,7 +94,8 @@ Example::
# ...
}
$Method INT .which(ENUM {UNIQUE, FIRST, LAST, SHORTEST, LONGEST} select=UNIQUE)
$Method INT .which(ENUM {UNIQUE, EXACT, FIRST, LAST, SHORTEST, LONGEST}
select=UNIQUE)
Returns ...
...
...
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