22<html lang="en">
33 <head>
44 <meta charset="utf-8" />
5- <title>HAProxy version 3.5-dev4-73 - Configuration Manual</title>
5+ <title>HAProxy version 3.5-dev4-113 - Configuration Manual</title>
66 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
77 <link href="https://raw.githubusercontent.com/thomaspark/bootswatch/v3.3.7/cerulean/bootstrap.min.css" rel="stylesheet" />
88 <link href="../css/page.css?0.4.2-15" rel="stylesheet" />
21892189
21902190 <a class="list-group-item" href="#harden.reject-privileged-ports.tcp">harden.reject-privileged-ports.tcp</a>
21912191
2192+ <a class="list-group-item" href="#has_ctl">has_ctl</a>
2193+
21922194 <a class="list-group-item" href="#hash-balance-factor">hash-balance-factor</a>
21932195
21942196 <a class="list-group-item" href="#hash-key">hash-key</a>
49024904 You can use <strong>left</strong> and <strong>right</strong> arrow keys to navigate between chapters.<br>
49034905 </p>
49044906 <p class="text-right">
4905- <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2026/08/12 </b></small>
4907+ <small>Converted with <a href="https://github.com/cbonte/haproxy-dconv">haproxy-dconv</a> v<b>0.4.2-15</b> on <b>2026/08/13 </b></small>
49064908 </p>
49074909 </div>
49084910 <!-- /.sidebar -->
49134915 <div class="text-center">
49144916 <h1><a href="http://www.haproxy.org/" title="HAProxy"><img src="../img/HAProxyCommunityEdition_60px.png?0.4.2-15" /></a></h1>
49154917 <h2>Configuration Manual</h2>
4916- <p><strong>version 3.5-dev4-73 </strong></p>
4918+ <p><strong>version 3.5-dev4-113 </strong></p>
49174919 <p>
49184920 2026/08/06<br>
49194921
@@ -7261,6 +7263,9 @@ <h2 id="chapter-2.4" data-target="2.4"><small><a class="small" href="#2.4">2.4.<
72617263 in the features list reported by "haproxy -vv"
72627264 (which means a <name> appears after a '+')
72637265
7266+ - fips_mode() : returns true if the loaded SSL library is
7267+ currently running in FIPS mode.
7268+
72647269- openssl_version_atleast(<ver>) : returns true if the current openssl
72657270 version is at least as recent as <ver> otherwise
72667271 false.
@@ -25370,6 +25375,7 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2537025375<tr><td ><a href="#7-fix_is_valid">fix_is_valid</a></td><td >binary</td><td >boolean</td></tr>
2537125376<tr><td ><a href="#7-fix_tag_value">fix_tag_value(tag)</a></td><td >binary</td><td >binary</td></tr>
2537225377<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25378+ <tr><td ><a href="#7-has_ctl">has_ctl([mask])</a></td><td >binary</td><td >boolean</td></tr>
2537325379<tr><td ><a href="#7-hex">hex</a></td><td >binary</td><td >string</td></tr>
2537425380<tr><td ><a href="#7-hex2i">hex2i</a></td><td >binary</td><td >integer</td></tr>
2537525381<tr><td ><a href="#7-hmac">hmac(algorithm,key)</a></td><td >binary</td><td >binary</td></tr>
@@ -25389,8 +25395,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2538925395<tr><td ><a href="#7-ip.ttl">ip.ttl</a></td><td >binary</td><td >integer</td></tr>
2539025396<tr><td ><a href="#7-ip.ver">ip.ver</a></td><td >binary</td><td >integer</td></tr>
2539125397<tr><td ><a href="#7-ipmask">ipmask(mask4[,mask6])</a></td><td >address</td><td >address</td></tr>
25392- <tr><td ><a href="#7-json">json([input-code])</a></td><td >string</td><td >string</td></tr>
2539325398<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25399+ <tr><td ><a href="#7-json">json([input-code])</a></td><td >string</td><td >string</td></tr>
2539425400<tr><td ><a href="#7-json_query">json_query(json_path[,output_type])</a></td><td >string</td><td >_outtype_</td></tr>
2539525401<tr><td ><a href="#7-jwt_decrypt_jwk">jwt_decrypt_jwk(<jwk>)</a></td><td >string</td><td >binary</td></tr>
2539625402<tr><td ><a href="#7-jwt_decrypt_cert">jwt_decrypt_cert(<cert>)</a></td><td >string</td><td >binary</td></tr>
@@ -25410,8 +25416,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2541025416<tr><td ><a href="#7-mod">mod(value)</a></td><td >integer</td><td >integer</td></tr>
2541125417<tr><td ><a href="#7-mqtt_field_value">mqtt_field_value(pkt_type,fieldname_or_prop_ID)</a></td><td >binary</td><td >binary</td></tr>
2541225418<tr><td ><a href="#7-mqtt_is_valid">mqtt_is_valid</a></td><td >binary</td><td >boolean</td></tr>
25413- <tr><td ><a href="#7-ms_ltime">ms_ltime(format[,offset])</a></td><td >integer</td><td >string</td></tr>
2541425419<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25420+ <tr><td ><a href="#7-ms_ltime">ms_ltime(format[,offset])</a></td><td >integer</td><td >string</td></tr>
2541525421<tr><td ><a href="#7-ms_utime">ms_utime(format[,offset])</a></td><td >integer</td><td >string</td></tr>
2541625422<tr><td ><a href="#7-mul">mul(value)</a></td><td >integer</td><td >integer</td></tr>
2541725423<tr><td ><a href="#7-nbsrv">nbsrv</a></td><td >string</td><td >integer</td></tr>
@@ -25431,8 +25437,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2543125437<tr><td ><a href="#7-rfc7239_n2np">rfc7239_n2np</a></td><td >string</td><td >integer / str</td></tr>
2543225438<tr><td ><a href="#7-rfc7239_nn">rfc7239_nn</a></td><td >address/str</td><td >string</td></tr>
2543325439<tr><td ><a href="#7-rfc7239_np">rfc7239_np</a></td><td >integer/str</td><td >string</td></tr>
25434- <tr><td ><a href="#7-rtrim">rtrim(chars)</a></td><td >string</td><td >string</td></tr>
2543525440<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25441+ <tr><td ><a href="#7-rtrim">rtrim(chars)</a></td><td >string</td><td >string</td></tr>
2543625442<tr><td ><a href="#7-sdbm">sdbm([avalanche])</a></td><td >binary</td><td >integer</td></tr>
2543725443<tr><td ><a href="#7-secure_memcmp">secure_memcmp(var)</a></td><td >string</td><td >boolean</td></tr>
2543825444<tr><td ><a href="#7-set-var">set-var(var[,cond...])</a></td><td >any</td><td >same</td></tr>
@@ -25452,8 +25458,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2545225458<tr><td ><a href="#7-table_conn_rate">table_conn_rate([table])</a></td><td >any</td><td >integer</td></tr>
2545325459<tr><td ><a href="#7-table_expire">table_expire([table[,default_value]])</a></td><td >any</td><td >integer</td></tr>
2545425460<tr><td ><a href="#7-table_glitch_cnt">table_glitch_cnt([table])</a></td><td >any</td><td >integer</td></tr>
25455- <tr><td ><a href="#7-table_glitch_rate">table_glitch_rate([table])</a></td><td >any</td><td >integer</td></tr>
2545625461<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25462+ <tr><td ><a href="#7-table_glitch_rate">table_glitch_rate([table])</a></td><td >any</td><td >integer</td></tr>
2545725463<tr><td ><a href="#7-table_gpc">table_gpc(idx[,table])</a></td><td >any</td><td >integer</td></tr>
2545825464<tr><td ><a href="#7-table_gpc0">table_gpc0([table])</a></td><td >any</td><td >integer</td></tr>
2545925465<tr><td ><a href="#7-table_gpc0_rate">table_gpc0_rate([table])</a></td><td >any</td><td >integer</td></tr>
@@ -25473,8 +25479,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2547325479<tr><td ><a href="#7-table_inc_gpc0">table_inc_gpc0([table])</a></td><td >any</td><td >integer</td></tr>
2547425480<tr><td ><a href="#7-table_inc_gpc1">table_inc_gpc1([table])</a></td><td >any</td><td >integer</td></tr>
2547525481<tr><td ><a href="#7-table_kbytes_in">table_kbytes_in([table])</a></td><td >any</td><td >integer</td></tr>
25476- <tr><td ><a href="#7-table_kbytes_out">table_kbytes_out([table])</a></td><td >any</td><td >integer</td></tr>
2547725482<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25483+ <tr><td ><a href="#7-table_kbytes_out">table_kbytes_out([table])</a></td><td >any</td><td >integer</td></tr>
2547825484<tr><td ><a href="#7-table_server_id">table_server_id([table])</a></td><td >any</td><td >integer</td></tr>
2547925485<tr><td ><a href="#7-table_sess_cnt">table_sess_cnt([table])</a></td><td >any</td><td >integer</td></tr>
2548025486<tr><td ><a href="#7-table_sess_rate">table_sess_rate([table])</a></td><td >any</td><td >integer</td></tr>
@@ -25494,8 +25500,8 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2549425500<tr><td ><a href="#7-ub64dec">ub64dec</a></td><td >string</td><td >string</td></tr>
2549525501<tr><td ><a href="#7-ub64enc">ub64enc</a></td><td >string</td><td >string</td></tr>
2549625502<tr><td ><a href="#7-ungrpc">ungrpc(field_number[,field_type])</a></td><td >binary</td><td >binary / int</td></tr>
25497- <tr><td ><a href="#7-unset-var">unset-var(var)</a></td><td >any</td><td >same</td></tr>
2549825503<thead><tr><th>keyword</th><th>input type</th><th>output type</th></tr></thead>
25504+ <tr><td ><a href="#7-unset-var">unset-var(var)</a></td><td >any</td><td >same</td></tr>
2549925505<tr><td ><a href="#7-upper">upper</a></td><td >string</td><td >string</td></tr>
2550025506<tr><td ><a href="#7-url_dec">url_dec([in_form])</a></td><td >string</td><td >string</td></tr>
2550125507<tr><td ><a href="#7-url_enc">url_enc([enc_type])</a></td><td >string</td><td >string</td></tr>
@@ -25901,6 +25907,24 @@ <h3 id="chapter-7.3.1" data-target="7.3.1"><small><a class="small" href="#7.3.1"
2590125907tcp-request content set-var(txn.foo) req.payload(0,0),fix_tag_value(35)
2590225908tcp-request content set-var(txn.bar) req.payload(0,0),fix_tag_value(MsgType)
2590325909</code></pre>
25910+ </div><a class="anchor" name="has_ctl"></a><a class="anchor" name="7-has_ctl"></a><a class="anchor" name="7.3.1-has_ctl"></a><a class="anchor" name="has_ctl (Using ACLs and fetching samples)"></a><a class="anchor" name="has_ctl (Converters)"></a><div class="keyword"><b><a class="anchor" name="has_ctl"></a><a href="#7.3.1-has_ctl">has_ctl</a></b>(<span style="color: #008">[mask]</span>)</div><pre class="text">Checks the input binary sample for control characters as defined by the mask
25911+ argument. The mask is a 33-bit number (either decimal or hexadecimal prefixed
25912+ by "0x"), which has one bit set for each character to be detected in the 0x00
25913+ to 0x1F range, and bit 32 set to match the DEL character (0x7F). When no mask
25914+ is specified, the converter will use value 0x1FFFFFDFF, matching all control
25915+ characters except TAB (0x09), which is commonly used in HTTP headers. The
25916+ special mask "any" corresponds to 0x1FFFFFFFF which will match all control
25917+ characters, TAB included. The special mask "http" corresponds to 0x2401 and
25918+ will only cause the control characterss forbidden in HTTP header values to be
25919+ matched, which are CR (0x0D), LF (0x0A) and NUL (0x00).
25920+ </pre><div class="separator">
25921+ <span class="label label-success">Examples:</span>
25922+ <pre class="prettyprint">
25923+ <code><span class="comment"># reject presence of DEL, CR, LF, NUL characters in the referer header</span>
25924+ http-request deny if { req.fhdr(referer),has_ctl(0x100002401) }
25925+ <span class="comment"># reject presence of any control char but tab in any HTTP header value</span>
25926+ http-request deny if { req.hdr(),has_ctl }
25927+ </code></pre>
2590425928</div><a class="anchor" name="hex"></a><a class="anchor" name="7-hex"></a><a class="anchor" name="7.3.1-hex"></a><a class="anchor" name="hex (Using ACLs and fetching samples)"></a><a class="anchor" name="hex (Converters)"></a><div class="keyword"><b><a class="anchor" name="hex"></a><a href="#7.3.1-hex">hex</a></b></div><pre class="text">Converts a binary input sample to a hex string containing two hex digits per
2590525929input byte. It is used to log or transfer hex dumps of some binary input data
2590625930in a way that can be reliably transferred (e.g. an SSL ID can be copied in a
@@ -35734,7 +35758,7 @@ <h2 id="chapter-12.9" data-target="12.9"><small><a class="small" href="#12.9">12
3573435758 <br>
3573535759 <hr>
3573635760 <div class="text-right">
35737- HAProxy 3.5-dev4-73 – Configuration Manual<br>
35761+ HAProxy 3.5-dev4-113 – Configuration Manual<br>
3573835762 <small>, 2026/08/06</small>
3573935763 </div>
3574035764 </div>
0 commit comments