tree 9607cabdc46ea8a6f7580e3ddbfc26b300cb76fe
parent 16032ab44a7179d3a2783a83d9992755d21a9873
author Christopher Faulet <cfaulet@haproxy.com> 1588657362 +0200
committer Christopher Faulet <cfaulet@haproxy.com> 1588669620 +0200

MINOR: http-htx: Support different methods to look for header names

It is now possible to use different matching methods to look for header names in
an HTTP message:

 * The exact match. It is the default method. http_find_header() uses this
   method. http_find_str_header() is an alias.

 * The prefix match. It evals the header names starting by a prefix.
   http_find_pfx_header() must be called to use this method.

 * The suffix match. It evals the header names ending by a suffix.
   http_find_sfx_header() must be called to use this method.

 * The substring match. It evals the header names containing a string.
   http_find_sub_header() must be called to use this method.

 * The regex match. It evals the header names matching a regular expression.
   http_match_header() must be called to use this method.
