Commit 92ef0fa9 authored by Geoff Simmons's avatar Geoff Simmons

Add the EXACT selector.

parent 99818aae
......@@ -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 ...
......
......@@ -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));
}
......
......@@ -40,6 +40,7 @@ struct match_data {
unsigned *indices;
unsigned limit;
unsigned n;
unsigned exact;
unsigned min;
unsigned max;
};
......
......@@ -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"
......
......@@ -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)
......
......@@ -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 ...
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment