This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 3289fb0b73 Removes matrix parameters from regex_remap plugin (#11571)
3289fb0b73 is described below

commit 3289fb0b73af1b84aaf434b67123bd1fe7fb0d10
Author: Leif Hedstrom <[email protected]>
AuthorDate: Thu Jul 18 21:40:49 2024 -0600

    Removes matrix parameters from regex_remap plugin (#11571)
---
 doc/admin-guide/plugins/regex_remap.en.rst |  6 ---
 plugins/regex_remap/regex_remap.cc         | 62 +++++++++---------------------
 2 files changed, 19 insertions(+), 49 deletions(-)

diff --git a/doc/admin-guide/plugins/regex_remap.en.rst 
b/doc/admin-guide/plugins/regex_remap.en.rst
index d5744ebe33..547309faca 100644
--- a/doc/admin-guide/plugins/regex_remap.en.rst
+++ b/doc/admin-guide/plugins/regex_remap.en.rst
@@ -70,7 +70,6 @@ be used to modify the plugin instance behavior ::
 
     @pparam=[no-]method              [default: off]
     @pparam=[no-]query-string        [default: on]
-    @pparam=[no-]matrix-parameters   [default: off]
     @pparam=[no-]host                [default: off]
 
 If you wish to match on the HTTP method used (e.g. "``GET``\ "),
@@ -92,11 +91,6 @@ again, to turn this off use the option 'no-query-string', 
e.g. ::
 
     ... @pparam=maps.reg @pparam=no-query-string
 
-You can also include the matrix parameters in the string, using
-the option 'matrix-parameters', e.g. ::
-
-    ... @pparam=maps.reg @pparam=matrix-parameters
-
 Finally, to match on the host as well, use the option 'host', e.g. ::
 
     ... @pparam=maps.reg @pparam=host
diff --git a/plugins/regex_remap/regex_remap.cc 
b/plugins/regex_remap/regex_remap.cc
index 350557bc2d..ca838c23ef 100644
--- a/plugins/regex_remap/regex_remap.cc
+++ b/plugins/regex_remap/regex_remap.cc
@@ -59,14 +59,14 @@ static const int MAX_SUBS  = 32; // No more than 32 
substitution variables in th
 
 // Substitutions other than regex matches
 enum ExtraSubstitutions {
-  SUB_HOST       = 11,
-  SUB_FROM_HOST  = 12,
-  SUB_TO_HOST    = 13,
-  SUB_PORT       = 14,
-  SUB_SCHEME     = 15,
-  SUB_PATH       = 16,
-  SUB_QUERY      = 17,
-  SUB_MATRIX     = 18,
+  SUB_HOST      = 11,
+  SUB_FROM_HOST = 12,
+  SUB_TO_HOST   = 13,
+  SUB_PORT      = 14,
+  SUB_SCHEME    = 15,
+  SUB_PATH      = 16,
+  SUB_QUERY     = 17,
+  // 18 is unused, used to be matrix parameters
   SUB_CLIENT_IP  = 19,
   SUB_LOWER_PATH = 20,
 };
@@ -87,24 +87,21 @@ struct UrlComponents {
     host   = TSUrlHostGet(bufp, url, &host_len);
     path   = TSUrlPathGet(bufp, url, &path_len);
     query  = TSUrlHttpQueryGet(bufp, url, &query_len);
-    matrix = TSUrlHttpParamsGet(bufp, url, &matrix_len);
     port   = TSUrlPortGet(bufp, url);
 
-    url_len = scheme_len + host_len + path_len + query_len + matrix_len + 32;
+    url_len = scheme_len + host_len + path_len + query_len + 32;
   }
 
   const char *scheme = nullptr;
   const char *host   = nullptr;
   const char *path   = nullptr;
   const char *query  = nullptr;
-  const char *matrix = nullptr;
   int         port   = 0;
 
   int scheme_len = 0;
   int host_len   = 0;
   int path_len   = 0;
   int query_len  = 0;
-  int matrix_len = 0;
 
   int url_len = 0; // Full length, of all components
 };
@@ -442,9 +439,6 @@ RemapRegex::compile(const char *&error, int &erroffset)
         case 'q':
           ix = SUB_QUERY;
           break;
-        case 'm':
-          ix = SUB_MATRIX;
-          break;
         case 'i':
           ix = SUB_CLIENT_IP;
           break;
@@ -515,9 +509,6 @@ RemapRegex::get_lengths(const int ovector[], int lengths[], 
TSRemapRequestInfo *
       case SUB_QUERY:
         len += req_url->query_len;
         break;
-      case SUB_MATRIX:
-        len += req_url->matrix_len;
-        break;
       case SUB_CLIENT_IP:
         len += INET6_ADDRSTRLEN;
         break;
@@ -583,10 +574,6 @@ RemapRegex::substitute(char dest[], const char *src, const 
int ovector[], const
           str = req_url->query;
           len = req_url->query_len;
           break;
-        case SUB_MATRIX:
-          str = req_url->matrix;
-          len = req_url->matrix_len;
-          break;
         case SUB_CLIENT_IP:
           str = ats_ip_ntop(TSHttpTxnClientAddrGet(txnp), buff, 
INET6_ADDRSTRLEN);
           len = strlen(str);
@@ -627,17 +614,16 @@ RemapRegex::substitute(char dest[], const char *src, 
const int ovector[], const
 struct RemapInstance {
   RemapInstance() : filename("unknown") {}
 
-  RemapRegex *first         = nullptr;
-  RemapRegex *last          = nullptr;
-  bool        pristine_url  = false;
-  bool        profile       = false;
-  bool        method        = false;
-  bool        query_string  = true;
-  bool        matrix_params = false;
-  bool        host          = false;
-  int         hits          = 0;
-  int         misses        = 0;
-  int         failures      = 0;
+  RemapRegex *first        = nullptr;
+  RemapRegex *last         = nullptr;
+  bool        pristine_url = false;
+  bool        profile      = false;
+  bool        method       = false;
+  bool        query_string = true;
+  bool        host         = false;
+  int         hits         = 0;
+  int         misses       = 0;
+  int         failures     = 0;
   std::string filename;
 };
 
@@ -689,10 +675,6 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char 
* /* errbuf ATS_UNUSE
       ri->query_string = true;
     } else if (strncmp(argv[i], "no-query-string", 15) == 0) {
       ri->query_string = false;
-    } else if (strncmp(argv[i], "matrix-parameters", 17) == 0) {
-      ri->matrix_params = true;
-    } else if (strncmp(argv[i], "no-matrix-parameters", 20) == 0) {
-      ri->matrix_params = false;
     } else if (strncmp(argv[i], "host", 4) == 0) {
       ri->host = true;
     } else if (strncmp(argv[i], "no-host", 7) == 0) {
@@ -957,12 +939,6 @@ TSRemapDoRemap(void *ih, TSHttpTxn txnp, 
TSRemapRequestInfo *rri)
     match_len += (req_url.path_len);
   }
 
-  if (ri->matrix_params && req_url.matrix && req_url.matrix_len > 0) {
-    *(match_buf + match_len) = ';';
-    memcpy(match_buf + match_len + 1, req_url.matrix, req_url.matrix_len);
-    match_len += (req_url.matrix_len + 1);
-  }
-
   if (ri->query_string && req_url.query && req_url.query_len > 0) {
     *(match_buf + match_len) = '?';
     memcpy(match_buf + match_len + 1, req_url.query, req_url.query_len);

Reply via email to