diff --git a/parsers/tcp/tcp-request.go b/parsers/tcp/tcp-request.go index df92f18..c4d169d 100644 --- a/parsers/tcp/tcp-request.go +++ b/parsers/tcp/tcp-request.go @@ -25,7 +25,7 @@ import ( type Requests struct { Name string - Mode string // frontent, backend, listen + Mode string // frontent, backend, listen, defaults data []types.TCPType preComments []string // comments that appear before the actual line } diff --git a/section-parsers.go b/section-parsers.go index dd9cfd2..7164d6f 100644 --- a/section-parsers.go +++ b/section-parsers.go @@ -81,6 +81,7 @@ func (p *configParser) getDefaultParser() *Parsers { addParser(parser, &sequence, &parsers.Balance{}) addParser(parser, &sequence, &parsers.MaxConn{}) addParser(parser, &sequence, &simple.Number{Name: "backlog"}) + addParser(parser, &sequence, &parsers.ACL{}) addParser(parser, &sequence, &parsers.Log{}) addParser(parser, &sequence, &parsers.OptionHTTPLog{}) addParser(parser, &sequence, &parsers.EmailAlert{}) @@ -200,6 +201,10 @@ func (p *configParser) getDefaultParser() *Parsers { addParser(parser, &sequence, &parsers.Persist{}) addParser(parser, &sequence, &simple.Number{Name: "rate-limit sessions"}) addParser(parser, &sequence, &simple.Number{Name: "hash-balance-factor"}) + addParser(parser, &sequence, &http.Requests{Mode: "defaults"}) + addParser(parser, &sequence, &tcp.Requests{Mode: "defaults"}) + addParser(parser, &sequence, &http.Responses{Mode: "defaults"}) + addParser(parser, &sequence, &http.AfterResponses{}) // the ConfigSnippet must be at the end to parsers load order to ensure // the overloading of any option has been declared previously addParser(parser, &sequence, &parsers.ConfigSnippet{}) @@ -493,7 +498,7 @@ func (p *configParser) getFrontendParser() *Parsers { addParser(parser, &sequence, &parsers.CompressionTypeReq{}) addParser(parser, &sequence, &parsers.CompressionTypeRes{}) addParser(parser, &sequence, &parsers.CompressionOffload{}) - addParser(parser, &sequence, &tcp.Requests{}) + addParser(parser, &sequence, &tcp.Requests{Mode: "frontend"}) addParser(parser, &sequence, &stats.Stats{Mode: "frontend"}) addParser(parser, &sequence, &http.Requests{Mode: "frontend"}) addParser(parser, &sequence, &http.Redirect{}) @@ -750,7 +755,7 @@ func (p *configParser) getListenParser() *Parsers { addParser(parser, &sequence, &parsers.CompressionTypeRes{}) addParser(parser, &sequence, &parsers.CompressionOffload{}) addParser(parser, &sequence, &parsers.CompressionDirection{}) - addParser(parser, &sequence, &tcp.Requests{}) + addParser(parser, &sequence, &tcp.Requests{Mode: "listen"}) addParser(parser, &sequence, &stats.Stats{Mode: "listen"}) addParser(parser, &sequence, &parsers.HTTPReuse{}) addParser(parser, &sequence, &http.Requests{Mode: "listen"}) diff --git a/tests/configs/haproxy_generated.cfg.go b/tests/configs/haproxy_generated.cfg.go index dda7cc7..be616e7 100644 --- a/tests/configs/haproxy_generated.cfg.go +++ b/tests/configs/haproxy_generated.cfg.go @@ -1056,6 +1056,21 @@ cache test process-vary on defaults test + acl url_stats path_beg /stats + acl url_static path_beg -i /static /images /javascript /stylesheets + acl url_static path_end -i .jpg .gif .png .css .js + acl be_app_ok nbsrv(be_app) gt 0 + acl be_static_ok nbsrv(be_static) gt 0 + acl key req.hdr(X-Add-ACL-Key) -m found + acl add path /addacl + acl del path /delacl + acl myhost hdr(Host) -f myhost.lst + acl clear dst_port 80 + acl secure dst_port 8080 + acl login_page url_beg /login + acl logout url_beg /logout + acl uid_given url_reg /login?userid=[^&]+ + acl cookie_set hdr_sub(cookie) SEEN=1 balance roundrobin persist rdp-cookie cookie test @@ -1244,292 +1259,6 @@ defaults test option http-restrict-req-hdr-names preserve source 192.168.1.200 option originalto - http-error status 400 - http-error status 400 default-errorfiles - http-error status 400 errorfile /my/fancy/errorfile - http-error status 400 errorfiles myerror - http-error status 200 content-type "text/plain" string "My content" - http-error status 400 content-type "text/plain" lf-string "Hello, you are: %[src]" - http-error status 400 content-type "text/plain" file /my/fancy/response/file - http-error status 400 content-type "text/plain" lf-file /my/fancy/lof/format/response/file - http-error status 400 content-type "text/plain" string "My content" hdr X-value value - http-error status 400 content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value - http-check comment testcomment - http-check connect - http-check connect default - http-check connect port 8080 - http-check connect addr 8.8.8.8 - http-check connect send-proxy - http-check connect via-socks4 - http-check connect ssl - http-check connect sni haproxy.1wt.eu - http-check connect alpn h2,http/1.1 - http-check connect proto h2 - http-check connect linger - http-check connect comment testcomment - http-check connect port 443 addr 8.8.8.8 send-proxy via-socks4 ssl sni haproxy.1wt.eu alpn h2,http/1.1 linger proto h2 comment testcomment - http-check disable-on-404 - http-check expect status 200 - http-check expect min-recv 50 status 200 - http-check expect comment testcomment status 200 - http-check expect ok-status L7OK status 200 - http-check expect error-status L7RSP status 200 - http-check expect tout-status L7TOUT status 200 - http-check expect on-success \"my-log-format\" status 200 - http-check expect on-error \"my-log-format\" status 200 - http-check expect status-code \"500\" status 200 - http-check expect ! string SQL\\ Error - http-check expect ! rstatus ^5 - http-check expect rstring - http-check send meth GET - http-check send uri /health - http-check send ver \"HTTP/1.1\" - http-check send comment testcomment - http-check send meth GET uri /health ver \"HTTP/1.1\" hdr Host example.com hdr Accept-Encoding gzip body '{\"key\":\"value\"}' - http-check send uri-lf my-log-format body-lf 'my-log-format' - http-check send-state - http-check set-var(check.port) int(1234) - http-check set-var-fmt(check.port) int(1234) - http-check unset-var(txn.from) - tcp-check comment testcomment - tcp-check connect - tcp-check connect port 443 ssl - tcp-check connect port 110 linger - tcp-check connect port 143 - tcp-check expect string +PONG - tcp-check expect string role:master - tcp-check expect string +OK - tcp-check send-lf testfmt - tcp-check send-lf testfmt comment testcomment - tcp-check send-binary testhexstring - tcp-check send-binary testhexstring comment testcomment - tcp-check send-binary-lf testhexfmt - tcp-check send-binary-lf testhexfmt comment testcomment - tcp-check set-var(check.port) int(1234) - tcp-check expect string +OK\ POP3\ ready - tcp-check expect string *\ OK\ IMAP4\ ready - tcp-check send PING\r\n - tcp-check send PING\r\n comment testcomment - tcp-check send QUIT\r\n - tcp-check send QUIT\r\n comment testcomment - tcp-check send info\ replication\r\n - tcp-check set-var-fmt(check.name) "%H" - tcp-check set-var-fmt(txn.from) "addr=%[src]:%[src_port]" - tcp-check unset-var(txn.from) - stats auth admin1:AdMiN123 - stats enable - stats hide-version - stats show-legends - stats show-modules - stats maxconn 10 - stats realm HAProxy\\ Statistics - stats refresh 10s - stats scope . - stats show-desc Master node for Europe, Asia, Africa - stats show-node - stats show-node Europe-1 - stats uri /admin?stats - stats bind-process all - stats bind-process odd - stats bind-process even - stats bind-process 1 2 3 4 - stats bind-process 1-4 - -fcgi-app test - set-param name fmt if acl - set-param name fmt unless acl - set-param name fmt - option max-reqs 1024 - pass-header x-header unless acl - pass-header x-header if acl - pass-header x-header - log-stderr 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info debug - log-stderr 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info - log-stderr 127.0.0.1:1515 local2 - log-stderr global - -frontend test - acl url_stats path_beg /stats - acl url_static path_beg -i /static /images /javascript /stylesheets - acl url_static path_end -i .jpg .gif .png .css .js - acl be_app_ok nbsrv(be_app) gt 0 - acl be_static_ok nbsrv(be_static) gt 0 - acl key req.hdr(X-Add-ACL-Key) -m found - acl add path /addacl - acl del path /delacl - acl myhost hdr(Host) -f myhost.lst - acl clear dst_port 80 - acl secure dst_port 8080 - acl login_page url_beg /login - acl logout url_beg /logout - acl uid_given url_reg /login?userid=[^&]+ - acl cookie_set hdr_sub(cookie) SEEN=1 - bind :80,:443 - bind 10.0.0.1:10080,10.0.0.1:10443 - bind /var/run/ssl-frontend.sock user root mode 600 accept-proxy - bind :80 - bind :443 ssl crt /etc/haproxy/site.pem - bind :443 ssl crt /etc/haproxy/site.pem alpn h2,http/1.1 - bind :::443 v4v6 ssl crt /etc/haproxy/site.pem alpn h2,http/1.1 - bind ipv6@:80 - bind ipv4@public_ssl:443 ssl crt /etc/haproxy/site.pem - bind unix@ssl-frontend.sock user root mode 600 accept-proxy - bind :443 accept-netscaler-cip 1234 - bind :443 accept-proxy - bind :443 allow-0rtt - bind :443 alpn h2 - bind :443 alpn http/1.1 - bind :443 alpn h2,http/1.1 - bind :443 backlog test - bind :443 curves ECDH_ECDSA,ECDHE_ECDSA,ECDH_RSA,ECDHE_RSA,ECDH_anon - bind :443 ecdhe ECDH_ECDSA,ECDHE_ECDSA,ECDH_RSA,ECDHE_RSA,ECDH_anon - bind :443 ca-file file.pem - bind :443 ca-ignore-err all - bind :443 ca-ignore-err 1234 - bind :443 ca-sign-file file.test - bind :443 ca-sign-pass passphrase - bind :443 ca-verify-file file.test - bind :443 ciphers ECDHE+aRSA+AES256+GCM+SHA384:ECDHE+aRSA+AES128+GCM+SHA256:ECDHE+aRSA+AES256+SHA384:ECDHE+aRSA+AES128+SHA256:ECDHE+aRSA+RC4+SHA:ECDHE+aRSA+AES256+SHA:ECDHE+aRSA+AES128+SHA:AES256+GCM+SHA384:AES128+GCM+SHA256:AES128+SHA256:AES256+SHA256:DHE+aRSA+AES128+SHA:RC4+SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS - bind :443 ciphersuites TODO - bind :443 client-sigalgs value - bind :443 crl-file file.test - bind :443 crt example.pem - bind :443 crt-ignore-err all - bind :443 crt-ignore-err 404,410 - bind :443 crt-list cert1.pem - bind :443 defer-accept - bind :443 expose-fd listeners - bind :443 force-sslv3 - bind :443 force-tlsv10 - bind :443 force-tlsv11 - bind :443 force-tlsv12 - bind :443 force-tlsv13 - bind :443 generate-certificates - bind :443 gid users - bind :443 group group - bind :443 id 1 - bind :443 interface eth0 - bind :443 interface eth1 - bind :443 interface pppoe-wan - bind :443 level user - bind :443 level opeerator - bind :443 level admin - bind :443 severity-output none - bind :443 severity-output number - bind :443 severity-output string - bind :443 maxconn 1024 - bind :443 mode TODO - bind :443 mss 1460 - bind :443 mss -1460 - bind :443 name sockets - bind :443 namespace example - bind :443 nice 0 - bind :443 nice 1024 - bind :443 nice -1024 - bind :443 no-alpn - bind :443 no-ca-names - bind :443 no-sslv3 - bind :443 no-tls-tickets - bind :443 no-tlsv10 - bind :443 no-tlsv11 - bind :443 no-tlsv12 - bind :443 no-tlsv13 - bind :443 npn http/1.0 - bind :443 npn http/1.1 - bind :443 npn http/1.0,http/1.1 - bind :443 ocsp-update off - bind :443 ocsp-update on - bind :443 prefer-client-ciphers - bind :443 process all - bind :443 process odd - bind :443 process even - bind :443 process 1-4 - bind :443 proto h2 - bind :443 sigalgs value - bind :443 ssl - bind :443 ssl-max-ver SSLv3 - bind :443 ssl-max-ver TLSv1.0 - bind :443 ssl-max-ver TLSv1.1 - bind :443 ssl-max-ver TLSv1.2 - bind :443 ssl-max-ver TLSv1.3 - bind :443 ssl-min-ver SSLv3 - bind :443 ssl-min-ver TLSv1.0 - bind :443 ssl-min-ver TLSv1.1 - bind :443 ssl-min-ver TLSv1.2 - bind :443 ssl-min-ver TLSv1.3 - bind :443 strict-sni - bind :443 tcp-ut 30s - bind :443 tfo - bind :443 thread all - bind :443 thread odd - bind :443 thread even - bind :443 thread 1 - bind :443 thread 1-1 - bind :443 thread 1/all - bind :443 thread 1/odd - bind :443 thread 1/even - bind :443 thread 1/1 - bind :443 thread 1/1-1 - bind :443 tls-ticket-keys /tmp/tls_ticket_keys - bind :443 transparent - bind :443 v4v6 - bind :443 v6only - bind :443 uid 65534 - bind :443 user web1 - bind :443 verify none - bind :443 verify optional - bind :443 verify required - bind :443 quic-cc-algo cubic - bind :443 quic-cc-algo newreno - bind :443 quic-force-retry - bind :443 quic-socket connection - bind :443 quic-socket listener - bind :443 nbconn 1 - bind :443 nbconn +2 - bind-process all - email-alert from admin@example.com - email-alert to a@z,x@y - email-alert level warning - email-alert mailers local-mailers - email-alert myhostname srv01.example.com - email-alert to support@example.com - email-alert to "a@b, c@d" - errorfile 400 /etc/haproxy/errorfiles/400badreq.http - errorfile 408 /dev/null # work around Chrome pre-connect bug - errorfile 403 /etc/haproxy/errorfiles/403forbid.http - errorfile 503 /etc/haproxy/errorfiles/503sorry.http - errorloc302 400 http://www.myawesomesite.com/error_page - errorloc303 400 http://www.myawesomesite.com/error_page - errorfiles errors_section 400 - errorfiles errors_section 400 401 500 - errorfiles errors_section - log global - no log - log stdout format short daemon # send log to systemd - log stdout format raw daemon # send everything to stdout - log stderr format raw daemon notice # send important events to stderr - log 127.0.0.1:514 local0 notice # only send important events - log 127.0.0.1:514 local0 notice notice # same but limit output level - log 127.0.0.1:1515 len 8192 format rfc5424 local2 info - log 127.0.0.1:1515 sample 1:2 local0 - log 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info - log 127.0.0.1:1515 format rfc5424 sample 1,2-5:6 local2 info - log 127.0.0.1:1515 format rfc5424 sample 1-5:6 local2 - log 127.0.0.1:1515 sample 1:6 local2 - option forwardfor - option httplog - stick-table type ip size 1m expire 5m store gpc0,conn_rate(30s) - use_backend test if TRUE - use_backend test if TRUE # deny - use_backend test # deny - unique-id-format %{+X}o_%ci:%cp_%fi:%fp_%Ts_%rt:%pid - unique-id-header X-Unique-ID - monitor-uri /haproxy_test - monitor fail if no_db01 no_db02 - declare capture request len 1 - declare capture response len 2 - option http-restrict-req-hdr-names preserve - option originalto http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] if value http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] http-request add-acl(map.lst) [src] @@ -1703,7 +1432,6 @@ frontend test http-request set-bc-tos 10 http-request set-fc-mark 0 http-request set-fc-tos 0xff if TRUE - http-request capture req.cook_cnt(FirstVisit),bool len 10 http-request add-header Authorization Basic\ eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz http-request add-header Authorisation "Basic eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz" http-request return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } @@ -1812,7 +1540,6 @@ frontend test http-response set-bandwidth-limit my-limit limit 1m http-response set-fc-mark 2000 http-response set-fc-tos 200 - http-response capture res.hdr(Server) id 0 http-response return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } http-response return status 200 content-type "text/plain" string "My content" unless { var(txn.myip) -m found } http-response return content-type "text/plain" string "My content" if { var(txn.myip) -m found } @@ -1877,6 +1604,68 @@ frontend test http-error status 400 content-type "text/plain" lf-file /my/fancy/lof/format/response/file http-error status 400 content-type "text/plain" string "My content" hdr X-value value http-error status 400 content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value + http-check comment testcomment + http-check connect + http-check connect default + http-check connect port 8080 + http-check connect addr 8.8.8.8 + http-check connect send-proxy + http-check connect via-socks4 + http-check connect ssl + http-check connect sni haproxy.1wt.eu + http-check connect alpn h2,http/1.1 + http-check connect proto h2 + http-check connect linger + http-check connect comment testcomment + http-check connect port 443 addr 8.8.8.8 send-proxy via-socks4 ssl sni haproxy.1wt.eu alpn h2,http/1.1 linger proto h2 comment testcomment + http-check disable-on-404 + http-check expect status 200 + http-check expect min-recv 50 status 200 + http-check expect comment testcomment status 200 + http-check expect ok-status L7OK status 200 + http-check expect error-status L7RSP status 200 + http-check expect tout-status L7TOUT status 200 + http-check expect on-success \"my-log-format\" status 200 + http-check expect on-error \"my-log-format\" status 200 + http-check expect status-code \"500\" status 200 + http-check expect ! string SQL\\ Error + http-check expect ! rstatus ^5 + http-check expect rstring + http-check send meth GET + http-check send uri /health + http-check send ver \"HTTP/1.1\" + http-check send comment testcomment + http-check send meth GET uri /health ver \"HTTP/1.1\" hdr Host example.com hdr Accept-Encoding gzip body '{\"key\":\"value\"}' + http-check send uri-lf my-log-format body-lf 'my-log-format' + http-check send-state + http-check set-var(check.port) int(1234) + http-check set-var-fmt(check.port) int(1234) + http-check unset-var(txn.from) + tcp-check comment testcomment + tcp-check connect + tcp-check connect port 443 ssl + tcp-check connect port 110 linger + tcp-check connect port 143 + tcp-check expect string +PONG + tcp-check expect string role:master + tcp-check expect string +OK + tcp-check send-lf testfmt + tcp-check send-lf testfmt comment testcomment + tcp-check send-binary testhexstring + tcp-check send-binary testhexstring comment testcomment + tcp-check send-binary-lf testhexfmt + tcp-check send-binary-lf testhexfmt comment testcomment + tcp-check set-var(check.port) int(1234) + tcp-check expect string +OK\ POP3\ ready + tcp-check expect string *\ OK\ IMAP4\ ready + tcp-check send PING\r\n + tcp-check send PING\r\n comment testcomment + tcp-check send QUIT\r\n + tcp-check send QUIT\r\n comment testcomment + tcp-check send info\ replication\r\n + tcp-check set-var-fmt(check.name) "%H" + tcp-check set-var-fmt(txn.from) "addr=%[src]:%[src_port]" + tcp-check unset-var(txn.from) tcp-request content accept tcp-request content accept if !HTTP tcp-request content reject @@ -2049,34 +1838,6 @@ frontend test tcp-request content set-bc-tos 0xff if some_check tcp-request content set-fc-mark 0xffffffff tcp-request content set-fc-tos 100 - tcp-response content lua.foo - tcp-response content lua.foo param if !HTTP - tcp-response content lua.foo param param1 - tcp-response content set-dst dest - tcp-response content unset-var(sess.my_var) - tcp-response content set-bandwidth-limit my-limit - tcp-response content set-bandwidth-limit my-limit limit 1m period 10s - tcp-response content set-bandwidth-limit my-limit period 10s - tcp-response content set-bandwidth-limit my-limit limit 1m - tcp-response content set-log-level silent - tcp-response content set-log-level silent if FALSE - tcp-response content set-mark 20 - tcp-response content set-mark 0x1Ab if FALSE - tcp-response content set-tos 0 if FALSE - tcp-response content set-tos 0 - tcp-response content set-nice 0 if FALSE - tcp-response content set-nice 0 - tcp-response content close - tcp-response content close if !HTTP - tcp-response content sc-inc-gpc(1,2) - tcp-response content sc-inc-gpc(1,2) if is-error - tcp-response content sc-inc-gpc0(2) - tcp-response content sc-inc-gpc0(2) if is-error - tcp-response content sc-inc-gpc1(2) - tcp-response content sc-inc-gpc1(2) if is-error - tcp-response content set-fc-mark 123456 - tcp-response content set-fc-tos 0x02 - redirect prefix http://www.bar.com code 301 if { hdr(host) -i foo.com } stats auth admin1:AdMiN123 stats enable stats hide-version @@ -2095,115 +1856,876 @@ frontend test stats bind-process even stats bind-process 1 2 3 4 stats bind-process 1-4 - stats admin if LOCALHOST - -log-forward test - dgram-bind :80,:443 - dgram-bind 10.0.0.1:10080,10.0.0.1:10443 - dgram-bind :443 interface eth0 - dgram-bind :443 interface eth1 - dgram-bind :443 interface pppoe-wan - dgram-bind :443 namespace example - dgram-bind :443 transparent -mailers test - mailer smtp1 192.168.0.1:587 - mailer smtp1 192.168.0.1:587 # just some comment +fcgi-app test + set-param name fmt if acl + set-param name fmt unless acl + set-param name fmt + option max-reqs 1024 + pass-header x-header unless acl + pass-header x-header if acl + pass-header x-header + log-stderr 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info debug + log-stderr 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info + log-stderr 127.0.0.1:1515 local2 + log-stderr global -peers test - default-server addr 127.0.0.1 - default-server addr ::1 - default-server agent-check - default-server agent-send name - default-server agent-inter 1000ms - default-server agent-addr 127.0.0.1 - default-server agent-addr site.com - default-server agent-port 1 - default-server agent-port 65535 - default-server allow-0rtt - default-server alpn h2 - default-server alpn http/1.1 - default-server alpn h2,http/1.1 - default-server backup - default-server ca-file cert.crt - default-server check - default-server check-send-proxy - default-server check-alpn http/1.0 - default-server check-alpn http/1.1,http/1.0 - default-server check-proto h2 - default-server check-ssl - default-server check-via-socks4 - default-server ciphers ECDHE-RSA-AES128-GCM-SHA256 - default-server ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS - default-server ciphersuites ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS - default-server cookie value - default-server crl-file file.pem - default-server crt cert.pem - default-server disabled - default-server enabled - default-server error-limit 50 - default-server fall 30 - default-server fall 1 rise 2 inter 3s port 4444 - default-server force-sslv3 - default-server force-tlsv10 - default-server force-tlsv11 - default-server force-tlsv12 - default-server force-tlsv13 - default-server init-addr last,libc,none - default-server init-addr last,libc,none,127.0.0.1 - default-server inter 1500ms - default-server inter 1000 weight 13 - default-server fastinter 2500ms - default-server fastinter unknown - default-server downinter 3500ms - default-server log-proto legacy - default-server log-proto octet-count - default-server maxconn 1 - default-server maxconn 50 - default-server maxqueue 0 - default-server maxqueue 1000 - default-server max-reuse -1 - default-server max-reuse 0 - default-server max-reuse 1 - default-server minconn 1 - default-server minconn 50 - default-server namespace test - default-server no-agent-check - default-server no-backup - default-server no-check - default-server no-check-ssl - default-server no-send-proxy-v2 - default-server no-send-proxy-v2-ssl - default-server no-send-proxy-v2-ssl-cn - default-server no-ssl - default-server no-ssl-reuse - default-server no-sslv3 - default-server no-tls-tickets - default-server no-tlsv10 - default-server no-tlsv11 - default-server no-tlsv12 - default-server no-tlsv13 - default-server no-verifyhost - default-server no-tfo - default-server non-stick - default-server npn http/1.1,http/1.0 - default-server observe layer4 - default-server observe layer7 - default-server on-error fastinter - default-server on-error fail-check - default-server on-error sudden-death - default-server on-error mark-down - default-server on-marked-down shutdown-sessions - default-server on-marked-up shutdown-backup-session - default-server pool-max-conn -1 - default-server pool-max-conn 0 - default-server pool-max-conn 100 - default-server pool-purge-delay 0 - default-server pool-purge-delay 5 - default-server pool-purge-delay 500 - default-server port 27015 - default-server port 27016 - default-server proto h2 +frontend test + acl url_stats path_beg /stats + acl url_static path_beg -i /static /images /javascript /stylesheets + acl url_static path_end -i .jpg .gif .png .css .js + acl be_app_ok nbsrv(be_app) gt 0 + acl be_static_ok nbsrv(be_static) gt 0 + acl key req.hdr(X-Add-ACL-Key) -m found + acl add path /addacl + acl del path /delacl + acl myhost hdr(Host) -f myhost.lst + acl clear dst_port 80 + acl secure dst_port 8080 + acl login_page url_beg /login + acl logout url_beg /logout + acl uid_given url_reg /login?userid=[^&]+ + acl cookie_set hdr_sub(cookie) SEEN=1 + bind :80,:443 + bind 10.0.0.1:10080,10.0.0.1:10443 + bind /var/run/ssl-frontend.sock user root mode 600 accept-proxy + bind :80 + bind :443 ssl crt /etc/haproxy/site.pem + bind :443 ssl crt /etc/haproxy/site.pem alpn h2,http/1.1 + bind :::443 v4v6 ssl crt /etc/haproxy/site.pem alpn h2,http/1.1 + bind ipv6@:80 + bind ipv4@public_ssl:443 ssl crt /etc/haproxy/site.pem + bind unix@ssl-frontend.sock user root mode 600 accept-proxy + bind :443 accept-netscaler-cip 1234 + bind :443 accept-proxy + bind :443 allow-0rtt + bind :443 alpn h2 + bind :443 alpn http/1.1 + bind :443 alpn h2,http/1.1 + bind :443 backlog test + bind :443 curves ECDH_ECDSA,ECDHE_ECDSA,ECDH_RSA,ECDHE_RSA,ECDH_anon + bind :443 ecdhe ECDH_ECDSA,ECDHE_ECDSA,ECDH_RSA,ECDHE_RSA,ECDH_anon + bind :443 ca-file file.pem + bind :443 ca-ignore-err all + bind :443 ca-ignore-err 1234 + bind :443 ca-sign-file file.test + bind :443 ca-sign-pass passphrase + bind :443 ca-verify-file file.test + bind :443 ciphers ECDHE+aRSA+AES256+GCM+SHA384:ECDHE+aRSA+AES128+GCM+SHA256:ECDHE+aRSA+AES256+SHA384:ECDHE+aRSA+AES128+SHA256:ECDHE+aRSA+RC4+SHA:ECDHE+aRSA+AES256+SHA:ECDHE+aRSA+AES128+SHA:AES256+GCM+SHA384:AES128+GCM+SHA256:AES128+SHA256:AES256+SHA256:DHE+aRSA+AES128+SHA:RC4+SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS + bind :443 ciphersuites TODO + bind :443 client-sigalgs value + bind :443 crl-file file.test + bind :443 crt example.pem + bind :443 crt-ignore-err all + bind :443 crt-ignore-err 404,410 + bind :443 crt-list cert1.pem + bind :443 defer-accept + bind :443 expose-fd listeners + bind :443 force-sslv3 + bind :443 force-tlsv10 + bind :443 force-tlsv11 + bind :443 force-tlsv12 + bind :443 force-tlsv13 + bind :443 generate-certificates + bind :443 gid users + bind :443 group group + bind :443 id 1 + bind :443 interface eth0 + bind :443 interface eth1 + bind :443 interface pppoe-wan + bind :443 level user + bind :443 level opeerator + bind :443 level admin + bind :443 severity-output none + bind :443 severity-output number + bind :443 severity-output string + bind :443 maxconn 1024 + bind :443 mode TODO + bind :443 mss 1460 + bind :443 mss -1460 + bind :443 name sockets + bind :443 namespace example + bind :443 nice 0 + bind :443 nice 1024 + bind :443 nice -1024 + bind :443 no-alpn + bind :443 no-ca-names + bind :443 no-sslv3 + bind :443 no-tls-tickets + bind :443 no-tlsv10 + bind :443 no-tlsv11 + bind :443 no-tlsv12 + bind :443 no-tlsv13 + bind :443 npn http/1.0 + bind :443 npn http/1.1 + bind :443 npn http/1.0,http/1.1 + bind :443 ocsp-update off + bind :443 ocsp-update on + bind :443 prefer-client-ciphers + bind :443 process all + bind :443 process odd + bind :443 process even + bind :443 process 1-4 + bind :443 proto h2 + bind :443 sigalgs value + bind :443 ssl + bind :443 ssl-max-ver SSLv3 + bind :443 ssl-max-ver TLSv1.0 + bind :443 ssl-max-ver TLSv1.1 + bind :443 ssl-max-ver TLSv1.2 + bind :443 ssl-max-ver TLSv1.3 + bind :443 ssl-min-ver SSLv3 + bind :443 ssl-min-ver TLSv1.0 + bind :443 ssl-min-ver TLSv1.1 + bind :443 ssl-min-ver TLSv1.2 + bind :443 ssl-min-ver TLSv1.3 + bind :443 strict-sni + bind :443 tcp-ut 30s + bind :443 tfo + bind :443 thread all + bind :443 thread odd + bind :443 thread even + bind :443 thread 1 + bind :443 thread 1-1 + bind :443 thread 1/all + bind :443 thread 1/odd + bind :443 thread 1/even + bind :443 thread 1/1 + bind :443 thread 1/1-1 + bind :443 tls-ticket-keys /tmp/tls_ticket_keys + bind :443 transparent + bind :443 v4v6 + bind :443 v6only + bind :443 uid 65534 + bind :443 user web1 + bind :443 verify none + bind :443 verify optional + bind :443 verify required + bind :443 quic-cc-algo cubic + bind :443 quic-cc-algo newreno + bind :443 quic-force-retry + bind :443 quic-socket connection + bind :443 quic-socket listener + bind :443 nbconn 1 + bind :443 nbconn +2 + bind-process all + email-alert from admin@example.com + email-alert to a@z,x@y + email-alert level warning + email-alert mailers local-mailers + email-alert myhostname srv01.example.com + email-alert to support@example.com + email-alert to "a@b, c@d" + errorfile 400 /etc/haproxy/errorfiles/400badreq.http + errorfile 408 /dev/null # work around Chrome pre-connect bug + errorfile 403 /etc/haproxy/errorfiles/403forbid.http + errorfile 503 /etc/haproxy/errorfiles/503sorry.http + errorloc302 400 http://www.myawesomesite.com/error_page + errorloc303 400 http://www.myawesomesite.com/error_page + errorfiles errors_section 400 + errorfiles errors_section 400 401 500 + errorfiles errors_section + log global + no log + log stdout format short daemon # send log to systemd + log stdout format raw daemon # send everything to stdout + log stderr format raw daemon notice # send important events to stderr + log 127.0.0.1:514 local0 notice # only send important events + log 127.0.0.1:514 local0 notice notice # same but limit output level + log 127.0.0.1:1515 len 8192 format rfc5424 local2 info + log 127.0.0.1:1515 sample 1:2 local0 + log 127.0.0.1:1515 len 8192 format rfc5424 sample 1,2-5:6 local2 info + log 127.0.0.1:1515 format rfc5424 sample 1,2-5:6 local2 info + log 127.0.0.1:1515 format rfc5424 sample 1-5:6 local2 + log 127.0.0.1:1515 sample 1:6 local2 + option forwardfor + option httplog + stick-table type ip size 1m expire 5m store gpc0,conn_rate(30s) + use_backend test if TRUE + use_backend test if TRUE # deny + use_backend test # deny + unique-id-format %{+X}o_%ci:%cp_%fi:%fp_%Ts_%rt:%pid + unique-id-header X-Unique-ID + monitor-uri /haproxy_test + monitor fail if no_db01 no_db02 + declare capture request len 1 + declare capture response len 2 + option http-restrict-req-hdr-names preserve + option originalto + http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] if value + http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] + http-request add-acl(map.lst) [src] + http-request add-header X-value value + http-request cache-use cache-name + http-request cache-use cache-name if FALSE + http-request del-acl(map.lst) [src] + http-request allow + http-request auth + http-request del-header X-value + http-request del-header X-value if TRUE + http-request del-header X-value -m str if TRUE + http-request del-map(map.lst) %[src] if ! value + http-request del-map(map.lst) %[src] + http-request deny + http-request deny deny_status 400 + http-request deny if TRUE + http-request deny deny_status 400 if TRUE + http-request deny deny_status 400 content-type application/json if TRUE + http-request deny deny_status 400 content-type application/json + http-request deny deny_status 400 content-type application/json default-errorfiles + http-request deny deny_status 400 content-type application/json errorfile errors + http-request deny deny_status 400 content-type application/json string error if TRUE + http-request deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE + http-request deny deny_status 400 content-type application/json file /var/errors.file + http-request deny deny_status 400 content-type application/json lf-file /var/errors.file + http-request deny deny_status 400 content-type application/json string error hdr host google.com if TRUE + http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE + http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla + http-request disable-l7-retry + http-request disable-l7-retry if FALSE + http-request early-hint hint %[src] + http-request early-hint hint %[src] if FALSE + http-request early-hint if FALSE + http-request lua.foo + http-request lua.foo if FALSE + http-request lua.foo param + http-request lua.foo param param2 + http-request normalize-uri fragment-encode + http-request normalize-uri fragment-encode if TRUE + http-request normalize-uri fragment-strip + http-request normalize-uri fragment-strip if TRUE + http-request normalize-uri path-merge-slashes + http-request normalize-uri path-merge-slashes if TRUE + http-request normalize-uri path-strip-dot + http-request normalize-uri path-strip-dot if TRUE + http-request normalize-uri path-strip-dotdot + http-request normalize-uri path-strip-dotdot full + http-request normalize-uri path-strip-dotdot if TRUE + http-request normalize-uri path-strip-dotdot full if TRUE + http-request normalize-uri percent-decode-unreserved + http-request normalize-uri percent-decode-unreserved if TRUE + http-request normalize-uri percent-decode-unreserved strict + http-request normalize-uri percent-decode-unreserved strict if TRUE + http-request normalize-uri percent-to-uppercase + http-request normalize-uri percent-to-uppercase if TRUE + http-request normalize-uri percent-to-uppercase strict + http-request normalize-uri percent-to-uppercase strict if TRUE + http-request normalize-uri query-sort-by-name + http-request normalize-uri query-sort-by-name if TRUE + http-request redirect prefix https://mysite.com + http-request reject + http-request replace-header User-agent curl foo + http-request replace-path (.*) /foo + http-request replace-path (.*) /foo if TRUE + http-request replace-pathq (.*) /foo + http-request replace-pathq (.*) /foo if TRUE + http-request replace-uri ^http://(.*) https://1 + http-request replace-uri ^http://(.*) https://1 if FALSE + http-request replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 + http-request sc-add-gpc(1,2) 1 + http-request sc-add-gpc(1,2) 1 if is-error + http-request sc-inc-gpc(1,2) + http-request sc-inc-gpc(1,2) if FALSE + http-request sc-inc-gpc0(1) + http-request sc-inc-gpc0(1) if FALSE + http-request sc-inc-gpc1(1) + http-request sc-inc-gpc1(1) if FALSE + http-request sc-set-gpt(1,2) hdr(Host),lower if FALSE + http-request sc-set-gpt0(1) hdr(Host),lower + http-request sc-set-gpt0(1) 10 + http-request sc-set-gpt0(1) hdr(Host),lower if FALSE + http-request send-spoe-group engine group + http-request set-header X-value value + http-request set-log-level silent + http-request set-mark 20 + http-request set-mark 0x1Ab + http-request set-nice 0 + http-request set-nice 0 if FALSE + http-request set-method POST + http-request set-method POST if FALSE + http-request set-path /%[hdr(host)]%[path] + http-request set-pathq /%[hdr(host)]%[path] + http-request set-priority-class req.hdr(priority) + http-request set-priority-class req.hdr(priority) if FALSE + http-request set-priority-offset req.hdr(offset) + http-request set-priority-offset req.hdr(offset) if FALSE + http-request set-query %[query,regsub(%3D,=,g)] + http-request set-src hdr(src) + http-request set-src hdr(src) if FALSE + http-request set-src-port hdr(port) + http-request set-src-port hdr(port) if FALSE + http-request set-timeout server 20 + http-request set-timeout tunnel 20 + http-request set-timeout tunnel 20s if TRUE + http-request set-timeout server 20s if TRUE + http-request set-timeout client 20 + http-request set-timeout client 20s if TRUE + http-request set-tos 0 if FALSE + http-request set-tos 0 + http-request set-uri /%[hdr(host)]%[path] + http-request set-var(req.my_var) req.fhdr(user-agent),lower + http-request set-var-fmt(req.my_var) req.fhdr(user-agent),lower + http-request silent-drop + http-request silent-drop if FALSE + http-request strict-mode on + http-request strict-mode on if FALSE + http-request tarpit + http-request tarpit deny_status 400 + http-request tarpit if TRUE + http-request tarpit deny_status 400 if TRUE + http-request tarpit deny_status 400 content-type application/json if TRUE + http-request tarpit deny_status 400 content-type application/json + http-request tarpit deny_status 400 content-type application/json default-errorfiles + http-request tarpit deny_status 400 content-type application/json errorfile errors + http-request tarpit deny_status 400 content-type application/json string error if TRUE + http-request tarpit deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE + http-request tarpit deny_status 400 content-type application/json file /var/errors.file + http-request tarpit deny_status 400 content-type application/json lf-file /var/errors.file + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com if TRUE + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla + http-request track-sc0 src + http-request track-sc1 src + http-request track-sc2 src + http-request track-sc5 src + http-request track-sc5 src table a_table + http-request track-sc5 src table a_table if some_cond + http-request track-sc5 src if some_cond + http-request unset-var(req.my_var) + http-request unset-var(req.my_var) if FALSE + http-request wait-for-body time 20s + http-request wait-for-body time 20s if TRUE + http-request wait-for-body time 20s at-least 100k + http-request wait-for-body time 20s at-least 100k if TRUE + http-request wait-for-handshake + http-request wait-for-handshake if FALSE + http-request do-resolve(txn.myip,mydns) hdr(Host),lower + http-request do-resolve(txn.myip,mydns) hdr(Host),lower if { var(txn.myip) -m found } + http-request do-resolve(txn.myip,mydns) hdr(Host),lower unless { var(txn.myip) -m found } + http-request do-resolve(txn.myip,mydns,ipv4) hdr(Host),lower + http-request do-resolve(txn.myip,mydns,ipv6) hdr(Host),lower + http-request set-dst var(txn.myip) + http-request set-dst var(txn.myip) if { var(txn.myip) -m found } + http-request set-dst var(txn.myip) unless { var(txn.myip) -m found } + http-request set-dst-port hdr(x-port) + http-request set-dst-port hdr(x-port) if { var(txn.myip) -m found } + http-request set-dst-port hdr(x-port) unless { var(txn.myip) -m found } + http-request set-dst-port int(4000) + http-request return status 400 default-errorfiles if { var(txn.myip) -m found } + http-request return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } + http-request return status 400 errorfiles myerror if { var(txn.myip) -m found } + http-request redirect location /file.html if { var(txn.routecookie) -m found } !{ var(txn.pod),nbsrv -m found }:1] + http-request set-bandwidth-limit my-limit + http-request set-bandwidth-limit my-limit limit 1m period 10s + http-request set-bandwidth-limit my-limit period 10s + http-request set-bandwidth-limit my-limit limit 1m + http-request set-bc-mark 123 + http-request set-bc-mark 0xffffffff + http-request set-bc-mark hdr(port) if FALSE + http-request set-bc-tos 10 + http-request set-fc-mark 0 + http-request set-fc-tos 0xff if TRUE + http-request capture req.cook_cnt(FirstVisit),bool len 10 + http-request add-header Authorization Basic\ eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz + http-request add-header Authorisation "Basic eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz" + http-request return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } + http-request return status 200 content-type "text/plain" string "My content" unless { var(txn.myip) -m found } + http-request return content-type "text/plain" string "My content" if { var(txn.myip) -m found } + http-request return content-type 'text/plain' string 'My content' if { var(txn.myip) -m found } + http-request return content-type "text/plain" lf-string "Hello, you are: %[src]" if { var(txn.myip) -m found } + http-request return content-type "text/plain" file /my/fancy/response/file if { var(txn.myip) -m found } + http-request return content-type "text/plain" lf-file /my/fancy/lof/format/response/file if { var(txn.myip) -m found } + http-request return content-type "text/plain" string "My content" hdr X-value value if { var(txn.myip) -m found } + http-request return content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value if { var(txn.myip) -m found } + http-request return content-type "text/plain" lf-string "Hello, you are: %[src]" + http-request redirect location /file.html if { var(txn.routecookie) "ROUTEMP" }:1 + http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value + http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] + http-response add-acl(map.lst) [src] + http-response add-header X-value value + http-response del-acl(map.lst) [src] + http-response allow + http-response cache-store cache-name + http-response cache-store cache-name if FALSE + http-response del-header X-value + http-response del-map(map.lst) %[src] if ! value + http-response del-map(map.lst) %[src] + http-response deny + http-response deny deny_status 400 + http-response deny if TRUE + http-response deny deny_status 400 if TRUE + http-response deny deny_status 400 content-type application/json if TRUE + http-response deny deny_status 400 content-type application/json + http-response deny deny_status 400 content-type application/json default-errorfiles + http-response deny deny_status 400 content-type application/json errorfile errors + http-response deny deny_status 400 content-type application/json string error if TRUE + http-response deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE + http-response deny deny_status 400 content-type application/json file /var/errors.file + http-response deny deny_status 400 content-type application/json lf-file /var/errors.file + http-response deny deny_status 400 content-type application/json string error hdr host google.com if TRUE + http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE + http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla + http-response lua.foo + http-response lua.foo if FALSE + http-response lua.foo param + http-response lua.foo param param2 + http-response redirect prefix https://mysite.com + http-response replace-header User-agent curl foo + http-response replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 + http-response return status 400 default-errorfiles if { var(txn.myip) -m found } + http-response return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } + http-response return status 400 errorfiles myerror if { var(txn.myip) -m found } + http-response sc-add-gpc(1,2) 1 + http-response sc-add-gpc(1,2) 1 if is-error + http-response sc-inc-gpc(1,2) + http-response sc-inc-gpc(1,2) if FALSE + http-response sc-inc-gpc0(1) + http-response sc-inc-gpc0(1) if FALSE + http-response sc-inc-gpc1(1) + http-response sc-inc-gpc1(1) if FALSE + http-response sc-set-gpt(1,2) hdr(Host),lower if FALSE + http-response sc-set-gpt0(1) hdr(Host),lower + http-response sc-set-gpt0(1) 10 + http-response sc-set-gpt0(1) hdr(Host),lower if FALSE + http-response send-spoe-group engine group + http-response set-header X-value value + http-response set-log-level silent + http-response set-mark 20 + http-response set-mark 0x1Ab + http-response set-nice 0 + http-response set-nice 0 if FALSE + http-response set-status 503 + http-response set-timeout server 20 + http-response set-timeout tunnel 20 + http-response set-timeout tunnel 20s if TRUE + http-response set-timeout server 20s if TRUE + http-response set-timeout client 20 + http-response set-timeout client 20s if TRUE + http-response set-tos 0 if FALSE + http-response set-tos 0 + http-response set-var(req.my_var) res.fhdr(user-agent),lower + http-response set-var-fmt(req.my_var) res.fhdr(user-agent),lower + http-response silent-drop + http-response silent-drop if FALSE + http-response unset-var(req.my_var) + http-response unset-var(req.my_var) if FALSE + http-response track-sc0 src if FALSE + http-response track-sc0 src table tr if FALSE + http-response track-sc0 src + http-response track-sc1 src if FALSE + http-response track-sc1 src table tr if FALSE + http-response track-sc1 src + http-response track-sc2 src if FALSE + http-response track-sc2 src table tr if FALSE + http-response track-sc2 src + http-response track-sc5 src + http-response track-sc5 src table a_table + http-response track-sc5 src table a_table if some_cond + http-response track-sc5 src if some_cond + http-response strict-mode on + http-response strict-mode on if FALSE + http-response wait-for-body time 20s + http-response wait-for-body time 20s if TRUE + http-response wait-for-body time 20s at-least 100k + http-response wait-for-body time 20s at-least 100k if TRUE + http-response set-bandwidth-limit my-limit + http-response set-bandwidth-limit my-limit limit 1m period 10s + http-response set-bandwidth-limit my-limit period 10s + http-response set-bandwidth-limit my-limit limit 1m + http-response set-fc-mark 2000 + http-response set-fc-tos 200 + http-response capture res.hdr(Server) id 0 + http-response return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } + http-response return status 200 content-type "text/plain" string "My content" unless { var(txn.myip) -m found } + http-response return content-type "text/plain" string "My content" if { var(txn.myip) -m found } + http-response return content-type 'text/plain' string 'My content' if { var(txn.myip) -m found } + http-response return content-type "text/plain" lf-string "Hello, you are: %[src]" if { var(txn.myip) -m found } + http-response return content-type "text/plain" file /my/fancy/response/file if { var(txn.myip) -m found } + http-response return content-type "text/plain" lf-file /my/fancy/lof/format/response/file if { var(txn.myip) -m found } + http-response return content-type "text/plain" string "My content" hdr X-value value if { var(txn.myip) -m found } + http-response return content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value if { var(txn.myip) -m found } + http-response return content-type "text/plain" lf-string "Hello, you are: %[src]" + http-after-response allow + http-after-response allow if acl + http-after-response set-header Strict-Transport-Security \"max-age=31536000\" + http-after-response add-header X-Header \"foo=bar\" + http-after-response add-header X-Header \"foo=bar\" if acl + http-after-response add-header X-Header \"foo=bar\" unless acl + http-after-response allow unless acl + http-after-response del-header X-Value + http-after-response del-header X-Value -m GET + http-after-response del-header X-Value -m GET if acl + http-after-response del-header X-Value -m GET unless acl + http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 + http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 if acl + http-after-response replace-value Cache-control ^public$ private + http-after-response replace-value Cache-control ^public$ private if acl + http-after-response set-status 431 + http-after-response set-status 503 reason \"SlowDown\" + http-after-response set-status 500 reason \"ServiceUnavailable\" if acl + http-after-response set-status 500 reason \"ServiceUnavailable\" unless acl + http-after-response set-var(sess.last_redir) res.hdr(location) + http-after-response set-var(sess.last_redir) res.hdr(location) if acl + http-after-response set-var(sess.last_redir) res.hdr(location) unless acl + http-after-response strict-mode on + http-after-response strict-mode off + http-after-response unset-var(sess.last_redir) + http-after-response unset-var(sess.last_redir) if acl + http-after-response unset-var(sess.last_redir) unless acl + http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value + http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] + http-after-response del-acl(map.lst) [src] + http-after-response del-map(map.lst) %[src] if ! value + http-after-response del-map(map.lst) %[src] + http-after-response sc-add-gpc(1,2) 1 + http-after-response sc-add-gpc(1,2) 1 if is-error + http-after-response sc-inc-gpc(1,2) + http-after-response sc-inc-gpc(1,2) if is-error + http-after-response sc-inc-gpc0(1) + http-after-response sc-inc-gpc0(1) if FALSE + http-after-response sc-inc-gpc1(1) + http-after-response sc-inc-gpc1(1) if FALSE + http-after-response sc-set-gpt(1,2) 10 + http-after-response sc-set-gpt0(1) hdr(Host),lower + http-after-response sc-set-gpt0(1) 10 + http-after-response sc-set-gpt0(1) hdr(Host),lower if FALSE + http-error status 400 + http-error status 400 default-errorfiles + http-error status 400 errorfile /my/fancy/errorfile + http-error status 400 errorfiles myerror + http-error status 200 content-type "text/plain" string "My content" + http-error status 400 content-type "text/plain" lf-string "Hello, you are: %[src]" + http-error status 400 content-type "text/plain" file /my/fancy/response/file + http-error status 400 content-type "text/plain" lf-file /my/fancy/lof/format/response/file + http-error status 400 content-type "text/plain" string "My content" hdr X-value value + http-error status 400 content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value + tcp-request content accept + tcp-request content accept if !HTTP + tcp-request content reject + tcp-request content reject if !HTTP + tcp-request content capture req.payload(0,6) len 6 + tcp-request content capture req.payload(0,6) len 6 if !HTTP + tcp-request content do-resolve(txn.myip,mydns,ipv6) capture.req.hdr(0),lower + tcp-request content do-resolve(txn.myip,mydns) capture.req.hdr(0),lower + tcp-request content set-priority-class int(1) + tcp-request content set-priority-class int(1) if some_check + tcp-request content set-priority-offset int(10) + tcp-request content set-priority-offset int(10) if some_check + tcp-request content track-sc0 src + tcp-request content track-sc0 src if some_check + tcp-request content track-sc1 src + tcp-request content track-sc1 src if some_check + tcp-request content track-sc2 src + tcp-request content track-sc2 src if some_check + tcp-request content track-sc0 src table foo + tcp-request content track-sc0 src table foo if some_check + tcp-request content track-sc1 src table foo + tcp-request content track-sc1 src table foo if some_check + tcp-request content track-sc2 src table foo + tcp-request content track-sc2 src table foo if some_check + tcp-request content track-sc5 src + tcp-request content track-sc5 src if some_check + tcp-request content track-sc5 src table foo + tcp-request content track-sc5 src table foo if some_check + tcp-request content sc-inc-gpc(1,2) + tcp-request content sc-inc-gpc(1,2) if is-error + tcp-request content sc-inc-gpc0(2) + tcp-request content sc-inc-gpc0(2) if is-error + tcp-request content sc-inc-gpc1(2) + tcp-request content sc-inc-gpc1(2) if is-error + tcp-request content sc-set-gpt(x,9) 1337 if exceeds_limit + tcp-request content sc-set-gpt0(0) 1337 + tcp-request content sc-set-gpt0(0) 1337 if exceeds_limit + tcp-request content sc-add-gpc(1,2) 1 + tcp-request content sc-add-gpc(1,2) 1 if is-error + tcp-request content set-dst ipv4(10.0.0.1) + tcp-request content set-var(sess.src) src + tcp-request content set-var(sess.dn) ssl_c_s_dn + tcp-request content set-var-fmt(sess.src) src + tcp-request content set-var-fmt(sess.dn) ssl_c_s_dn + tcp-request content unset-var(sess.src) + tcp-request content unset-var(sess.dn) + tcp-request content silent-drop + tcp-request content silent-drop if !HTTP + tcp-request content send-spoe-group engine group + tcp-request content use-service lua.deny + tcp-request content use-service lua.deny if !HTTP + tcp-request content lua.foo + tcp-request content lua.foo param if !HTTP + tcp-request content lua.foo param param1 + tcp-request connection accept + tcp-request connection accept if !HTTP + tcp-request connection reject + tcp-request connection reject if !HTTP + tcp-request connection expect-proxy layer4 if { src -f proxies.lst } + tcp-request connection expect-netscaler-cip layer4 + tcp-request connection expect-netscaler-cip layer4 if TRUE + tcp-request connection capture req.payload(0,6) len 6 + tcp-request connection track-sc0 src + tcp-request connection track-sc0 src if some_check + tcp-request connection track-sc1 src + tcp-request connection track-sc1 src if some_check + tcp-request connection track-sc2 src + tcp-request connection track-sc2 src if some_check + tcp-request connection track-sc0 src table foo + tcp-request connection track-sc0 src table foo if some_check + tcp-request connection track-sc1 src table foo + tcp-request connection track-sc1 src table foo if some_check + tcp-request connection track-sc2 src table foo + tcp-request connection track-sc2 src table foo if some_check + tcp-request connection track-sc5 src + tcp-request connection track-sc5 src if some_check + tcp-request connection track-sc5 src table foo + tcp-request connection track-sc5 src table foo if some_check + tcp-request connection sc-add-gpc(1,2) 1 + tcp-request connection sc-add-gpc(1,2) 1 if is-error + tcp-request connection sc-inc-gpc(1,2) + tcp-request connection sc-inc-gpc(1,2) if is-error + tcp-request connection sc-inc-gpc0(2) + tcp-request connection sc-inc-gpc0(2) if is-error + tcp-request connection sc-inc-gpc1(2) + tcp-request connection sc-inc-gpc1(2) if is-error + tcp-request connection sc-set-gpt(scx,44) 1337 if exceeds_limit + tcp-request connection sc-set-gpt0(0) 1337 + tcp-request connection sc-set-gpt0(0) 1337 if exceeds_limit + tcp-request connection set-src src,ipmask(24) + tcp-request connection set-src src,ipmask(24) if some_check + tcp-request connection set-src hdr(x-forwarded-for) + tcp-request connection set-src hdr(x-forwarded-for) if some_check + tcp-request connection silent-drop + tcp-request connection silent-drop if !HTTP + tcp-request connection lua.foo + tcp-request connection lua.foo param if !HTTP + tcp-request connection lua.foo param param1 + tcp-request session accept + tcp-request session accept if !HTTP + tcp-request session reject + tcp-request session reject if !HTTP + tcp-request session track-sc0 src + tcp-request session track-sc0 src if some_check + tcp-request session track-sc1 src + tcp-request session track-sc1 src if some_check + tcp-request session track-sc2 src + tcp-request session track-sc2 src if some_check + tcp-request session track-sc0 src table foo + tcp-request session track-sc0 src table foo if some_check + tcp-request session track-sc1 src table foo + tcp-request session track-sc1 src table foo if some_check + tcp-request session track-sc2 src table foo + tcp-request session track-sc2 src table foo if some_check + tcp-request session track-sc5 src + tcp-request session track-sc5 src if some_check + tcp-request session track-sc5 src table foo + tcp-request session track-sc5 src table foo if some_check + tcp-request session sc-add-gpc(1,2) 1 + tcp-request session sc-add-gpc(1,2) 1 if is-error + tcp-request session sc-inc-gpc(1,2) + tcp-request session sc-inc-gpc(1,2) if is-error + tcp-request session sc-inc-gpc0(2) + tcp-request session sc-inc-gpc0(2) if is-error + tcp-request session sc-inc-gpc1(2) + tcp-request session sc-inc-gpc1(2) if is-error + tcp-request session sc-set-gpt(sc5,1) 1337 if exceeds_limit + tcp-request session sc-set-gpt0(0) 1337 + tcp-request session sc-set-gpt0(0) 1337 if exceeds_limit + tcp-request session set-var(sess.src) src + tcp-request session set-var(sess.dn) ssl_c_s_dn + tcp-request session set-var-fmt(sess.src) src + tcp-request session set-var-fmt(sess.dn) ssl_c_s_dn + tcp-request session unset-var(sess.src) + tcp-request session unset-var(sess.dn) + tcp-request session silent-drop + tcp-request session silent-drop if !HTTP + tcp-request session attach-srv srv1 + tcp-request session attach-srv srv1 name example.com + tcp-request session attach-srv srv1 name example.com if exceeds_limit + tcp-request content set-bandwidth-limit my-limit + tcp-request content set-bandwidth-limit my-limit limit 1m period 10s + tcp-request content set-bandwidth-limit my-limit period 10s + tcp-request content set-bandwidth-limit my-limit limit 1m + tcp-request content set-log-level silent + tcp-request content set-log-level silent if FALSE + tcp-request content set-mark 20 + tcp-request content set-mark 0x1Ab if FALSE + tcp-request connection set-mark 20 + tcp-request connection set-mark 0x1Ab if FALSE + tcp-request connection set-src-port hdr(port) + tcp-request connection set-src-port hdr(port) if FALSE + tcp-request content set-src-port hdr(port) + tcp-request content set-src-port hdr(port) if FALSE + tcp-request content set-tos 0 if FALSE + tcp-request content set-tos 0 + tcp-request connection set-tos 0 if FALSE + tcp-request connection set-tos 0 + tcp-request connection set-var-fmt(txn.ip_port) %%[dst]:%%[dst_port] + tcp-request content set-nice 0 if FALSE + tcp-request content set-nice 0 + tcp-request content switch-mode http + tcp-request content switch-mode http if FALSE + tcp-request content switch-mode http proto my-proto + tcp-request connection set-fc-mark 1 + tcp-request connection set-fc-tos 1 + tcp-request session set-fc-mark 9999 if some_check + tcp-request session set-fc-tos 255 + tcp-request content set-bc-mark hdr(port) + tcp-request content set-bc-tos 0xff if some_check + tcp-request content set-fc-mark 0xffffffff + tcp-request content set-fc-tos 100 + tcp-response content lua.foo + tcp-response content lua.foo param if !HTTP + tcp-response content lua.foo param param1 + tcp-response content set-dst dest + tcp-response content unset-var(sess.my_var) + tcp-response content set-bandwidth-limit my-limit + tcp-response content set-bandwidth-limit my-limit limit 1m period 10s + tcp-response content set-bandwidth-limit my-limit period 10s + tcp-response content set-bandwidth-limit my-limit limit 1m + tcp-response content set-log-level silent + tcp-response content set-log-level silent if FALSE + tcp-response content set-mark 20 + tcp-response content set-mark 0x1Ab if FALSE + tcp-response content set-tos 0 if FALSE + tcp-response content set-tos 0 + tcp-response content set-nice 0 if FALSE + tcp-response content set-nice 0 + tcp-response content close + tcp-response content close if !HTTP + tcp-response content sc-inc-gpc(1,2) + tcp-response content sc-inc-gpc(1,2) if is-error + tcp-response content sc-inc-gpc0(2) + tcp-response content sc-inc-gpc0(2) if is-error + tcp-response content sc-inc-gpc1(2) + tcp-response content sc-inc-gpc1(2) if is-error + tcp-response content set-fc-mark 123456 + tcp-response content set-fc-tos 0x02 + redirect prefix http://www.bar.com code 301 if { hdr(host) -i foo.com } + stats auth admin1:AdMiN123 + stats enable + stats hide-version + stats show-legends + stats show-modules + stats maxconn 10 + stats realm HAProxy\\ Statistics + stats refresh 10s + stats scope . + stats show-desc Master node for Europe, Asia, Africa + stats show-node + stats show-node Europe-1 + stats uri /admin?stats + stats bind-process all + stats bind-process odd + stats bind-process even + stats bind-process 1 2 3 4 + stats bind-process 1-4 + stats admin if LOCALHOST + +log-forward test + dgram-bind :80,:443 + dgram-bind 10.0.0.1:10080,10.0.0.1:10443 + dgram-bind :443 interface eth0 + dgram-bind :443 interface eth1 + dgram-bind :443 interface pppoe-wan + dgram-bind :443 namespace example + dgram-bind :443 transparent + +mailers test + mailer smtp1 192.168.0.1:587 + mailer smtp1 192.168.0.1:587 # just some comment + +peers test + default-server addr 127.0.0.1 + default-server addr ::1 + default-server agent-check + default-server agent-send name + default-server agent-inter 1000ms + default-server agent-addr 127.0.0.1 + default-server agent-addr site.com + default-server agent-port 1 + default-server agent-port 65535 + default-server allow-0rtt + default-server alpn h2 + default-server alpn http/1.1 + default-server alpn h2,http/1.1 + default-server backup + default-server ca-file cert.crt + default-server check + default-server check-send-proxy + default-server check-alpn http/1.0 + default-server check-alpn http/1.1,http/1.0 + default-server check-proto h2 + default-server check-ssl + default-server check-via-socks4 + default-server ciphers ECDHE-RSA-AES128-GCM-SHA256 + default-server ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS + default-server ciphersuites ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS + default-server cookie value + default-server crl-file file.pem + default-server crt cert.pem + default-server disabled + default-server enabled + default-server error-limit 50 + default-server fall 30 + default-server fall 1 rise 2 inter 3s port 4444 + default-server force-sslv3 + default-server force-tlsv10 + default-server force-tlsv11 + default-server force-tlsv12 + default-server force-tlsv13 + default-server init-addr last,libc,none + default-server init-addr last,libc,none,127.0.0.1 + default-server inter 1500ms + default-server inter 1000 weight 13 + default-server fastinter 2500ms + default-server fastinter unknown + default-server downinter 3500ms + default-server log-proto legacy + default-server log-proto octet-count + default-server maxconn 1 + default-server maxconn 50 + default-server maxqueue 0 + default-server maxqueue 1000 + default-server max-reuse -1 + default-server max-reuse 0 + default-server max-reuse 1 + default-server minconn 1 + default-server minconn 50 + default-server namespace test + default-server no-agent-check + default-server no-backup + default-server no-check + default-server no-check-ssl + default-server no-send-proxy-v2 + default-server no-send-proxy-v2-ssl + default-server no-send-proxy-v2-ssl-cn + default-server no-ssl + default-server no-ssl-reuse + default-server no-sslv3 + default-server no-tls-tickets + default-server no-tlsv10 + default-server no-tlsv11 + default-server no-tlsv12 + default-server no-tlsv13 + default-server no-verifyhost + default-server no-tfo + default-server non-stick + default-server npn http/1.1,http/1.0 + default-server observe layer4 + default-server observe layer7 + default-server on-error fastinter + default-server on-error fail-check + default-server on-error sudden-death + default-server on-error mark-down + default-server on-marked-down shutdown-sessions + default-server on-marked-up shutdown-backup-session + default-server pool-max-conn -1 + default-server pool-max-conn 0 + default-server pool-max-conn 100 + default-server pool-purge-delay 0 + default-server pool-purge-delay 5 + default-server pool-purge-delay 500 + default-server port 27015 + default-server port 27016 + default-server proto h2 default-server redir http://image1.mydomain.com default-server redir https://image1.mydomain.com default-server rise 2 @@ -2308,35 +2830,35 @@ var configTests = []configTest{{` command spoa-mirror --runtime 0 --mirror-url {` log-stderr global `, 1}, {` acl url_stats path_beg /stats -`, 2}, +`, 3}, {` acl url_static path_beg -i /static /images /javascript /stylesheets -`, 2}, +`, 3}, {` acl url_static path_end -i .jpg .gif .png .css .js -`, 2}, +`, 3}, {` acl be_app_ok nbsrv(be_app) gt 0 -`, 2}, +`, 3}, {` acl be_static_ok nbsrv(be_static) gt 0 -`, 2}, +`, 3}, {` acl key req.hdr(X-Add-ACL-Key) -m found -`, 2}, +`, 3}, {` acl add path /addacl -`, 2}, +`, 3}, {` acl del path /delacl -`, 2}, +`, 3}, {` acl myhost hdr(Host) -f myhost.lst -`, 2}, +`, 3}, {` acl clear dst_port 80 -`, 2}, +`, 3}, {` acl secure dst_port 8080 -`, 2}, +`, 3}, {` acl login_page url_beg /login -`, 2}, +`, 3}, {` acl logout url_beg /logout -`, 2}, +`, 3}, {` acl uid_given url_reg /login?userid=[^&]+ -`, 2}, +`, 3}, {` acl cookie_set hdr_sub(cookie) SEEN=1 -`, 2}, +`, 3}, {` bind :80,:443 `, 1}, {` bind 10.0.0.1:10080,10.0.0.1:10443 @@ -3418,633 +3940,633 @@ var configTests = []configTest{{` command spoa-mirror --runtime 0 --mirror-url {` httpclient.ssl.verify none `, 1}, {` http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] if value -`, 2}, +`, 3}, {` http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] -`, 2}, +`, 3}, {` http-request add-acl(map.lst) [src] -`, 2}, +`, 3}, {` http-request add-header X-value value -`, 2}, +`, 3}, {` http-request cache-use cache-name -`, 2}, +`, 3}, {` http-request cache-use cache-name if FALSE -`, 2}, +`, 3}, {` http-request del-acl(map.lst) [src] -`, 2}, +`, 3}, {` http-request allow -`, 2}, +`, 3}, {` http-request auth -`, 2}, +`, 3}, {` http-request del-header X-value -`, 2}, +`, 3}, {` http-request del-header X-value if TRUE -`, 2}, +`, 3}, {` http-request del-header X-value -m str if TRUE -`, 2}, +`, 3}, {` http-request del-map(map.lst) %[src] if ! value -`, 2}, +`, 3}, {` http-request del-map(map.lst) %[src] -`, 2}, +`, 3}, {` http-request deny -`, 2}, +`, 3}, {` http-request deny deny_status 400 -`, 2}, +`, 3}, {` http-request deny if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json default-errorfiles -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json errorfile errors -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json string error if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json file /var/errors.file -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json lf-file /var/errors.file -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE -`, 2}, +`, 3}, {` http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla -`, 2}, +`, 3}, {` http-request disable-l7-retry -`, 2}, +`, 3}, {` http-request disable-l7-retry if FALSE -`, 2}, +`, 3}, {` http-request early-hint hint %[src] -`, 2}, +`, 3}, {` http-request early-hint hint %[src] if FALSE -`, 2}, +`, 3}, {` http-request early-hint if FALSE -`, 2}, +`, 3}, {` http-request lua.foo -`, 2}, +`, 3}, {` http-request lua.foo if FALSE -`, 2}, +`, 3}, {` http-request lua.foo param -`, 2}, +`, 3}, {` http-request lua.foo param param2 -`, 2}, +`, 3}, {` http-request normalize-uri fragment-encode -`, 2}, +`, 3}, {` http-request normalize-uri fragment-encode if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri fragment-strip -`, 2}, +`, 3}, {` http-request normalize-uri fragment-strip if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri path-merge-slashes -`, 2}, +`, 3}, {` http-request normalize-uri path-merge-slashes if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dot -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dot if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dotdot -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dotdot full -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dotdot if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri path-strip-dotdot full if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri percent-decode-unreserved -`, 2}, +`, 3}, {` http-request normalize-uri percent-decode-unreserved if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri percent-decode-unreserved strict -`, 2}, +`, 3}, {` http-request normalize-uri percent-decode-unreserved strict if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri percent-to-uppercase -`, 2}, +`, 3}, {` http-request normalize-uri percent-to-uppercase if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri percent-to-uppercase strict -`, 2}, +`, 3}, {` http-request normalize-uri percent-to-uppercase strict if TRUE -`, 2}, +`, 3}, {` http-request normalize-uri query-sort-by-name -`, 2}, +`, 3}, {` http-request normalize-uri query-sort-by-name if TRUE -`, 2}, +`, 3}, {` http-request redirect prefix https://mysite.com -`, 2}, +`, 3}, {` http-request reject -`, 2}, +`, 3}, {` http-request replace-header User-agent curl foo -`, 2}, +`, 3}, {` http-request replace-path (.*) /foo -`, 2}, +`, 3}, {` http-request replace-path (.*) /foo if TRUE -`, 2}, +`, 3}, {` http-request replace-pathq (.*) /foo -`, 2}, +`, 3}, {` http-request replace-pathq (.*) /foo if TRUE -`, 2}, +`, 3}, {` http-request replace-uri ^http://(.*) https://1 -`, 2}, +`, 3}, {` http-request replace-uri ^http://(.*) https://1 if FALSE -`, 2}, +`, 3}, {` http-request replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 -`, 2}, +`, 3}, {` http-request sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` http-request sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` http-request sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` http-request sc-inc-gpc(1,2) if FALSE -`, 2}, +`, 3}, {` http-request sc-inc-gpc0(1) -`, 2}, +`, 3}, {` http-request sc-inc-gpc0(1) if FALSE -`, 2}, +`, 3}, {` http-request sc-inc-gpc1(1) -`, 2}, +`, 3}, {` http-request sc-inc-gpc1(1) if FALSE -`, 2}, +`, 3}, {` http-request sc-set-gpt(1,2) hdr(Host),lower if FALSE -`, 2}, +`, 3}, {` http-request sc-set-gpt0(1) hdr(Host),lower -`, 2}, +`, 3}, {` http-request sc-set-gpt0(1) 10 -`, 2}, +`, 3}, {` http-request sc-set-gpt0(1) hdr(Host),lower if FALSE -`, 2}, +`, 3}, {` http-request send-spoe-group engine group -`, 2}, +`, 3}, {` http-request set-header X-value value -`, 2}, +`, 3}, {` http-request set-log-level silent -`, 2}, +`, 3}, {` http-request set-mark 20 -`, 2}, +`, 3}, {` http-request set-mark 0x1Ab -`, 2}, +`, 3}, {` http-request set-nice 0 -`, 2}, +`, 3}, {` http-request set-nice 0 if FALSE -`, 2}, +`, 3}, {` http-request set-method POST -`, 2}, +`, 3}, {` http-request set-method POST if FALSE -`, 2}, +`, 3}, {` http-request set-path /%[hdr(host)]%[path] -`, 2}, +`, 3}, {` http-request set-pathq /%[hdr(host)]%[path] -`, 2}, +`, 3}, {` http-request set-priority-class req.hdr(priority) -`, 2}, +`, 3}, {` http-request set-priority-class req.hdr(priority) if FALSE -`, 2}, +`, 3}, {` http-request set-priority-offset req.hdr(offset) -`, 2}, +`, 3}, {` http-request set-priority-offset req.hdr(offset) if FALSE -`, 2}, +`, 3}, {` http-request set-query %[query,regsub(%3D,=,g)] -`, 2}, +`, 3}, {` http-request set-src hdr(src) -`, 2}, +`, 3}, {` http-request set-src hdr(src) if FALSE -`, 2}, +`, 3}, {` http-request set-src-port hdr(port) -`, 2}, +`, 3}, {` http-request set-src-port hdr(port) if FALSE -`, 2}, +`, 3}, {` http-request set-timeout server 20 -`, 2}, +`, 3}, {` http-request set-timeout tunnel 20 -`, 2}, +`, 3}, {` http-request set-timeout tunnel 20s if TRUE -`, 2}, +`, 3}, {` http-request set-timeout server 20s if TRUE -`, 2}, +`, 3}, {` http-request set-timeout client 20 -`, 2}, +`, 3}, {` http-request set-timeout client 20s if TRUE -`, 2}, +`, 3}, {` http-request set-tos 0 if FALSE -`, 2}, +`, 3}, {` http-request set-tos 0 -`, 2}, +`, 3}, {` http-request set-uri /%[hdr(host)]%[path] -`, 2}, +`, 3}, {` http-request set-var(req.my_var) req.fhdr(user-agent),lower -`, 2}, +`, 3}, {` http-request set-var-fmt(req.my_var) req.fhdr(user-agent),lower -`, 2}, +`, 3}, {` http-request silent-drop -`, 2}, +`, 3}, {` http-request silent-drop if FALSE -`, 2}, +`, 3}, {` http-request strict-mode on -`, 2}, +`, 3}, {` http-request strict-mode on if FALSE -`, 2}, +`, 3}, {` http-request tarpit -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 -`, 2}, +`, 3}, {` http-request tarpit if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json default-errorfiles -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json errorfile errors -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json string error if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json file /var/errors.file -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json lf-file /var/errors.file -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE -`, 2}, +`, 3}, {` http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla -`, 2}, +`, 3}, {` http-request track-sc0 src -`, 2}, +`, 3}, {` http-request track-sc1 src -`, 2}, +`, 3}, {` http-request track-sc2 src -`, 2}, +`, 3}, {` http-request track-sc5 src -`, 2}, +`, 3}, {` http-request track-sc5 src table a_table -`, 2}, +`, 3}, {` http-request track-sc5 src table a_table if some_cond -`, 2}, +`, 3}, {` http-request track-sc5 src if some_cond -`, 2}, +`, 3}, {` http-request unset-var(req.my_var) -`, 2}, +`, 3}, {` http-request unset-var(req.my_var) if FALSE -`, 2}, +`, 3}, {` http-request wait-for-body time 20s -`, 2}, +`, 3}, {` http-request wait-for-body time 20s if TRUE -`, 2}, +`, 3}, {` http-request wait-for-body time 20s at-least 100k -`, 2}, +`, 3}, {` http-request wait-for-body time 20s at-least 100k if TRUE -`, 2}, +`, 3}, {` http-request wait-for-handshake -`, 2}, +`, 3}, {` http-request wait-for-handshake if FALSE -`, 2}, +`, 3}, {` http-request do-resolve(txn.myip,mydns) hdr(Host),lower -`, 2}, +`, 3}, {` http-request do-resolve(txn.myip,mydns) hdr(Host),lower if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request do-resolve(txn.myip,mydns) hdr(Host),lower unless { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request do-resolve(txn.myip,mydns,ipv4) hdr(Host),lower -`, 2}, +`, 3}, {` http-request do-resolve(txn.myip,mydns,ipv6) hdr(Host),lower -`, 2}, +`, 3}, {` http-request set-dst var(txn.myip) -`, 2}, +`, 3}, {` http-request set-dst var(txn.myip) if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request set-dst var(txn.myip) unless { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request set-dst-port hdr(x-port) -`, 2}, +`, 3}, {` http-request set-dst-port hdr(x-port) if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request set-dst-port hdr(x-port) unless { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request set-dst-port int(4000) -`, 2}, +`, 3}, {` http-request return status 400 default-errorfiles if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request return status 400 errorfiles myerror if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-request redirect location /file.html if { var(txn.routecookie) -m found } !{ var(txn.pod),nbsrv -m found }:1] -`, 2}, +`, 3}, {` http-request set-bandwidth-limit my-limit -`, 2}, +`, 3}, {` http-request set-bandwidth-limit my-limit limit 1m period 10s -`, 2}, +`, 3}, {` http-request set-bandwidth-limit my-limit period 10s -`, 2}, +`, 3}, {` http-request set-bandwidth-limit my-limit limit 1m -`, 2}, +`, 3}, {` http-request set-bc-mark 123 -`, 2}, +`, 3}, {` http-request set-bc-mark 0xffffffff -`, 2}, +`, 3}, {` http-request set-bc-mark hdr(port) if FALSE -`, 2}, +`, 3}, {` http-request set-bc-tos 10 -`, 2}, +`, 3}, {` http-request set-fc-mark 0 -`, 2}, +`, 3}, {` http-request set-fc-tos 0xff if TRUE -`, 2}, +`, 3}, {` http-request capture req.cook_cnt(FirstVisit),bool len 10 `, 1}, {` http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value -`, 2}, +`, 3}, {` http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] -`, 2}, +`, 3}, {` http-response add-acl(map.lst) [src] -`, 2}, +`, 3}, {` http-response add-header X-value value -`, 2}, +`, 3}, {` http-response del-acl(map.lst) [src] -`, 2}, +`, 3}, {` http-response allow -`, 2}, +`, 3}, {` http-response cache-store cache-name -`, 2}, +`, 3}, {` http-response cache-store cache-name if FALSE -`, 2}, +`, 3}, {` http-response del-header X-value -`, 2}, +`, 3}, {` http-response del-map(map.lst) %[src] if ! value -`, 2}, +`, 3}, {` http-response del-map(map.lst) %[src] -`, 2}, +`, 3}, {` http-response deny -`, 2}, +`, 3}, {` http-response deny deny_status 400 -`, 2}, +`, 3}, {` http-response deny if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json default-errorfiles -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json errorfile errors -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json string error if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json file /var/errors.file -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json lf-file /var/errors.file -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json string error hdr host google.com if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE -`, 2}, +`, 3}, {` http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla -`, 2}, +`, 3}, {` http-response lua.foo -`, 2}, +`, 3}, {` http-response lua.foo if FALSE -`, 2}, +`, 3}, {` http-response lua.foo param -`, 2}, +`, 3}, {` http-response lua.foo param param2 -`, 2}, +`, 3}, {` http-response redirect prefix https://mysite.com -`, 2}, +`, 3}, {` http-response replace-header User-agent curl foo -`, 2}, +`, 3}, {` http-response replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 -`, 2}, +`, 3}, {` http-response return status 400 default-errorfiles if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-response return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-response return status 400 errorfiles myerror if { var(txn.myip) -m found } -`, 2}, +`, 3}, {` http-response sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` http-response sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` http-response sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` http-response sc-inc-gpc(1,2) if FALSE -`, 2}, +`, 3}, {` http-response sc-inc-gpc0(1) -`, 2}, +`, 3}, {` http-response sc-inc-gpc0(1) if FALSE -`, 2}, +`, 3}, {` http-response sc-inc-gpc1(1) -`, 2}, +`, 3}, {` http-response sc-inc-gpc1(1) if FALSE -`, 2}, +`, 3}, {` http-response sc-set-gpt(1,2) hdr(Host),lower if FALSE -`, 2}, +`, 3}, {` http-response sc-set-gpt0(1) hdr(Host),lower -`, 2}, +`, 3}, {` http-response sc-set-gpt0(1) 10 -`, 2}, +`, 3}, {` http-response sc-set-gpt0(1) hdr(Host),lower if FALSE -`, 2}, +`, 3}, {` http-response send-spoe-group engine group -`, 2}, +`, 3}, {` http-response set-header X-value value -`, 2}, +`, 3}, {` http-response set-log-level silent -`, 2}, +`, 3}, {` http-response set-mark 20 -`, 2}, +`, 3}, {` http-response set-mark 0x1Ab -`, 2}, +`, 3}, {` http-response set-nice 0 -`, 2}, +`, 3}, {` http-response set-nice 0 if FALSE -`, 2}, +`, 3}, {` http-response set-status 503 -`, 2}, +`, 3}, {` http-response set-timeout server 20 -`, 2}, +`, 3}, {` http-response set-timeout tunnel 20 -`, 2}, +`, 3}, {` http-response set-timeout tunnel 20s if TRUE -`, 2}, +`, 3}, {` http-response set-timeout server 20s if TRUE -`, 2}, +`, 3}, {` http-response set-timeout client 20 -`, 2}, +`, 3}, {` http-response set-timeout client 20s if TRUE -`, 2}, +`, 3}, {` http-response set-tos 0 if FALSE -`, 2}, +`, 3}, {` http-response set-tos 0 -`, 2}, +`, 3}, {` http-response set-var(req.my_var) res.fhdr(user-agent),lower -`, 2}, +`, 3}, {` http-response set-var-fmt(req.my_var) res.fhdr(user-agent),lower -`, 2}, +`, 3}, {` http-response silent-drop -`, 2}, +`, 3}, {` http-response silent-drop if FALSE -`, 2}, +`, 3}, {` http-response unset-var(req.my_var) -`, 2}, +`, 3}, {` http-response unset-var(req.my_var) if FALSE -`, 2}, +`, 3}, {` http-response track-sc0 src if FALSE -`, 2}, +`, 3}, {` http-response track-sc0 src table tr if FALSE -`, 2}, +`, 3}, {` http-response track-sc0 src -`, 2}, +`, 3}, {` http-response track-sc1 src if FALSE -`, 2}, +`, 3}, {` http-response track-sc1 src table tr if FALSE -`, 2}, +`, 3}, {` http-response track-sc1 src -`, 2}, +`, 3}, {` http-response track-sc2 src if FALSE -`, 2}, +`, 3}, {` http-response track-sc2 src table tr if FALSE -`, 2}, +`, 3}, {` http-response track-sc2 src -`, 2}, +`, 3}, {` http-response track-sc5 src -`, 2}, +`, 3}, {` http-response track-sc5 src table a_table -`, 2}, +`, 3}, {` http-response track-sc5 src table a_table if some_cond -`, 2}, +`, 3}, {` http-response track-sc5 src if some_cond -`, 2}, +`, 3}, {` http-response strict-mode on -`, 2}, +`, 3}, {` http-response strict-mode on if FALSE -`, 2}, +`, 3}, {` http-response wait-for-body time 20s -`, 2}, +`, 3}, {` http-response wait-for-body time 20s if TRUE -`, 2}, +`, 3}, {` http-response wait-for-body time 20s at-least 100k -`, 2}, +`, 3}, {` http-response wait-for-body time 20s at-least 100k if TRUE -`, 2}, +`, 3}, {` http-response set-bandwidth-limit my-limit -`, 2}, +`, 3}, {` http-response set-bandwidth-limit my-limit limit 1m period 10s -`, 2}, +`, 3}, {` http-response set-bandwidth-limit my-limit period 10s -`, 2}, +`, 3}, {` http-response set-bandwidth-limit my-limit limit 1m -`, 2}, +`, 3}, {` http-response set-fc-mark 2000 -`, 2}, +`, 3}, {` http-response set-fc-tos 200 -`, 2}, +`, 3}, {` http-response capture res.hdr(Server) id 0 `, 1}, {` http-after-response allow -`, 2}, +`, 3}, {` http-after-response allow if acl -`, 2}, +`, 3}, {` http-after-response set-header Strict-Transport-Security \"max-age=31536000\" -`, 2}, +`, 3}, {` http-after-response add-header X-Header \"foo=bar\" -`, 2}, +`, 3}, {` http-after-response add-header X-Header \"foo=bar\" if acl -`, 2}, +`, 3}, {` http-after-response add-header X-Header \"foo=bar\" unless acl -`, 2}, +`, 3}, {` http-after-response allow unless acl -`, 2}, +`, 3}, {` http-after-response del-header X-Value -`, 2}, +`, 3}, {` http-after-response del-header X-Value -m GET -`, 2}, +`, 3}, {` http-after-response del-header X-Value -m GET if acl -`, 2}, +`, 3}, {` http-after-response del-header X-Value -m GET unless acl -`, 2}, +`, 3}, {` http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 -`, 2}, +`, 3}, {` http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 if acl -`, 2}, +`, 3}, {` http-after-response replace-value Cache-control ^public$ private -`, 2}, +`, 3}, {` http-after-response replace-value Cache-control ^public$ private if acl -`, 2}, +`, 3}, {` http-after-response set-status 431 -`, 2}, +`, 3}, {` http-after-response set-status 503 reason \"SlowDown\" -`, 2}, +`, 3}, {` http-after-response set-status 500 reason \"ServiceUnavailable\" if acl -`, 2}, +`, 3}, {` http-after-response set-status 500 reason \"ServiceUnavailable\" unless acl -`, 2}, +`, 3}, {` http-after-response set-var(sess.last_redir) res.hdr(location) -`, 2}, +`, 3}, {` http-after-response set-var(sess.last_redir) res.hdr(location) if acl -`, 2}, +`, 3}, {` http-after-response set-var(sess.last_redir) res.hdr(location) unless acl -`, 2}, +`, 3}, {` http-after-response strict-mode on -`, 2}, +`, 3}, {` http-after-response strict-mode off -`, 2}, +`, 3}, {` http-after-response unset-var(sess.last_redir) -`, 2}, +`, 3}, {` http-after-response unset-var(sess.last_redir) if acl -`, 2}, +`, 3}, {` http-after-response unset-var(sess.last_redir) unless acl -`, 2}, +`, 3}, {` http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value -`, 2}, +`, 3}, {` http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] -`, 2}, +`, 3}, {` http-after-response del-acl(map.lst) [src] -`, 2}, +`, 3}, {` http-after-response del-map(map.lst) %[src] if ! value -`, 2}, +`, 3}, {` http-after-response del-map(map.lst) %[src] -`, 2}, +`, 3}, {` http-after-response sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` http-after-response sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc(1,2) if is-error -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc0(1) -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc0(1) if FALSE -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc1(1) -`, 2}, +`, 3}, {` http-after-response sc-inc-gpc1(1) if FALSE -`, 2}, +`, 3}, {` http-after-response sc-set-gpt(1,2) 10 -`, 2}, +`, 3}, {` http-after-response sc-set-gpt0(1) hdr(Host),lower -`, 2}, +`, 3}, {` http-after-response sc-set-gpt0(1) 10 -`, 2}, +`, 3}, {` http-after-response sc-set-gpt0(1) hdr(Host),lower if FALSE -`, 2}, +`, 3}, {` http-error status 400 `, 3}, {` http-error status 400 default-errorfiles @@ -4152,349 +4674,349 @@ var configTests = []configTest{{` command spoa-mirror --runtime 0 --mirror-url {` tcp-check set-var(check.port) int(1234) `, 2}, {` tcp-request content accept -`, 2}, +`, 3}, {` tcp-request content accept if !HTTP -`, 2}, +`, 3}, {` tcp-request content reject -`, 2}, +`, 3}, {` tcp-request content reject if !HTTP -`, 2}, +`, 3}, {` tcp-request content capture req.payload(0,6) len 6 -`, 2}, +`, 3}, {` tcp-request content capture req.payload(0,6) len 6 if !HTTP -`, 2}, +`, 3}, {` tcp-request content do-resolve(txn.myip,mydns,ipv6) capture.req.hdr(0),lower -`, 2}, +`, 3}, {` tcp-request content do-resolve(txn.myip,mydns) capture.req.hdr(0),lower -`, 2}, +`, 3}, {` tcp-request content set-priority-class int(1) -`, 2}, +`, 3}, {` tcp-request content set-priority-class int(1) if some_check -`, 2}, +`, 3}, {` tcp-request content set-priority-offset int(10) -`, 2}, +`, 3}, {` tcp-request content set-priority-offset int(10) if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc0 src -`, 2}, +`, 3}, {` tcp-request content track-sc0 src if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc1 src -`, 2}, +`, 3}, {` tcp-request content track-sc1 src if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc2 src -`, 2}, +`, 3}, {` tcp-request content track-sc2 src if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc0 src table foo -`, 2}, +`, 3}, {` tcp-request content track-sc0 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc1 src table foo -`, 2}, +`, 3}, {` tcp-request content track-sc1 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc2 src table foo -`, 2}, +`, 3}, {` tcp-request content track-sc2 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc5 src -`, 2}, +`, 3}, {` tcp-request content track-sc5 src if some_check -`, 2}, +`, 3}, {` tcp-request content track-sc5 src table foo -`, 2}, +`, 3}, {` tcp-request content track-sc5 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc(1,2) if is-error -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc0(2) -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc0(2) if is-error -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc1(2) -`, 2}, +`, 3}, {` tcp-request content sc-inc-gpc1(2) if is-error -`, 2}, +`, 3}, {` tcp-request content sc-set-gpt(x,9) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request content sc-set-gpt0(0) 1337 -`, 2}, +`, 3}, {` tcp-request content sc-set-gpt0(0) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request content sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` tcp-request content sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` tcp-request content set-dst ipv4(10.0.0.1) -`, 2}, +`, 3}, {` tcp-request content set-var(sess.src) src -`, 2}, +`, 3}, {` tcp-request content set-var(sess.dn) ssl_c_s_dn -`, 2}, +`, 3}, {` tcp-request content set-var-fmt(sess.src) src -`, 2}, +`, 3}, {` tcp-request content set-var-fmt(sess.dn) ssl_c_s_dn -`, 2}, +`, 3}, {` tcp-request content unset-var(sess.src) -`, 2}, +`, 3}, {` tcp-request content unset-var(sess.dn) -`, 2}, +`, 3}, {` tcp-request content silent-drop -`, 2}, +`, 3}, {` tcp-request content silent-drop if !HTTP -`, 2}, +`, 3}, {` tcp-request content send-spoe-group engine group -`, 2}, +`, 3}, {` tcp-request content use-service lua.deny -`, 2}, +`, 3}, {` tcp-request content use-service lua.deny if !HTTP -`, 2}, +`, 3}, {` tcp-request content lua.foo -`, 2}, +`, 3}, {` tcp-request content lua.foo param if !HTTP -`, 2}, +`, 3}, {` tcp-request content lua.foo param param1 -`, 2}, +`, 3}, {` tcp-request connection accept -`, 2}, +`, 3}, {` tcp-request connection accept if !HTTP -`, 2}, +`, 3}, {` tcp-request connection reject -`, 2}, +`, 3}, {` tcp-request connection reject if !HTTP -`, 2}, +`, 3}, {` tcp-request connection expect-proxy layer4 if { src -f proxies.lst } -`, 2}, +`, 3}, {` tcp-request connection expect-netscaler-cip layer4 -`, 2}, +`, 3}, {` tcp-request connection expect-netscaler-cip layer4 if TRUE -`, 2}, +`, 3}, {` tcp-request connection capture req.payload(0,6) len 6 -`, 2}, +`, 3}, {` tcp-request connection track-sc0 src -`, 2}, +`, 3}, {` tcp-request connection track-sc0 src if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc1 src -`, 2}, +`, 3}, {` tcp-request connection track-sc1 src if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc2 src -`, 2}, +`, 3}, {` tcp-request connection track-sc2 src if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc0 src table foo -`, 2}, +`, 3}, {` tcp-request connection track-sc0 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc1 src table foo -`, 2}, +`, 3}, {` tcp-request connection track-sc1 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc2 src table foo -`, 2}, +`, 3}, {` tcp-request connection track-sc2 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc5 src -`, 2}, +`, 3}, {` tcp-request connection track-sc5 src if some_check -`, 2}, +`, 3}, {` tcp-request connection track-sc5 src table foo -`, 2}, +`, 3}, {` tcp-request connection track-sc5 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request connection sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` tcp-request connection sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc(1,2) if is-error -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc0(2) -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc0(2) if is-error -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc1(2) -`, 2}, +`, 3}, {` tcp-request connection sc-inc-gpc1(2) if is-error -`, 2}, +`, 3}, {` tcp-request connection sc-set-gpt(scx,44) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request connection sc-set-gpt0(0) 1337 -`, 2}, +`, 3}, {` tcp-request connection sc-set-gpt0(0) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request connection set-src src,ipmask(24) -`, 2}, +`, 3}, {` tcp-request connection set-src src,ipmask(24) if some_check -`, 2}, +`, 3}, {` tcp-request connection set-src hdr(x-forwarded-for) -`, 2}, +`, 3}, {` tcp-request connection set-src hdr(x-forwarded-for) if some_check -`, 2}, +`, 3}, {` tcp-request connection silent-drop -`, 2}, +`, 3}, {` tcp-request connection silent-drop if !HTTP -`, 2}, +`, 3}, {` tcp-request connection lua.foo -`, 2}, +`, 3}, {` tcp-request connection lua.foo param if !HTTP -`, 2}, +`, 3}, {` tcp-request connection lua.foo param param1 -`, 2}, +`, 3}, {` tcp-request session accept -`, 2}, +`, 3}, {` tcp-request session accept if !HTTP -`, 2}, +`, 3}, {` tcp-request session reject -`, 2}, +`, 3}, {` tcp-request session reject if !HTTP -`, 2}, +`, 3}, {` tcp-request session track-sc0 src -`, 2}, +`, 3}, {` tcp-request session track-sc0 src if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc1 src -`, 2}, +`, 3}, {` tcp-request session track-sc1 src if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc2 src -`, 2}, +`, 3}, {` tcp-request session track-sc2 src if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc0 src table foo -`, 2}, +`, 3}, {` tcp-request session track-sc0 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc1 src table foo -`, 2}, +`, 3}, {` tcp-request session track-sc1 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc2 src table foo -`, 2}, +`, 3}, {` tcp-request session track-sc2 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc5 src -`, 2}, +`, 3}, {` tcp-request session track-sc5 src if some_check -`, 2}, +`, 3}, {` tcp-request session track-sc5 src table foo -`, 2}, +`, 3}, {` tcp-request session track-sc5 src table foo if some_check -`, 2}, +`, 3}, {` tcp-request session sc-add-gpc(1,2) 1 -`, 2}, +`, 3}, {` tcp-request session sc-add-gpc(1,2) 1 if is-error -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc(1,2) -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc(1,2) if is-error -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc0(2) -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc0(2) if is-error -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc1(2) -`, 2}, +`, 3}, {` tcp-request session sc-inc-gpc1(2) if is-error -`, 2}, +`, 3}, {` tcp-request session sc-set-gpt(sc5,1) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request session sc-set-gpt0(0) 1337 -`, 2}, +`, 3}, {` tcp-request session sc-set-gpt0(0) 1337 if exceeds_limit -`, 2}, +`, 3}, {` tcp-request session set-var(sess.src) src -`, 2}, +`, 3}, {` tcp-request session set-var(sess.dn) ssl_c_s_dn -`, 2}, +`, 3}, {` tcp-request session set-var-fmt(sess.src) src -`, 2}, +`, 3}, {` tcp-request session set-var-fmt(sess.dn) ssl_c_s_dn -`, 2}, +`, 3}, {` tcp-request session unset-var(sess.src) -`, 2}, +`, 3}, {` tcp-request session unset-var(sess.dn) -`, 2}, +`, 3}, {` tcp-request session silent-drop -`, 2}, +`, 3}, {` tcp-request session silent-drop if !HTTP -`, 2}, +`, 3}, {` tcp-request session attach-srv srv1 -`, 2}, +`, 3}, {` tcp-request session attach-srv srv1 name example.com -`, 2}, +`, 3}, {` tcp-request session attach-srv srv1 name example.com if exceeds_limit -`, 2}, +`, 3}, {` tcp-request content set-bandwidth-limit my-limit -`, 2}, +`, 3}, {` tcp-request content set-bandwidth-limit my-limit limit 1m period 10s -`, 2}, +`, 3}, {` tcp-request content set-bandwidth-limit my-limit period 10s -`, 2}, +`, 3}, {` tcp-request content set-bandwidth-limit my-limit limit 1m -`, 2}, +`, 3}, {` tcp-request content set-log-level silent -`, 2}, +`, 3}, {` tcp-request content set-log-level silent if FALSE -`, 2}, +`, 3}, {` tcp-request content set-mark 20 -`, 2}, +`, 3}, {` tcp-request content set-mark 0x1Ab if FALSE -`, 2}, +`, 3}, {` tcp-request connection set-mark 20 -`, 2}, +`, 3}, {` tcp-request connection set-mark 0x1Ab if FALSE -`, 2}, +`, 3}, {` tcp-request connection set-src-port hdr(port) -`, 2}, +`, 3}, {` tcp-request connection set-src-port hdr(port) if FALSE -`, 2}, +`, 3}, {` tcp-request content set-src-port hdr(port) -`, 2}, +`, 3}, {` tcp-request content set-src-port hdr(port) if FALSE -`, 2}, +`, 3}, {` tcp-request content set-tos 0 if FALSE -`, 2}, +`, 3}, {` tcp-request content set-tos 0 -`, 2}, +`, 3}, {` tcp-request connection set-tos 0 if FALSE -`, 2}, +`, 3}, {` tcp-request connection set-tos 0 -`, 2}, +`, 3}, {` tcp-request connection set-var-fmt(txn.ip_port) %%[dst]:%%[dst_port] -`, 2}, +`, 3}, {` tcp-request content set-nice 0 if FALSE -`, 2}, +`, 3}, {` tcp-request content set-nice 0 -`, 2}, +`, 3}, {` tcp-request content switch-mode http -`, 2}, +`, 3}, {` tcp-request content switch-mode http if FALSE -`, 2}, +`, 3}, {` tcp-request content switch-mode http proto my-proto -`, 2}, +`, 3}, {` tcp-request connection set-fc-mark 1 -`, 2}, +`, 3}, {` tcp-request connection set-fc-tos 1 -`, 2}, +`, 3}, {` tcp-request session set-fc-mark 9999 if some_check -`, 2}, +`, 3}, {` tcp-request session set-fc-tos 255 -`, 2}, +`, 3}, {` tcp-request content set-bc-mark hdr(port) -`, 2}, +`, 3}, {` tcp-request content set-bc-tos 0xff if some_check -`, 2}, +`, 3}, {` tcp-request content set-fc-mark 0xffffffff -`, 2}, +`, 3}, {` tcp-request content set-fc-tos 100 -`, 2}, +`, 3}, {` tcp-response content lua.foo `, 2}, {` tcp-response content lua.foo param if !HTTP diff --git a/tests/integration/defaults_data_test.go b/tests/integration/defaults_data_test.go index d7c4a1a..fc6e27a 100644 --- a/tests/integration/defaults_data_test.go +++ b/tests/integration/defaults_data_test.go @@ -17,6 +17,66 @@ limitations under the License. package integration_test +const defaults_aclurlstatspathbegstats = ` +defaults test + acl url_stats path_beg /stats +` +const defaults_aclurlstaticpathbegistaticimages = ` +defaults test + acl url_static path_beg -i /static /images /javascript /stylesheets +` +const defaults_aclurlstaticpathendijpggifpngcss = ` +defaults test + acl url_static path_end -i .jpg .gif .png .css .js +` +const defaults_aclbeappoknbsrvbeappgt0 = ` +defaults test + acl be_app_ok nbsrv(be_app) gt 0 +` +const defaults_aclbestaticoknbsrvbestaticgt0 = ` +defaults test + acl be_static_ok nbsrv(be_static) gt 0 +` +const defaults_aclkeyreqhdrXAddACLKeymfound = ` +defaults test + acl key req.hdr(X-Add-ACL-Key) -m found +` +const defaults_acladdpathaddacl = ` +defaults test + acl add path /addacl +` +const defaults_acldelpathdelacl = ` +defaults test + acl del path /delacl +` +const defaults_aclmyhosthdrHostfmyhostlst = ` +defaults test + acl myhost hdr(Host) -f myhost.lst +` +const defaults_aclcleardstport80 = ` +defaults test + acl clear dst_port 80 +` +const defaults_aclsecuredstport8080 = ` +defaults test + acl secure dst_port 8080 +` +const defaults_aclloginpageurlbeglogin = ` +defaults test + acl login_page url_beg /login +` +const defaults_acllogouturlbeglogout = ` +defaults test + acl logout url_beg /logout +` +const defaults_acluidgivenurlregloginuserid = ` +defaults test + acl uid_given url_reg /login?userid=[^&]+ +` +const defaults_aclcookiesethdrsubcookieSEEN1 = ` +defaults test + acl cookie_set hdr_sub(cookie) SEEN=1 +` const defaults_balanceroundrobin = ` defaults test balance roundrobin @@ -1093,293 +1153,2321 @@ const defaults_optionoriginaltoexcept127001comm = ` defaults test option originalto except 127.0.0.1 # comment ` -const defaults_httperrorstatus400 = ` +const defaults_httprequestsetmapmaplstsrcreqhdr = ` defaults test - http-error status 400 + http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] if value ` -const defaults_httperrorstatus400defaulterrorfi = ` +const defaults_httprequestsetmapmaplstsrcreqhdr_ = ` defaults test - http-error status 400 default-errorfiles + http-request set-map(map.lst) %[src] %[req.hdr(X-Value)] ` -const defaults_httperrorstatus400errorfilemyfan = ` +const defaults_httprequestaddaclmaplstsrc = ` defaults test - http-error status 400 errorfile /my/fancy/errorfile + http-request add-acl(map.lst) [src] ` -const defaults_httperrorstatus400errorfilesmyer = ` +const defaults_httprequestaddheaderXvaluevalue = ` defaults test - http-error status 400 errorfiles myerror + http-request add-header X-value value ` -const defaults_httperrorstatus200contenttypetex = ` +const defaults_httprequestcacheusecachename = ` defaults test - http-error status 200 content-type "text/plain" string "My content" + http-request cache-use cache-name ` -const defaults_httperrorstatus400contenttypetex = ` +const defaults_httprequestcacheusecachenameifFA = ` defaults test - http-error status 400 content-type "text/plain" lf-string "Hello, you are: %[src]" + http-request cache-use cache-name if FALSE ` -const defaults_httperrorstatus400contenttypetex_ = ` +const defaults_httprequestdelaclmaplstsrc = ` defaults test - http-error status 400 content-type "text/plain" file /my/fancy/response/file + http-request del-acl(map.lst) [src] ` -const defaults_httperrorstatus400contenttypetex__ = ` +const defaults_httprequestallow = ` defaults test - http-error status 400 content-type "text/plain" lf-file /my/fancy/lof/format/response/file + http-request allow ` -const defaults_httperrorstatus400contenttypetex___ = ` +const defaults_httprequestauth = ` defaults test - http-error status 400 content-type "text/plain" string "My content" hdr X-value value + http-request auth ` -const defaults_httperrorstatus400contenttypetex____ = ` +const defaults_httprequestdelheaderXvalue = ` defaults test - http-error status 400 content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value + http-request del-header X-value ` -const defaults_httpcheckcommenttestcomment = ` +const defaults_httprequestdelheaderXvalueifTRUE = ` defaults test - http-check comment testcomment + http-request del-header X-value if TRUE ` -const defaults_httpcheckconnect = ` +const defaults_httprequestdelheaderXvaluemstrif = ` defaults test - http-check connect + http-request del-header X-value -m str if TRUE ` -const defaults_httpcheckconnectdefault = ` +const defaults_httprequestdelmapmaplstsrcifvalu = ` defaults test - http-check connect default + http-request del-map(map.lst) %[src] if ! value ` -const defaults_httpcheckconnectport8080 = ` +const defaults_httprequestdelmapmaplstsrc = ` defaults test - http-check connect port 8080 + http-request del-map(map.lst) %[src] ` -const defaults_httpcheckconnectaddr8888 = ` +const defaults_httprequestdeny = ` defaults test - http-check connect addr 8.8.8.8 + http-request deny ` -const defaults_httpcheckconnectsendproxy = ` +const defaults_httprequestdenydenystatus400 = ` defaults test - http-check connect send-proxy + http-request deny deny_status 400 ` -const defaults_httpcheckconnectviasocks4 = ` +const defaults_httprequestdenyifTRUE = ` defaults test - http-check connect via-socks4 + http-request deny if TRUE ` -const defaults_httpcheckconnectssl = ` +const defaults_httprequestdenydenystatus400ifTR = ` defaults test - http-check connect ssl + http-request deny deny_status 400 if TRUE ` -const defaults_httpcheckconnectsnihaproxy1wteu = ` +const defaults_httprequestdenydenystatus400cont = ` defaults test - http-check connect sni haproxy.1wt.eu + http-request deny deny_status 400 content-type application/json if TRUE ` -const defaults_httpcheckconnectalpnh2http11 = ` +const defaults_httprequestdenydenystatus400cont_ = ` defaults test - http-check connect alpn h2,http/1.1 + http-request deny deny_status 400 content-type application/json ` -const defaults_httpcheckconnectprotoh2 = ` +const defaults_httprequestdenydenystatus400cont__ = ` defaults test - http-check connect proto h2 + http-request deny deny_status 400 content-type application/json default-errorfiles ` -const defaults_httpcheckconnectlinger = ` +const defaults_httprequestdenydenystatus400cont___ = ` defaults test - http-check connect linger + http-request deny deny_status 400 content-type application/json errorfile errors ` -const defaults_httpcheckconnectcommenttestcomme = ` +const defaults_httprequestdenydenystatus400cont____ = ` defaults test - http-check connect comment testcomment + http-request deny deny_status 400 content-type application/json string error if TRUE ` -const defaults_httpcheckconnectport443addr8888s = ` +const defaults_httprequestdenydenystatus400cont_____ = ` defaults test - http-check connect port 443 addr 8.8.8.8 send-proxy via-socks4 ssl sni haproxy.1wt.eu alpn h2,http/1.1 linger proto h2 comment testcomment + http-request deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE ` -const defaults_httpcheckdisableon404 = ` +const defaults_httprequestdenydenystatus400cont______ = ` defaults test - http-check disable-on-404 + http-request deny deny_status 400 content-type application/json file /var/errors.file ` -const defaults_httpcheckexpectstatus200 = ` +const defaults_httprequestdenydenystatus400cont_______ = ` defaults test - http-check expect status 200 + http-request deny deny_status 400 content-type application/json lf-file /var/errors.file ` -const defaults_httpcheckexpectminrecv50status20 = ` +const defaults_httprequestdenydenystatus400cont________ = ` defaults test - http-check expect min-recv 50 status 200 + http-request deny deny_status 400 content-type application/json string error hdr host google.com if TRUE ` -const defaults_httpcheckexpectcommenttestcommen = ` +const defaults_httprequestdenydenystatus400cont_________ = ` defaults test - http-check expect comment testcomment status 200 + http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE ` -const defaults_httpcheckexpectokstatusL7OKstatu = ` +const defaults_httprequestdenydenystatus400cont__________ = ` defaults test - http-check expect ok-status L7OK status 200 + http-request deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla ` -const defaults_httpcheckexpecterrorstatusL7RSPs = ` +const defaults_httprequestdisablel7retry = ` defaults test - http-check expect error-status L7RSP status 200 + http-request disable-l7-retry ` -const defaults_httpcheckexpecttoutstatusL7TOUTs = ` +const defaults_httprequestdisablel7retryifFALSE = ` defaults test - http-check expect tout-status L7TOUT status 200 + http-request disable-l7-retry if FALSE ` -const defaults_httpcheckexpectonsuccessmylogfor = ` +const defaults_httprequestearlyhinthintsrc = ` defaults test - http-check expect on-success \"my-log-format\" status 200 + http-request early-hint hint %[src] ` -const defaults_httpcheckexpectonerrormylogforma = ` +const defaults_httprequestearlyhinthintsrcifFAL = ` defaults test - http-check expect on-error \"my-log-format\" status 200 + http-request early-hint hint %[src] if FALSE ` -const defaults_httpcheckexpectstatuscode500stat = ` +const defaults_httprequestearlyhintifFALSE = ` defaults test - http-check expect status-code \"500\" status 200 + http-request early-hint if FALSE ` -const defaults_httpcheckexpectstringSQLError = ` +const defaults_httprequestluafoo = ` defaults test - http-check expect ! string SQL\\ Error + http-request lua.foo ` -const defaults_httpcheckexpectrstatus5 = ` +const defaults_httprequestluafooifFALSE = ` defaults test - http-check expect ! rstatus ^5 + http-request lua.foo if FALSE ` -const defaults_httpcheckexpectrstringtag09afhtm = ` +const defaults_httprequestluafooparam = ` defaults test - http-check expect rstring + http-request lua.foo param ` -const defaults_httpchecksendmethGET = ` +const defaults_httprequestluafooparamparam2 = ` defaults test - http-check send meth GET + http-request lua.foo param param2 ` -const defaults_httpchecksendurihealth = ` +const defaults_httprequestnormalizeurifragmente = ` defaults test - http-check send uri /health + http-request normalize-uri fragment-encode ` -const defaults_httpchecksendverHTTP11 = ` +const defaults_httprequestnormalizeurifragmente_ = ` defaults test - http-check send ver \"HTTP/1.1\" + http-request normalize-uri fragment-encode if TRUE ` -const defaults_httpchecksendcommenttestcomment = ` +const defaults_httprequestnormalizeurifragments = ` defaults test - http-check send comment testcomment + http-request normalize-uri fragment-strip ` -const defaults_httpchecksendmethGETurihealthver = ` +const defaults_httprequestnormalizeurifragments_ = ` defaults test - http-check send meth GET uri /health ver \"HTTP/1.1\" hdr Host example.com hdr Accept-Encoding gzip body '{\"key\":\"value\"}' + http-request normalize-uri fragment-strip if TRUE ` -const defaults_httpchecksendurilfmylogformatbod = ` +const defaults_httprequestnormalizeuripathmerge = ` defaults test - http-check send uri-lf my-log-format body-lf 'my-log-format' + http-request normalize-uri path-merge-slashes ` -const defaults_httpchecksendstate = ` +const defaults_httprequestnormalizeuripathmerge_ = ` defaults test - http-check send-state + http-request normalize-uri path-merge-slashes if TRUE ` -const defaults_httpchecksetvarcheckportint1234 = ` +const defaults_httprequestnormalizeuripathstrip = ` defaults test - http-check set-var(check.port) int(1234) + http-request normalize-uri path-strip-dot ` -const defaults_httpchecksetvarfmtcheckportint12 = ` +const defaults_httprequestnormalizeuripathstrip_ = ` defaults test - http-check set-var-fmt(check.port) int(1234) + http-request normalize-uri path-strip-dot if TRUE ` -const defaults_httpcheckunsetvartxnfrom = ` +const defaults_httprequestnormalizeuripathstrip__ = ` defaults test - http-check unset-var(txn.from) + http-request normalize-uri path-strip-dotdot ` -const defaults_tcpcheckcommenttestcomment = ` +const defaults_httprequestnormalizeuripathstrip___ = ` defaults test - tcp-check comment testcomment + http-request normalize-uri path-strip-dotdot full ` -const defaults_tcpcheckconnect = ` +const defaults_httprequestnormalizeuripathstrip____ = ` defaults test - tcp-check connect + http-request normalize-uri path-strip-dotdot if TRUE ` -const defaults_tcpcheckconnectport443ssl = ` +const defaults_httprequestnormalizeuripathstrip_____ = ` defaults test - tcp-check connect port 443 ssl + http-request normalize-uri path-strip-dotdot full if TRUE ` -const defaults_tcpcheckconnectport110linger = ` +const defaults_httprequestnormalizeuripercentde = ` defaults test - tcp-check connect port 110 linger + http-request normalize-uri percent-decode-unreserved ` -const defaults_tcpcheckconnectport143 = ` +const defaults_httprequestnormalizeuripercentde_ = ` defaults test - tcp-check connect port 143 + http-request normalize-uri percent-decode-unreserved if TRUE ` -const defaults_tcpcheckexpectstringPONG = ` +const defaults_httprequestnormalizeuripercentde__ = ` defaults test - tcp-check expect string +PONG + http-request normalize-uri percent-decode-unreserved strict ` -const defaults_tcpcheckexpectstringrolemaster = ` +const defaults_httprequestnormalizeuripercentde___ = ` defaults test - tcp-check expect string role:master + http-request normalize-uri percent-decode-unreserved strict if TRUE ` -const defaults_tcpcheckexpectstringOK = ` +const defaults_httprequestnormalizeuripercentto = ` defaults test - tcp-check expect string +OK + http-request normalize-uri percent-to-uppercase ` -const defaults_tcpchecksendlftestfmt = ` +const defaults_httprequestnormalizeuripercentto_ = ` defaults test - tcp-check send-lf testfmt + http-request normalize-uri percent-to-uppercase if TRUE ` -const defaults_tcpchecksendlftestfmtcommenttest = ` +const defaults_httprequestnormalizeuripercentto__ = ` defaults test - tcp-check send-lf testfmt comment testcomment + http-request normalize-uri percent-to-uppercase strict ` -const defaults_tcpchecksendbinarytesthexstring = ` +const defaults_httprequestnormalizeuripercentto___ = ` defaults test - tcp-check send-binary testhexstring + http-request normalize-uri percent-to-uppercase strict if TRUE ` -const defaults_tcpchecksendbinarytesthexstringc = ` +const defaults_httprequestnormalizeuriquerysort = ` defaults test - tcp-check send-binary testhexstring comment testcomment + http-request normalize-uri query-sort-by-name ` -const defaults_tcpchecksendbinarylftesthexfmt = ` +const defaults_httprequestnormalizeuriquerysort_ = ` defaults test - tcp-check send-binary-lf testhexfmt + http-request normalize-uri query-sort-by-name if TRUE ` -const defaults_tcpchecksendbinarylftesthexfmtco = ` +const defaults_httprequestredirectprefixhttpsmy = ` defaults test - tcp-check send-binary-lf testhexfmt comment testcomment + http-request redirect prefix https://mysite.com ` -const defaults_tcpchecksetvarcheckportint1234 = ` +const defaults_httprequestreject = ` defaults test - tcp-check set-var(check.port) int(1234) + http-request reject ` -const defaults_tcpcheckexpectstringOKPOP3ready = ` +const defaults_httprequestreplaceheaderUseragen = ` defaults test - tcp-check expect string +OK\ POP3\ ready + http-request replace-header User-agent curl foo ` -const defaults_tcpcheckexpectstringOKIMAP4ready = ` +const defaults_httprequestreplacepathfoo = ` defaults test - tcp-check expect string *\ OK\ IMAP4\ ready + http-request replace-path (.*) /foo ` -const defaults_tcpchecksendPINGrn = ` +const defaults_httprequestreplacepathfooifTRUE = ` defaults test - tcp-check send PING\r\n + http-request replace-path (.*) /foo if TRUE ` -const defaults_tcpchecksendPINGrncommenttestcom = ` +const defaults_httprequestreplacepathqfoo = ` defaults test - tcp-check send PING\r\n comment testcomment + http-request replace-pathq (.*) /foo ` -const defaults_tcpchecksendQUITrn = ` +const defaults_httprequestreplacepathqfooifTRUE = ` defaults test - tcp-check send QUIT\r\n + http-request replace-pathq (.*) /foo if TRUE ` -const defaults_tcpchecksendQUITrncommenttestcom = ` +const defaults_httprequestreplaceurihttphttps1 = ` defaults test - tcp-check send QUIT\r\n comment testcomment + http-request replace-uri ^http://(.*) https://1 ` -const defaults_tcpchecksendinforeplicationrn = ` +const defaults_httprequestreplaceurihttphttps1i = ` defaults test - tcp-check send info\ replication\r\n + http-request replace-uri ^http://(.*) https://1 if FALSE ` -const defaults_tcpchecksetvarfmtchecknameH = ` +const defaults_httprequestreplacevalueXForwarde = ` defaults test - tcp-check set-var-fmt(check.name) "%H" + http-request replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 ` -const defaults_tcpchecksetvarfmttxnfromaddrsrcs = ` +const defaults_httprequestscaddgpc121 = ` defaults test - tcp-check set-var-fmt(txn.from) "addr=%[src]:%[src_port]" + http-request sc-add-gpc(1,2) 1 ` -const defaults_tcpcheckunsetvartxnfrom = ` +const defaults_httprequestscaddgpc121ifiserror = ` defaults test - tcp-check unset-var(txn.from) + http-request sc-add-gpc(1,2) 1 if is-error +` +const defaults_httprequestscincgpc12 = ` +defaults test + http-request sc-inc-gpc(1,2) +` +const defaults_httprequestscincgpc12ifFALSE = ` +defaults test + http-request sc-inc-gpc(1,2) if FALSE +` +const defaults_httprequestscincgpc01 = ` +defaults test + http-request sc-inc-gpc0(1) +` +const defaults_httprequestscincgpc01ifFALSE = ` +defaults test + http-request sc-inc-gpc0(1) if FALSE +` +const defaults_httprequestscincgpc11 = ` +defaults test + http-request sc-inc-gpc1(1) +` +const defaults_httprequestscincgpc11ifFALSE = ` +defaults test + http-request sc-inc-gpc1(1) if FALSE +` +const defaults_httprequestscsetgpt12hdrHostlowe = ` +defaults test + http-request sc-set-gpt(1,2) hdr(Host),lower if FALSE +` +const defaults_httprequestscsetgpt01hdrHostlowe = ` +defaults test + http-request sc-set-gpt0(1) hdr(Host),lower +` +const defaults_httprequestscsetgpt0110 = ` +defaults test + http-request sc-set-gpt0(1) 10 +` +const defaults_httprequestscsetgpt01hdrHostlowe_ = ` +defaults test + http-request sc-set-gpt0(1) hdr(Host),lower if FALSE +` +const defaults_httprequestsendspoegroupenginegr = ` +defaults test + http-request send-spoe-group engine group +` +const defaults_httprequestsetheaderXvaluevalue = ` +defaults test + http-request set-header X-value value +` +const defaults_httprequestsetloglevelsilent = ` +defaults test + http-request set-log-level silent +` +const defaults_httprequestsetmark20 = ` +defaults test + http-request set-mark 20 +` +const defaults_httprequestsetmark0x1Ab = ` +defaults test + http-request set-mark 0x1Ab +` +const defaults_httprequestsetnice0 = ` +defaults test + http-request set-nice 0 +` +const defaults_httprequestsetnice0ifFALSE = ` +defaults test + http-request set-nice 0 if FALSE +` +const defaults_httprequestsetmethodPOST = ` +defaults test + http-request set-method POST +` +const defaults_httprequestsetmethodPOSTifFALSE = ` +defaults test + http-request set-method POST if FALSE +` +const defaults_httprequestsetpathhdrhostpath = ` +defaults test + http-request set-path /%[hdr(host)]%[path] +` +const defaults_httprequestsetpathqhdrhostpath = ` +defaults test + http-request set-pathq /%[hdr(host)]%[path] +` +const defaults_httprequestsetpriorityclassreqhd = ` +defaults test + http-request set-priority-class req.hdr(priority) +` +const defaults_httprequestsetpriorityclassreqhd_ = ` +defaults test + http-request set-priority-class req.hdr(priority) if FALSE +` +const defaults_httprequestsetpriorityoffsetreqh = ` +defaults test + http-request set-priority-offset req.hdr(offset) +` +const defaults_httprequestsetpriorityoffsetreqh_ = ` +defaults test + http-request set-priority-offset req.hdr(offset) if FALSE +` +const defaults_httprequestsetqueryqueryregsub3D = ` +defaults test + http-request set-query %[query,regsub(%3D,=,g)] +` +const defaults_httprequestsetsrchdrsrc = ` +defaults test + http-request set-src hdr(src) +` +const defaults_httprequestsetsrchdrsrcifFALSE = ` +defaults test + http-request set-src hdr(src) if FALSE +` +const defaults_httprequestsetsrcporthdrport = ` +defaults test + http-request set-src-port hdr(port) +` +const defaults_httprequestsetsrcporthdrportifFA = ` +defaults test + http-request set-src-port hdr(port) if FALSE +` +const defaults_httprequestsettimeoutserver20 = ` +defaults test + http-request set-timeout server 20 +` +const defaults_httprequestsettimeouttunnel20 = ` +defaults test + http-request set-timeout tunnel 20 +` +const defaults_httprequestsettimeouttunnel20sif = ` +defaults test + http-request set-timeout tunnel 20s if TRUE +` +const defaults_httprequestsettimeoutserver20sif = ` +defaults test + http-request set-timeout server 20s if TRUE +` +const defaults_httprequestsettimeoutclient20 = ` +defaults test + http-request set-timeout client 20 +` +const defaults_httprequestsettimeoutclient20sif = ` +defaults test + http-request set-timeout client 20s if TRUE +` +const defaults_httprequestsettos0ifFALSE = ` +defaults test + http-request set-tos 0 if FALSE +` +const defaults_httprequestsettos0 = ` +defaults test + http-request set-tos 0 +` +const defaults_httprequestseturihdrhostpath = ` +defaults test + http-request set-uri /%[hdr(host)]%[path] +` +const defaults_httprequestsetvarreqmyvarreqfhdr = ` +defaults test + http-request set-var(req.my_var) req.fhdr(user-agent),lower +` +const defaults_httprequestsetvarfmtreqmyvarreqf = ` +defaults test + http-request set-var-fmt(req.my_var) req.fhdr(user-agent),lower +` +const defaults_httprequestsilentdrop = ` +defaults test + http-request silent-drop +` +const defaults_httprequestsilentdropifFALSE = ` +defaults test + http-request silent-drop if FALSE +` +const defaults_httprequeststrictmodeon = ` +defaults test + http-request strict-mode on +` +const defaults_httprequeststrictmodeonifFALSE = ` +defaults test + http-request strict-mode on if FALSE +` +const defaults_httprequesttarpit = ` +defaults test + http-request tarpit +` +const defaults_httprequesttarpitdenystatus400 = ` +defaults test + http-request tarpit deny_status 400 +` +const defaults_httprequesttarpitifTRUE = ` +defaults test + http-request tarpit if TRUE +` +const defaults_httprequesttarpitdenystatus400if = ` +defaults test + http-request tarpit deny_status 400 if TRUE +` +const defaults_httprequesttarpitdenystatus400co = ` +defaults test + http-request tarpit deny_status 400 content-type application/json if TRUE +` +const defaults_httprequesttarpitdenystatus400co_ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json +` +const defaults_httprequesttarpitdenystatus400co__ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json default-errorfiles +` +const defaults_httprequesttarpitdenystatus400co___ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json errorfile errors +` +const defaults_httprequesttarpitdenystatus400co____ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json string error if TRUE +` +const defaults_httprequesttarpitdenystatus400co_____ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE +` +const defaults_httprequesttarpitdenystatus400co______ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json file /var/errors.file +` +const defaults_httprequesttarpitdenystatus400co_______ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json lf-file /var/errors.file +` +const defaults_httprequesttarpitdenystatus400co________ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com if TRUE +` +const defaults_httprequesttarpitdenystatus400co_________ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE +` +const defaults_httprequesttarpitdenystatus400co__________ = ` +defaults test + http-request tarpit deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla +` +const defaults_httprequesttracksc0src = ` +defaults test + http-request track-sc0 src +` +const defaults_httprequesttracksc1src = ` +defaults test + http-request track-sc1 src +` +const defaults_httprequesttracksc2src = ` +defaults test + http-request track-sc2 src +` +const defaults_httprequesttracksc5src = ` +defaults test + http-request track-sc5 src +` +const defaults_httprequesttracksc5srctableatabl = ` +defaults test + http-request track-sc5 src table a_table +` +const defaults_httprequesttracksc5srctableatabl_ = ` +defaults test + http-request track-sc5 src table a_table if some_cond +` +const defaults_httprequesttracksc5srcifsomecond = ` +defaults test + http-request track-sc5 src if some_cond +` +const defaults_httprequestunsetvarreqmyvar = ` +defaults test + http-request unset-var(req.my_var) +` +const defaults_httprequestunsetvarreqmyvarifFAL = ` +defaults test + http-request unset-var(req.my_var) if FALSE +` +const defaults_httprequestwaitforbodytime20s = ` +defaults test + http-request wait-for-body time 20s +` +const defaults_httprequestwaitforbodytime20sifT = ` +defaults test + http-request wait-for-body time 20s if TRUE +` +const defaults_httprequestwaitforbodytime20satl = ` +defaults test + http-request wait-for-body time 20s at-least 100k +` +const defaults_httprequestwaitforbodytime20satl_ = ` +defaults test + http-request wait-for-body time 20s at-least 100k if TRUE +` +const defaults_httprequestwaitforhandshake = ` +defaults test + http-request wait-for-handshake +` +const defaults_httprequestwaitforhandshakeifFAL = ` +defaults test + http-request wait-for-handshake if FALSE +` +const defaults_httprequestdoresolvetxnmyipmydns = ` +defaults test + http-request do-resolve(txn.myip,mydns) hdr(Host),lower +` +const defaults_httprequestdoresolvetxnmyipmydns_ = ` +defaults test + http-request do-resolve(txn.myip,mydns) hdr(Host),lower if { var(txn.myip) -m found } +` +const defaults_httprequestdoresolvetxnmyipmydns__ = ` +defaults test + http-request do-resolve(txn.myip,mydns) hdr(Host),lower unless { var(txn.myip) -m found } +` +const defaults_httprequestdoresolvetxnmyipmydns___ = ` +defaults test + http-request do-resolve(txn.myip,mydns,ipv4) hdr(Host),lower +` +const defaults_httprequestdoresolvetxnmyipmydns____ = ` +defaults test + http-request do-resolve(txn.myip,mydns,ipv6) hdr(Host),lower +` +const defaults_httprequestsetdstvartxnmyip = ` +defaults test + http-request set-dst var(txn.myip) +` +const defaults_httprequestsetdstvartxnmyipifvar = ` +defaults test + http-request set-dst var(txn.myip) if { var(txn.myip) -m found } +` +const defaults_httprequestsetdstvartxnmyipunles = ` +defaults test + http-request set-dst var(txn.myip) unless { var(txn.myip) -m found } +` +const defaults_httprequestsetdstporthdrxport = ` +defaults test + http-request set-dst-port hdr(x-port) +` +const defaults_httprequestsetdstporthdrxportifv = ` +defaults test + http-request set-dst-port hdr(x-port) if { var(txn.myip) -m found } +` +const defaults_httprequestsetdstporthdrxportunl = ` +defaults test + http-request set-dst-port hdr(x-port) unless { var(txn.myip) -m found } +` +const defaults_httprequestsetdstportint4000 = ` +defaults test + http-request set-dst-port int(4000) +` +const defaults_httprequestreturnstatus400defaul = ` +defaults test + http-request return status 400 default-errorfiles if { var(txn.myip) -m found } +` +const defaults_httprequestreturnstatus400errorf = ` +defaults test + http-request return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } +` +const defaults_httprequestreturnstatus400errorf_ = ` +defaults test + http-request return status 400 errorfiles myerror if { var(txn.myip) -m found } +` +const defaults_httprequestredirectlocationfileh = ` +defaults test + http-request redirect location /file.html if { var(txn.routecookie) -m found } !{ var(txn.pod),nbsrv -m found }:1] +` +const defaults_httprequestsetbandwidthlimitmyli = ` +defaults test + http-request set-bandwidth-limit my-limit +` +const defaults_httprequestsetbandwidthlimitmyli_ = ` +defaults test + http-request set-bandwidth-limit my-limit limit 1m period 10s +` +const defaults_httprequestsetbandwidthlimitmyli__ = ` +defaults test + http-request set-bandwidth-limit my-limit period 10s +` +const defaults_httprequestsetbandwidthlimitmyli___ = ` +defaults test + http-request set-bandwidth-limit my-limit limit 1m +` +const defaults_httprequestsetbcmark123 = ` +defaults test + http-request set-bc-mark 123 +` +const defaults_httprequestsetbcmark0xffffffff = ` +defaults test + http-request set-bc-mark 0xffffffff +` +const defaults_httprequestsetbcmarkhdrportifFAL = ` +defaults test + http-request set-bc-mark hdr(port) if FALSE +` +const defaults_httprequestsetbctos10 = ` +defaults test + http-request set-bc-tos 10 +` +const defaults_httprequestsetfcmark0 = ` +defaults test + http-request set-fc-mark 0 +` +const defaults_httprequestsetfctos0xffifTRUE = ` +defaults test + http-request set-fc-tos 0xff if TRUE +` +const defaults_httprequestaddheaderAuthorizatio = ` +defaults test + http-request add-header Authorization Basic\ eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz +` +const defaults_httprequestaddheaderAuthorisatio = ` +defaults test + http-request add-header Authorisation "Basic eC1oYXByb3h5LXJlY3J1aXRzOlBlb3BsZSB3aG8gZGVjb2RlIG1lc3NhZ2VzIG9mdGVuIGxvdmUgd29ya2luZyBhdCBIQVByb3h5LiBEbyBub3QgYmUgc2h5LCBjb250YWN0IHVz" +` +const defaults_httprequestreturnstatus200conten = ` +defaults test + http-request return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } +` +const defaults_httprequestreturnstatus200conten_ = ` +defaults test + http-request return status 200 content-type "text/plain" string "My content" unless { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext = ` +defaults test + http-request return content-type "text/plain" string "My content" if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext_ = ` +defaults test + http-request return content-type 'text/plain' string 'My content' if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext__ = ` +defaults test + http-request return content-type "text/plain" lf-string "Hello, you are: %[src]" if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext___ = ` +defaults test + http-request return content-type "text/plain" file /my/fancy/response/file if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext____ = ` +defaults test + http-request return content-type "text/plain" lf-file /my/fancy/lof/format/response/file if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext_____ = ` +defaults test + http-request return content-type "text/plain" string "My content" hdr X-value value if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext______ = ` +defaults test + http-request return content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value if { var(txn.myip) -m found } +` +const defaults_httprequestreturncontenttypetext_______ = ` +defaults test + http-request return content-type "text/plain" lf-string "Hello, you are: %[src]" +` +const defaults_httprequestredirectlocationfileh_ = ` +defaults test + http-request redirect location /file.html if { var(txn.routecookie) "ROUTEMP" }:1 +` +const defaults_httpresponsesetmapmaplstsrcreshd = ` +defaults test + http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value +` +const defaults_httpresponsesetmapmaplstsrcreshd_ = ` +defaults test + http-response set-map(map.lst) %[src] %[res.hdr(X-Value)] +` +const defaults_httpresponseaddaclmaplstsrc = ` +defaults test + http-response add-acl(map.lst) [src] +` +const defaults_httpresponseaddheaderXvaluevalue = ` +defaults test + http-response add-header X-value value +` +const defaults_httpresponsedelaclmaplstsrc = ` +defaults test + http-response del-acl(map.lst) [src] +` +const defaults_httpresponseallow = ` +defaults test + http-response allow +` +const defaults_httpresponsecachestorecachename = ` +defaults test + http-response cache-store cache-name +` +const defaults_httpresponsecachestorecachenamei = ` +defaults test + http-response cache-store cache-name if FALSE +` +const defaults_httpresponsedelheaderXvalue = ` +defaults test + http-response del-header X-value +` +const defaults_httpresponsedelmapmaplstsrcifval = ` +defaults test + http-response del-map(map.lst) %[src] if ! value +` +const defaults_httpresponsedelmapmaplstsrc = ` +defaults test + http-response del-map(map.lst) %[src] +` +const defaults_httpresponsedeny = ` +defaults test + http-response deny +` +const defaults_httpresponsedenydenystatus400 = ` +defaults test + http-response deny deny_status 400 +` +const defaults_httpresponsedenyifTRUE = ` +defaults test + http-response deny if TRUE +` +const defaults_httpresponsedenydenystatus400ifT = ` +defaults test + http-response deny deny_status 400 if TRUE +` +const defaults_httpresponsedenydenystatus400con = ` +defaults test + http-response deny deny_status 400 content-type application/json if TRUE +` +const defaults_httpresponsedenydenystatus400con_ = ` +defaults test + http-response deny deny_status 400 content-type application/json +` +const defaults_httpresponsedenydenystatus400con__ = ` +defaults test + http-response deny deny_status 400 content-type application/json default-errorfiles +` +const defaults_httpresponsedenydenystatus400con___ = ` +defaults test + http-response deny deny_status 400 content-type application/json errorfile errors +` +const defaults_httpresponsedenydenystatus400con____ = ` +defaults test + http-response deny deny_status 400 content-type application/json string error if TRUE +` +const defaults_httpresponsedenydenystatus400con_____ = ` +defaults test + http-response deny deny_status 400 content-type application/json lf-string error hdr host google.com if TRUE +` +const defaults_httpresponsedenydenystatus400con______ = ` +defaults test + http-response deny deny_status 400 content-type application/json file /var/errors.file +` +const defaults_httpresponsedenydenystatus400con_______ = ` +defaults test + http-response deny deny_status 400 content-type application/json lf-file /var/errors.file +` +const defaults_httpresponsedenydenystatus400con________ = ` +defaults test + http-response deny deny_status 400 content-type application/json string error hdr host google.com if TRUE +` +const defaults_httpresponsedenydenystatus400con_________ = ` +defaults test + http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla if TRUE +` +const defaults_httpresponsedenydenystatus400con__________ = ` +defaults test + http-response deny deny_status 400 content-type application/json string error hdr host google.com hdr x-value bla +` +const defaults_httpresponseluafoo = ` +defaults test + http-response lua.foo +` +const defaults_httpresponseluafooifFALSE = ` +defaults test + http-response lua.foo if FALSE +` +const defaults_httpresponseluafooparam = ` +defaults test + http-response lua.foo param +` +const defaults_httpresponseluafooparamparam2 = ` +defaults test + http-response lua.foo param param2 +` +const defaults_httpresponseredirectprefixhttpsm = ` +defaults test + http-response redirect prefix https://mysite.com +` +const defaults_httpresponsereplaceheaderUserage = ` +defaults test + http-response replace-header User-agent curl foo +` +const defaults_httpresponsereplacevalueXForward = ` +defaults test + http-response replace-value X-Forwarded-For ^192.168.(.*)$ 172.16.1 +` +const defaults_httpresponsereturnstatus400defau = ` +defaults test + http-response return status 400 default-errorfiles if { var(txn.myip) -m found } +` +const defaults_httpresponsereturnstatus400error = ` +defaults test + http-response return status 400 errorfile /my/fancy/errorfile if { var(txn.myip) -m found } +` +const defaults_httpresponsereturnstatus400error_ = ` +defaults test + http-response return status 400 errorfiles myerror if { var(txn.myip) -m found } +` +const defaults_httpresponsescaddgpc121 = ` +defaults test + http-response sc-add-gpc(1,2) 1 +` +const defaults_httpresponsescaddgpc121ifiserror = ` +defaults test + http-response sc-add-gpc(1,2) 1 if is-error +` +const defaults_httpresponsescincgpc12 = ` +defaults test + http-response sc-inc-gpc(1,2) +` +const defaults_httpresponsescincgpc12ifFALSE = ` +defaults test + http-response sc-inc-gpc(1,2) if FALSE +` +const defaults_httpresponsescincgpc01 = ` +defaults test + http-response sc-inc-gpc0(1) +` +const defaults_httpresponsescincgpc01ifFALSE = ` +defaults test + http-response sc-inc-gpc0(1) if FALSE +` +const defaults_httpresponsescincgpc11 = ` +defaults test + http-response sc-inc-gpc1(1) +` +const defaults_httpresponsescincgpc11ifFALSE = ` +defaults test + http-response sc-inc-gpc1(1) if FALSE +` +const defaults_httpresponsescsetgpt12hdrHostlow = ` +defaults test + http-response sc-set-gpt(1,2) hdr(Host),lower if FALSE +` +const defaults_httpresponsescsetgpt01hdrHostlow = ` +defaults test + http-response sc-set-gpt0(1) hdr(Host),lower +` +const defaults_httpresponsescsetgpt0110 = ` +defaults test + http-response sc-set-gpt0(1) 10 +` +const defaults_httpresponsescsetgpt01hdrHostlow_ = ` +defaults test + http-response sc-set-gpt0(1) hdr(Host),lower if FALSE +` +const defaults_httpresponsesendspoegroupengineg = ` +defaults test + http-response send-spoe-group engine group +` +const defaults_httpresponsesetheaderXvaluevalue = ` +defaults test + http-response set-header X-value value +` +const defaults_httpresponsesetloglevelsilent = ` +defaults test + http-response set-log-level silent +` +const defaults_httpresponsesetmark20 = ` +defaults test + http-response set-mark 20 +` +const defaults_httpresponsesetmark0x1Ab = ` +defaults test + http-response set-mark 0x1Ab +` +const defaults_httpresponsesetnice0 = ` +defaults test + http-response set-nice 0 +` +const defaults_httpresponsesetnice0ifFALSE = ` +defaults test + http-response set-nice 0 if FALSE +` +const defaults_httpresponsesetstatus503 = ` +defaults test + http-response set-status 503 +` +const defaults_httpresponsesettimeoutserver20 = ` +defaults test + http-response set-timeout server 20 +` +const defaults_httpresponsesettimeouttunnel20 = ` +defaults test + http-response set-timeout tunnel 20 +` +const defaults_httpresponsesettimeouttunnel20si = ` +defaults test + http-response set-timeout tunnel 20s if TRUE +` +const defaults_httpresponsesettimeoutserver20si = ` +defaults test + http-response set-timeout server 20s if TRUE +` +const defaults_httpresponsesettimeoutclient20 = ` +defaults test + http-response set-timeout client 20 +` +const defaults_httpresponsesettimeoutclient20si = ` +defaults test + http-response set-timeout client 20s if TRUE +` +const defaults_httpresponsesettos0ifFALSE = ` +defaults test + http-response set-tos 0 if FALSE +` +const defaults_httpresponsesettos0 = ` +defaults test + http-response set-tos 0 +` +const defaults_httpresponsesetvarreqmyvarresfhd = ` +defaults test + http-response set-var(req.my_var) res.fhdr(user-agent),lower +` +const defaults_httpresponsesetvarfmtreqmyvarres = ` +defaults test + http-response set-var-fmt(req.my_var) res.fhdr(user-agent),lower +` +const defaults_httpresponsesilentdrop = ` +defaults test + http-response silent-drop +` +const defaults_httpresponsesilentdropifFALSE = ` +defaults test + http-response silent-drop if FALSE +` +const defaults_httpresponseunsetvarreqmyvar = ` +defaults test + http-response unset-var(req.my_var) +` +const defaults_httpresponseunsetvarreqmyvarifFA = ` +defaults test + http-response unset-var(req.my_var) if FALSE +` +const defaults_httpresponsetracksc0srcifFALSE = ` +defaults test + http-response track-sc0 src if FALSE +` +const defaults_httpresponsetracksc0srctabletrif = ` +defaults test + http-response track-sc0 src table tr if FALSE +` +const defaults_httpresponsetracksc0src = ` +defaults test + http-response track-sc0 src +` +const defaults_httpresponsetracksc1srcifFALSE = ` +defaults test + http-response track-sc1 src if FALSE +` +const defaults_httpresponsetracksc1srctabletrif = ` +defaults test + http-response track-sc1 src table tr if FALSE +` +const defaults_httpresponsetracksc1src = ` +defaults test + http-response track-sc1 src +` +const defaults_httpresponsetracksc2srcifFALSE = ` +defaults test + http-response track-sc2 src if FALSE +` +const defaults_httpresponsetracksc2srctabletrif = ` +defaults test + http-response track-sc2 src table tr if FALSE +` +const defaults_httpresponsetracksc2src = ` +defaults test + http-response track-sc2 src +` +const defaults_httpresponsetracksc5src = ` +defaults test + http-response track-sc5 src +` +const defaults_httpresponsetracksc5srctableatab = ` +defaults test + http-response track-sc5 src table a_table +` +const defaults_httpresponsetracksc5srctableatab_ = ` +defaults test + http-response track-sc5 src table a_table if some_cond +` +const defaults_httpresponsetracksc5srcifsomecon = ` +defaults test + http-response track-sc5 src if some_cond +` +const defaults_httpresponsestrictmodeon = ` +defaults test + http-response strict-mode on +` +const defaults_httpresponsestrictmodeonifFALSE = ` +defaults test + http-response strict-mode on if FALSE +` +const defaults_httpresponsewaitforbodytime20s = ` +defaults test + http-response wait-for-body time 20s +` +const defaults_httpresponsewaitforbodytime20sif = ` +defaults test + http-response wait-for-body time 20s if TRUE +` +const defaults_httpresponsewaitforbodytime20sat = ` +defaults test + http-response wait-for-body time 20s at-least 100k +` +const defaults_httpresponsewaitforbodytime20sat_ = ` +defaults test + http-response wait-for-body time 20s at-least 100k if TRUE +` +const defaults_httpresponsesetbandwidthlimitmyl = ` +defaults test + http-response set-bandwidth-limit my-limit +` +const defaults_httpresponsesetbandwidthlimitmyl_ = ` +defaults test + http-response set-bandwidth-limit my-limit limit 1m period 10s +` +const defaults_httpresponsesetbandwidthlimitmyl__ = ` +defaults test + http-response set-bandwidth-limit my-limit period 10s +` +const defaults_httpresponsesetbandwidthlimitmyl___ = ` +defaults test + http-response set-bandwidth-limit my-limit limit 1m +` +const defaults_httpresponsesetfcmark2000 = ` +defaults test + http-response set-fc-mark 2000 +` +const defaults_httpresponsesetfctos200 = ` +defaults test + http-response set-fc-tos 200 +` +const defaults_httpresponsereturnstatus200conte = ` +defaults test + http-response return status 200 content-type "text/plain" string "My content" if { var(txn.myip) -m found } +` +const defaults_httpresponsereturnstatus200conte_ = ` +defaults test + http-response return status 200 content-type "text/plain" string "My content" unless { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex = ` +defaults test + http-response return content-type "text/plain" string "My content" if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex_ = ` +defaults test + http-response return content-type 'text/plain' string 'My content' if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex__ = ` +defaults test + http-response return content-type "text/plain" lf-string "Hello, you are: %[src]" if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex___ = ` +defaults test + http-response return content-type "text/plain" file /my/fancy/response/file if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex____ = ` +defaults test + http-response return content-type "text/plain" lf-file /my/fancy/lof/format/response/file if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex_____ = ` +defaults test + http-response return content-type "text/plain" string "My content" hdr X-value value if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex______ = ` +defaults test + http-response return content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value if { var(txn.myip) -m found } +` +const defaults_httpresponsereturncontenttypetex_______ = ` +defaults test + http-response return content-type "text/plain" lf-string "Hello, you are: %[src]" +` +const defaults_httpafterresponseallow = ` +defaults test + http-after-response allow +` +const defaults_httpafterresponseallowifacl = ` +defaults test + http-after-response allow if acl +` +const defaults_httpafterresponsesetheaderStrict = ` +defaults test + http-after-response set-header Strict-Transport-Security \"max-age=31536000\" +` +const defaults_httpafterresponseaddheaderXHeade = ` +defaults test + http-after-response add-header X-Header \"foo=bar\" +` +const defaults_httpafterresponseaddheaderXHeade_ = ` +defaults test + http-after-response add-header X-Header \"foo=bar\" if acl +` +const defaults_httpafterresponseaddheaderXHeade__ = ` +defaults test + http-after-response add-header X-Header \"foo=bar\" unless acl +` +const defaults_httpafterresponseallowunlessacl = ` +defaults test + http-after-response allow unless acl +` +const defaults_httpafterresponsedelheaderXValue = ` +defaults test + http-after-response del-header X-Value +` +const defaults_httpafterresponsedelheaderXValue_ = ` +defaults test + http-after-response del-header X-Value -m GET +` +const defaults_httpafterresponsedelheaderXValue__ = ` +defaults test + http-after-response del-header X-Value -m GET if acl +` +const defaults_httpafterresponsedelheaderXValue___ = ` +defaults test + http-after-response del-header X-Value -m GET unless acl +` +const defaults_httpafterresponsereplaceheaderSe = ` +defaults test + http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 +` +const defaults_httpafterresponsereplaceheaderSe_ = ` +defaults test + http-after-response replace-header Set-Cookie (C=[^;]*);(.*) \\1;ip=%bi;\\2 if acl +` +const defaults_httpafterresponsereplacevalueCac = ` +defaults test + http-after-response replace-value Cache-control ^public$ private +` +const defaults_httpafterresponsereplacevalueCac_ = ` +defaults test + http-after-response replace-value Cache-control ^public$ private if acl +` +const defaults_httpafterresponsesetstatus431 = ` +defaults test + http-after-response set-status 431 +` +const defaults_httpafterresponsesetstatus503rea = ` +defaults test + http-after-response set-status 503 reason \"SlowDown\" +` +const defaults_httpafterresponsesetstatus500rea = ` +defaults test + http-after-response set-status 500 reason \"ServiceUnavailable\" if acl +` +const defaults_httpafterresponsesetstatus500rea_ = ` +defaults test + http-after-response set-status 500 reason \"ServiceUnavailable\" unless acl +` +const defaults_httpafterresponsesetvarsesslastr = ` +defaults test + http-after-response set-var(sess.last_redir) res.hdr(location) +` +const defaults_httpafterresponsesetvarsesslastr_ = ` +defaults test + http-after-response set-var(sess.last_redir) res.hdr(location) if acl +` +const defaults_httpafterresponsesetvarsesslastr__ = ` +defaults test + http-after-response set-var(sess.last_redir) res.hdr(location) unless acl +` +const defaults_httpafterresponsestrictmodeon = ` +defaults test + http-after-response strict-mode on +` +const defaults_httpafterresponsestrictmodeoff = ` +defaults test + http-after-response strict-mode off +` +const defaults_httpafterresponseunsetvarsesslas = ` +defaults test + http-after-response unset-var(sess.last_redir) +` +const defaults_httpafterresponseunsetvarsesslas_ = ` +defaults test + http-after-response unset-var(sess.last_redir) if acl +` +const defaults_httpafterresponseunsetvarsesslas__ = ` +defaults test + http-after-response unset-var(sess.last_redir) unless acl +` +const defaults_httpafterresponsesetmapmaplstsrc = ` +defaults test + http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] if value +` +const defaults_httpafterresponsesetmapmaplstsrc_ = ` +defaults test + http-after-response set-map(map.lst) %[src] %[res.hdr(X-Value)] +` +const defaults_httpafterresponsedelaclmaplstsrc = ` +defaults test + http-after-response del-acl(map.lst) [src] +` +const defaults_httpafterresponsedelmapmaplstsrc = ` +defaults test + http-after-response del-map(map.lst) %[src] if ! value +` +const defaults_httpafterresponsedelmapmaplstsrc_ = ` +defaults test + http-after-response del-map(map.lst) %[src] +` +const defaults_httpafterresponsescaddgpc121 = ` +defaults test + http-after-response sc-add-gpc(1,2) 1 +` +const defaults_httpafterresponsescaddgpc121ifis = ` +defaults test + http-after-response sc-add-gpc(1,2) 1 if is-error +` +const defaults_httpafterresponsescincgpc12 = ` +defaults test + http-after-response sc-inc-gpc(1,2) +` +const defaults_httpafterresponsescincgpc12ifise = ` +defaults test + http-after-response sc-inc-gpc(1,2) if is-error +` +const defaults_httpafterresponsescincgpc01 = ` +defaults test + http-after-response sc-inc-gpc0(1) +` +const defaults_httpafterresponsescincgpc01ifFAL = ` +defaults test + http-after-response sc-inc-gpc0(1) if FALSE +` +const defaults_httpafterresponsescincgpc11 = ` +defaults test + http-after-response sc-inc-gpc1(1) +` +const defaults_httpafterresponsescincgpc11ifFAL = ` +defaults test + http-after-response sc-inc-gpc1(1) if FALSE +` +const defaults_httpafterresponsescsetgpt1210 = ` +defaults test + http-after-response sc-set-gpt(1,2) 10 +` +const defaults_httpafterresponsescsetgpt01hdrHo = ` +defaults test + http-after-response sc-set-gpt0(1) hdr(Host),lower +` +const defaults_httpafterresponsescsetgpt0110 = ` +defaults test + http-after-response sc-set-gpt0(1) 10 +` +const defaults_httpafterresponsescsetgpt01hdrHo_ = ` +defaults test + http-after-response sc-set-gpt0(1) hdr(Host),lower if FALSE +` +const defaults_httperrorstatus400 = ` +defaults test + http-error status 400 +` +const defaults_httperrorstatus400defaulterrorfi = ` +defaults test + http-error status 400 default-errorfiles +` +const defaults_httperrorstatus400errorfilemyfan = ` +defaults test + http-error status 400 errorfile /my/fancy/errorfile +` +const defaults_httperrorstatus400errorfilesmyer = ` +defaults test + http-error status 400 errorfiles myerror +` +const defaults_httperrorstatus200contenttypetex = ` +defaults test + http-error status 200 content-type "text/plain" string "My content" +` +const defaults_httperrorstatus400contenttypetex = ` +defaults test + http-error status 400 content-type "text/plain" lf-string "Hello, you are: %[src]" +` +const defaults_httperrorstatus400contenttypetex_ = ` +defaults test + http-error status 400 content-type "text/plain" file /my/fancy/response/file +` +const defaults_httperrorstatus400contenttypetex__ = ` +defaults test + http-error status 400 content-type "text/plain" lf-file /my/fancy/lof/format/response/file +` +const defaults_httperrorstatus400contenttypetex___ = ` +defaults test + http-error status 400 content-type "text/plain" string "My content" hdr X-value value +` +const defaults_httperrorstatus400contenttypetex____ = ` +defaults test + http-error status 400 content-type "text/plain" string "My content" hdr X-value x-value hdr Y-value y-value +` +const defaults_httpcheckcommenttestcomment = ` +defaults test + http-check comment testcomment +` +const defaults_httpcheckconnect = ` +defaults test + http-check connect +` +const defaults_httpcheckconnectdefault = ` +defaults test + http-check connect default +` +const defaults_httpcheckconnectport8080 = ` +defaults test + http-check connect port 8080 +` +const defaults_httpcheckconnectaddr8888 = ` +defaults test + http-check connect addr 8.8.8.8 +` +const defaults_httpcheckconnectsendproxy = ` +defaults test + http-check connect send-proxy +` +const defaults_httpcheckconnectviasocks4 = ` +defaults test + http-check connect via-socks4 +` +const defaults_httpcheckconnectssl = ` +defaults test + http-check connect ssl +` +const defaults_httpcheckconnectsnihaproxy1wteu = ` +defaults test + http-check connect sni haproxy.1wt.eu +` +const defaults_httpcheckconnectalpnh2http11 = ` +defaults test + http-check connect alpn h2,http/1.1 +` +const defaults_httpcheckconnectprotoh2 = ` +defaults test + http-check connect proto h2 +` +const defaults_httpcheckconnectlinger = ` +defaults test + http-check connect linger +` +const defaults_httpcheckconnectcommenttestcomme = ` +defaults test + http-check connect comment testcomment +` +const defaults_httpcheckconnectport443addr8888s = ` +defaults test + http-check connect port 443 addr 8.8.8.8 send-proxy via-socks4 ssl sni haproxy.1wt.eu alpn h2,http/1.1 linger proto h2 comment testcomment +` +const defaults_httpcheckdisableon404 = ` +defaults test + http-check disable-on-404 +` +const defaults_httpcheckexpectstatus200 = ` +defaults test + http-check expect status 200 +` +const defaults_httpcheckexpectminrecv50status20 = ` +defaults test + http-check expect min-recv 50 status 200 +` +const defaults_httpcheckexpectcommenttestcommen = ` +defaults test + http-check expect comment testcomment status 200 +` +const defaults_httpcheckexpectokstatusL7OKstatu = ` +defaults test + http-check expect ok-status L7OK status 200 +` +const defaults_httpcheckexpecterrorstatusL7RSPs = ` +defaults test + http-check expect error-status L7RSP status 200 +` +const defaults_httpcheckexpecttoutstatusL7TOUTs = ` +defaults test + http-check expect tout-status L7TOUT status 200 +` +const defaults_httpcheckexpectonsuccessmylogfor = ` +defaults test + http-check expect on-success \"my-log-format\" status 200 +` +const defaults_httpcheckexpectonerrormylogforma = ` +defaults test + http-check expect on-error \"my-log-format\" status 200 +` +const defaults_httpcheckexpectstatuscode500stat = ` +defaults test + http-check expect status-code \"500\" status 200 +` +const defaults_httpcheckexpectstringSQLError = ` +defaults test + http-check expect ! string SQL\\ Error +` +const defaults_httpcheckexpectrstatus5 = ` +defaults test + http-check expect ! rstatus ^5 +` +const defaults_httpcheckexpectrstringtag09afhtm = ` +defaults test + http-check expect rstring +` +const defaults_httpchecksendmethGET = ` +defaults test + http-check send meth GET +` +const defaults_httpchecksendurihealth = ` +defaults test + http-check send uri /health +` +const defaults_httpchecksendverHTTP11 = ` +defaults test + http-check send ver \"HTTP/1.1\" +` +const defaults_httpchecksendcommenttestcomment = ` +defaults test + http-check send comment testcomment +` +const defaults_httpchecksendmethGETurihealthver = ` +defaults test + http-check send meth GET uri /health ver \"HTTP/1.1\" hdr Host example.com hdr Accept-Encoding gzip body '{\"key\":\"value\"}' +` +const defaults_httpchecksendurilfmylogformatbod = ` +defaults test + http-check send uri-lf my-log-format body-lf 'my-log-format' +` +const defaults_httpchecksendstate = ` +defaults test + http-check send-state +` +const defaults_httpchecksetvarcheckportint1234 = ` +defaults test + http-check set-var(check.port) int(1234) +` +const defaults_httpchecksetvarfmtcheckportint12 = ` +defaults test + http-check set-var-fmt(check.port) int(1234) +` +const defaults_httpcheckunsetvartxnfrom = ` +defaults test + http-check unset-var(txn.from) +` +const defaults_tcpcheckcommenttestcomment = ` +defaults test + tcp-check comment testcomment +` +const defaults_tcpcheckconnect = ` +defaults test + tcp-check connect +` +const defaults_tcpcheckconnectport443ssl = ` +defaults test + tcp-check connect port 443 ssl +` +const defaults_tcpcheckconnectport110linger = ` +defaults test + tcp-check connect port 110 linger +` +const defaults_tcpcheckconnectport143 = ` +defaults test + tcp-check connect port 143 +` +const defaults_tcpcheckexpectstringPONG = ` +defaults test + tcp-check expect string +PONG +` +const defaults_tcpcheckexpectstringrolemaster = ` +defaults test + tcp-check expect string role:master +` +const defaults_tcpcheckexpectstringOK = ` +defaults test + tcp-check expect string +OK +` +const defaults_tcpchecksendlftestfmt = ` +defaults test + tcp-check send-lf testfmt +` +const defaults_tcpchecksendlftestfmtcommenttest = ` +defaults test + tcp-check send-lf testfmt comment testcomment +` +const defaults_tcpchecksendbinarytesthexstring = ` +defaults test + tcp-check send-binary testhexstring +` +const defaults_tcpchecksendbinarytesthexstringc = ` +defaults test + tcp-check send-binary testhexstring comment testcomment +` +const defaults_tcpchecksendbinarylftesthexfmt = ` +defaults test + tcp-check send-binary-lf testhexfmt +` +const defaults_tcpchecksendbinarylftesthexfmtco = ` +defaults test + tcp-check send-binary-lf testhexfmt comment testcomment +` +const defaults_tcpchecksetvarcheckportint1234 = ` +defaults test + tcp-check set-var(check.port) int(1234) +` +const defaults_tcpcheckexpectstringOKPOP3ready = ` +defaults test + tcp-check expect string +OK\ POP3\ ready +` +const defaults_tcpcheckexpectstringOKIMAP4ready = ` +defaults test + tcp-check expect string *\ OK\ IMAP4\ ready +` +const defaults_tcpchecksendPINGrn = ` +defaults test + tcp-check send PING\r\n +` +const defaults_tcpchecksendPINGrncommenttestcom = ` +defaults test + tcp-check send PING\r\n comment testcomment +` +const defaults_tcpchecksendQUITrn = ` +defaults test + tcp-check send QUIT\r\n +` +const defaults_tcpchecksendQUITrncommenttestcom = ` +defaults test + tcp-check send QUIT\r\n comment testcomment +` +const defaults_tcpchecksendinforeplicationrn = ` +defaults test + tcp-check send info\ replication\r\n +` +const defaults_tcpchecksetvarfmtchecknameH = ` +defaults test + tcp-check set-var-fmt(check.name) "%H" +` +const defaults_tcpchecksetvarfmttxnfromaddrsrcs = ` +defaults test + tcp-check set-var-fmt(txn.from) "addr=%[src]:%[src_port]" +` +const defaults_tcpcheckunsetvartxnfrom = ` +defaults test + tcp-check unset-var(txn.from) +` +const defaults_tcprequestcontentaccept = ` +defaults test + tcp-request content accept +` +const defaults_tcprequestcontentacceptifHTTP = ` +defaults test + tcp-request content accept if !HTTP +` +const defaults_tcprequestcontentreject = ` +defaults test + tcp-request content reject +` +const defaults_tcprequestcontentrejectifHTTP = ` +defaults test + tcp-request content reject if !HTTP +` +const defaults_tcprequestcontentcapturereqpaylo = ` +defaults test + tcp-request content capture req.payload(0,6) len 6 +` +const defaults_tcprequestcontentcapturereqpaylo_ = ` +defaults test + tcp-request content capture req.payload(0,6) len 6 if !HTTP +` +const defaults_tcprequestcontentdoresolvetxnmyi = ` +defaults test + tcp-request content do-resolve(txn.myip,mydns,ipv6) capture.req.hdr(0),lower +` +const defaults_tcprequestcontentdoresolvetxnmyi_ = ` +defaults test + tcp-request content do-resolve(txn.myip,mydns) capture.req.hdr(0),lower +` +const defaults_tcprequestcontentsetpriorityclas = ` +defaults test + tcp-request content set-priority-class int(1) +` +const defaults_tcprequestcontentsetpriorityclas_ = ` +defaults test + tcp-request content set-priority-class int(1) if some_check +` +const defaults_tcprequestcontentsetpriorityoffs = ` +defaults test + tcp-request content set-priority-offset int(10) +` +const defaults_tcprequestcontentsetpriorityoffs_ = ` +defaults test + tcp-request content set-priority-offset int(10) if some_check +` +const defaults_tcprequestcontenttracksc0src = ` +defaults test + tcp-request content track-sc0 src +` +const defaults_tcprequestcontenttracksc0srcifso = ` +defaults test + tcp-request content track-sc0 src if some_check +` +const defaults_tcprequestcontenttracksc1src = ` +defaults test + tcp-request content track-sc1 src +` +const defaults_tcprequestcontenttracksc1srcifso = ` +defaults test + tcp-request content track-sc1 src if some_check +` +const defaults_tcprequestcontenttracksc2src = ` +defaults test + tcp-request content track-sc2 src +` +const defaults_tcprequestcontenttracksc2srcifso = ` +defaults test + tcp-request content track-sc2 src if some_check +` +const defaults_tcprequestcontenttracksc0srctabl = ` +defaults test + tcp-request content track-sc0 src table foo +` +const defaults_tcprequestcontenttracksc0srctabl_ = ` +defaults test + tcp-request content track-sc0 src table foo if some_check +` +const defaults_tcprequestcontenttracksc1srctabl = ` +defaults test + tcp-request content track-sc1 src table foo +` +const defaults_tcprequestcontenttracksc1srctabl_ = ` +defaults test + tcp-request content track-sc1 src table foo if some_check +` +const defaults_tcprequestcontenttracksc2srctabl = ` +defaults test + tcp-request content track-sc2 src table foo +` +const defaults_tcprequestcontenttracksc2srctabl_ = ` +defaults test + tcp-request content track-sc2 src table foo if some_check +` +const defaults_tcprequestcontenttracksc5src = ` +defaults test + tcp-request content track-sc5 src +` +const defaults_tcprequestcontenttracksc5srcifso = ` +defaults test + tcp-request content track-sc5 src if some_check +` +const defaults_tcprequestcontenttracksc5srctabl = ` +defaults test + tcp-request content track-sc5 src table foo +` +const defaults_tcprequestcontenttracksc5srctabl_ = ` +defaults test + tcp-request content track-sc5 src table foo if some_check +` +const defaults_tcprequestcontentscincgpc12 = ` +defaults test + tcp-request content sc-inc-gpc(1,2) +` +const defaults_tcprequestcontentscincgpc12ifise = ` +defaults test + tcp-request content sc-inc-gpc(1,2) if is-error +` +const defaults_tcprequestcontentscincgpc02 = ` +defaults test + tcp-request content sc-inc-gpc0(2) +` +const defaults_tcprequestcontentscincgpc02ifise = ` +defaults test + tcp-request content sc-inc-gpc0(2) if is-error +` +const defaults_tcprequestcontentscincgpc12_ = ` +defaults test + tcp-request content sc-inc-gpc1(2) +` +const defaults_tcprequestcontentscincgpc12ifise_ = ` +defaults test + tcp-request content sc-inc-gpc1(2) if is-error +` +const defaults_tcprequestcontentscsetgptx91337i = ` +defaults test + tcp-request content sc-set-gpt(x,9) 1337 if exceeds_limit +` +const defaults_tcprequestcontentscsetgpt001337 = ` +defaults test + tcp-request content sc-set-gpt0(0) 1337 +` +const defaults_tcprequestcontentscsetgpt001337i = ` +defaults test + tcp-request content sc-set-gpt0(0) 1337 if exceeds_limit +` +const defaults_tcprequestcontentscaddgpc121 = ` +defaults test + tcp-request content sc-add-gpc(1,2) 1 +` +const defaults_tcprequestcontentscaddgpc121ifis = ` +defaults test + tcp-request content sc-add-gpc(1,2) 1 if is-error +` +const defaults_tcprequestcontentsetdstipv410001 = ` +defaults test + tcp-request content set-dst ipv4(10.0.0.1) +` +const defaults_tcprequestcontentsetvarsesssrcsr = ` +defaults test + tcp-request content set-var(sess.src) src +` +const defaults_tcprequestcontentsetvarsessdnssl = ` +defaults test + tcp-request content set-var(sess.dn) ssl_c_s_dn +` +const defaults_tcprequestcontentsetvarfmtsesssr = ` +defaults test + tcp-request content set-var-fmt(sess.src) src +` +const defaults_tcprequestcontentsetvarfmtsessdn = ` +defaults test + tcp-request content set-var-fmt(sess.dn) ssl_c_s_dn +` +const defaults_tcprequestcontentunsetvarsesssrc = ` +defaults test + tcp-request content unset-var(sess.src) +` +const defaults_tcprequestcontentunsetvarsessdn = ` +defaults test + tcp-request content unset-var(sess.dn) +` +const defaults_tcprequestcontentsilentdrop = ` +defaults test + tcp-request content silent-drop +` +const defaults_tcprequestcontentsilentdropifHTT = ` +defaults test + tcp-request content silent-drop if !HTTP +` +const defaults_tcprequestcontentsendspoegroupen = ` +defaults test + tcp-request content send-spoe-group engine group +` +const defaults_tcprequestcontentuseserviceluade = ` +defaults test + tcp-request content use-service lua.deny +` +const defaults_tcprequestcontentuseserviceluade_ = ` +defaults test + tcp-request content use-service lua.deny if !HTTP +` +const defaults_tcprequestcontentluafoo = ` +defaults test + tcp-request content lua.foo +` +const defaults_tcprequestcontentluafooparamifHT = ` +defaults test + tcp-request content lua.foo param if !HTTP +` +const defaults_tcprequestcontentluafooparampara = ` +defaults test + tcp-request content lua.foo param param1 +` +const defaults_tcprequestconnectionaccept = ` +defaults test + tcp-request connection accept +` +const defaults_tcprequestconnectionacceptifHTTP = ` +defaults test + tcp-request connection accept if !HTTP +` +const defaults_tcprequestconnectionreject = ` +defaults test + tcp-request connection reject +` +const defaults_tcprequestconnectionrejectifHTTP = ` +defaults test + tcp-request connection reject if !HTTP +` +const defaults_tcprequestconnectionexpectproxyl = ` +defaults test + tcp-request connection expect-proxy layer4 if { src -f proxies.lst } +` +const defaults_tcprequestconnectionexpectnetsca = ` +defaults test + tcp-request connection expect-netscaler-cip layer4 +` +const defaults_tcprequestconnectionexpectnetsca_ = ` +defaults test + tcp-request connection expect-netscaler-cip layer4 if TRUE +` +const defaults_tcprequestconnectioncapturereqpa = ` +defaults test + tcp-request connection capture req.payload(0,6) len 6 +` +const defaults_tcprequestconnectiontracksc0src = ` +defaults test + tcp-request connection track-sc0 src +` +const defaults_tcprequestconnectiontracksc0srci = ` +defaults test + tcp-request connection track-sc0 src if some_check +` +const defaults_tcprequestconnectiontracksc1src = ` +defaults test + tcp-request connection track-sc1 src +` +const defaults_tcprequestconnectiontracksc1srci = ` +defaults test + tcp-request connection track-sc1 src if some_check +` +const defaults_tcprequestconnectiontracksc2src = ` +defaults test + tcp-request connection track-sc2 src +` +const defaults_tcprequestconnectiontracksc2srci = ` +defaults test + tcp-request connection track-sc2 src if some_check +` +const defaults_tcprequestconnectiontracksc0srct = ` +defaults test + tcp-request connection track-sc0 src table foo +` +const defaults_tcprequestconnectiontracksc0srct_ = ` +defaults test + tcp-request connection track-sc0 src table foo if some_check +` +const defaults_tcprequestconnectiontracksc1srct = ` +defaults test + tcp-request connection track-sc1 src table foo +` +const defaults_tcprequestconnectiontracksc1srct_ = ` +defaults test + tcp-request connection track-sc1 src table foo if some_check +` +const defaults_tcprequestconnectiontracksc2srct = ` +defaults test + tcp-request connection track-sc2 src table foo +` +const defaults_tcprequestconnectiontracksc2srct_ = ` +defaults test + tcp-request connection track-sc2 src table foo if some_check +` +const defaults_tcprequestconnectiontracksc5src = ` +defaults test + tcp-request connection track-sc5 src +` +const defaults_tcprequestconnectiontracksc5srci = ` +defaults test + tcp-request connection track-sc5 src if some_check +` +const defaults_tcprequestconnectiontracksc5srct = ` +defaults test + tcp-request connection track-sc5 src table foo +` +const defaults_tcprequestconnectiontracksc5srct_ = ` +defaults test + tcp-request connection track-sc5 src table foo if some_check +` +const defaults_tcprequestconnectionscaddgpc121 = ` +defaults test + tcp-request connection sc-add-gpc(1,2) 1 +` +const defaults_tcprequestconnectionscaddgpc121i = ` +defaults test + tcp-request connection sc-add-gpc(1,2) 1 if is-error +` +const defaults_tcprequestconnectionscincgpc12 = ` +defaults test + tcp-request connection sc-inc-gpc(1,2) +` +const defaults_tcprequestconnectionscincgpc12if = ` +defaults test + tcp-request connection sc-inc-gpc(1,2) if is-error +` +const defaults_tcprequestconnectionscincgpc02 = ` +defaults test + tcp-request connection sc-inc-gpc0(2) +` +const defaults_tcprequestconnectionscincgpc02if = ` +defaults test + tcp-request connection sc-inc-gpc0(2) if is-error +` +const defaults_tcprequestconnectionscincgpc12_ = ` +defaults test + tcp-request connection sc-inc-gpc1(2) +` +const defaults_tcprequestconnectionscincgpc12if_ = ` +defaults test + tcp-request connection sc-inc-gpc1(2) if is-error +` +const defaults_tcprequestconnectionscsetgptscx4 = ` +defaults test + tcp-request connection sc-set-gpt(scx,44) 1337 if exceeds_limit +` +const defaults_tcprequestconnectionscsetgpt0013 = ` +defaults test + tcp-request connection sc-set-gpt0(0) 1337 +` +const defaults_tcprequestconnectionscsetgpt0013_ = ` +defaults test + tcp-request connection sc-set-gpt0(0) 1337 if exceeds_limit +` +const defaults_tcprequestconnectionsetsrcsrcipm = ` +defaults test + tcp-request connection set-src src,ipmask(24) +` +const defaults_tcprequestconnectionsetsrcsrcipm_ = ` +defaults test + tcp-request connection set-src src,ipmask(24) if some_check +` +const defaults_tcprequestconnectionsetsrchdrxfo = ` +defaults test + tcp-request connection set-src hdr(x-forwarded-for) +` +const defaults_tcprequestconnectionsetsrchdrxfo_ = ` +defaults test + tcp-request connection set-src hdr(x-forwarded-for) if some_check +` +const defaults_tcprequestconnectionsilentdrop = ` +defaults test + tcp-request connection silent-drop +` +const defaults_tcprequestconnectionsilentdropif = ` +defaults test + tcp-request connection silent-drop if !HTTP +` +const defaults_tcprequestconnectionluafoo = ` +defaults test + tcp-request connection lua.foo +` +const defaults_tcprequestconnectionluafooparami = ` +defaults test + tcp-request connection lua.foo param if !HTTP +` +const defaults_tcprequestconnectionluafooparamp = ` +defaults test + tcp-request connection lua.foo param param1 +` +const defaults_tcprequestsessionaccept = ` +defaults test + tcp-request session accept +` +const defaults_tcprequestsessionacceptifHTTP = ` +defaults test + tcp-request session accept if !HTTP +` +const defaults_tcprequestsessionreject = ` +defaults test + tcp-request session reject +` +const defaults_tcprequestsessionrejectifHTTP = ` +defaults test + tcp-request session reject if !HTTP +` +const defaults_tcprequestsessiontracksc0src = ` +defaults test + tcp-request session track-sc0 src +` +const defaults_tcprequestsessiontracksc0srcifso = ` +defaults test + tcp-request session track-sc0 src if some_check +` +const defaults_tcprequestsessiontracksc1src = ` +defaults test + tcp-request session track-sc1 src +` +const defaults_tcprequestsessiontracksc1srcifso = ` +defaults test + tcp-request session track-sc1 src if some_check +` +const defaults_tcprequestsessiontracksc2src = ` +defaults test + tcp-request session track-sc2 src +` +const defaults_tcprequestsessiontracksc2srcifso = ` +defaults test + tcp-request session track-sc2 src if some_check +` +const defaults_tcprequestsessiontracksc0srctabl = ` +defaults test + tcp-request session track-sc0 src table foo +` +const defaults_tcprequestsessiontracksc0srctabl_ = ` +defaults test + tcp-request session track-sc0 src table foo if some_check +` +const defaults_tcprequestsessiontracksc1srctabl = ` +defaults test + tcp-request session track-sc1 src table foo +` +const defaults_tcprequestsessiontracksc1srctabl_ = ` +defaults test + tcp-request session track-sc1 src table foo if some_check +` +const defaults_tcprequestsessiontracksc2srctabl = ` +defaults test + tcp-request session track-sc2 src table foo +` +const defaults_tcprequestsessiontracksc2srctabl_ = ` +defaults test + tcp-request session track-sc2 src table foo if some_check +` +const defaults_tcprequestsessiontracksc5src = ` +defaults test + tcp-request session track-sc5 src +` +const defaults_tcprequestsessiontracksc5srcifso = ` +defaults test + tcp-request session track-sc5 src if some_check +` +const defaults_tcprequestsessiontracksc5srctabl = ` +defaults test + tcp-request session track-sc5 src table foo +` +const defaults_tcprequestsessiontracksc5srctabl_ = ` +defaults test + tcp-request session track-sc5 src table foo if some_check +` +const defaults_tcprequestsessionscaddgpc121 = ` +defaults test + tcp-request session sc-add-gpc(1,2) 1 +` +const defaults_tcprequestsessionscaddgpc121ifis = ` +defaults test + tcp-request session sc-add-gpc(1,2) 1 if is-error +` +const defaults_tcprequestsessionscincgpc12 = ` +defaults test + tcp-request session sc-inc-gpc(1,2) +` +const defaults_tcprequestsessionscincgpc12ifise = ` +defaults test + tcp-request session sc-inc-gpc(1,2) if is-error +` +const defaults_tcprequestsessionscincgpc02 = ` +defaults test + tcp-request session sc-inc-gpc0(2) +` +const defaults_tcprequestsessionscincgpc02ifise = ` +defaults test + tcp-request session sc-inc-gpc0(2) if is-error +` +const defaults_tcprequestsessionscincgpc12_ = ` +defaults test + tcp-request session sc-inc-gpc1(2) +` +const defaults_tcprequestsessionscincgpc12ifise_ = ` +defaults test + tcp-request session sc-inc-gpc1(2) if is-error +` +const defaults_tcprequestsessionscsetgptsc51133 = ` +defaults test + tcp-request session sc-set-gpt(sc5,1) 1337 if exceeds_limit +` +const defaults_tcprequestsessionscsetgpt001337 = ` +defaults test + tcp-request session sc-set-gpt0(0) 1337 +` +const defaults_tcprequestsessionscsetgpt001337i = ` +defaults test + tcp-request session sc-set-gpt0(0) 1337 if exceeds_limit +` +const defaults_tcprequestsessionsetvarsesssrcsr = ` +defaults test + tcp-request session set-var(sess.src) src +` +const defaults_tcprequestsessionsetvarsessdnssl = ` +defaults test + tcp-request session set-var(sess.dn) ssl_c_s_dn +` +const defaults_tcprequestsessionsetvarfmtsesssr = ` +defaults test + tcp-request session set-var-fmt(sess.src) src +` +const defaults_tcprequestsessionsetvarfmtsessdn = ` +defaults test + tcp-request session set-var-fmt(sess.dn) ssl_c_s_dn +` +const defaults_tcprequestsessionunsetvarsesssrc = ` +defaults test + tcp-request session unset-var(sess.src) +` +const defaults_tcprequestsessionunsetvarsessdn = ` +defaults test + tcp-request session unset-var(sess.dn) +` +const defaults_tcprequestsessionsilentdrop = ` +defaults test + tcp-request session silent-drop +` +const defaults_tcprequestsessionsilentdropifHTT = ` +defaults test + tcp-request session silent-drop if !HTTP +` +const defaults_tcprequestsessionattachsrvsrv1 = ` +defaults test + tcp-request session attach-srv srv1 +` +const defaults_tcprequestsessionattachsrvsrv1na = ` +defaults test + tcp-request session attach-srv srv1 name example.com +` +const defaults_tcprequestsessionattachsrvsrv1na_ = ` +defaults test + tcp-request session attach-srv srv1 name example.com if exceeds_limit +` +const defaults_tcprequestcontentsetbandwidthlim = ` +defaults test + tcp-request content set-bandwidth-limit my-limit +` +const defaults_tcprequestcontentsetbandwidthlim_ = ` +defaults test + tcp-request content set-bandwidth-limit my-limit limit 1m period 10s +` +const defaults_tcprequestcontentsetbandwidthlim__ = ` +defaults test + tcp-request content set-bandwidth-limit my-limit period 10s +` +const defaults_tcprequestcontentsetbandwidthlim___ = ` +defaults test + tcp-request content set-bandwidth-limit my-limit limit 1m +` +const defaults_tcprequestcontentsetloglevelsile = ` +defaults test + tcp-request content set-log-level silent +` +const defaults_tcprequestcontentsetloglevelsile_ = ` +defaults test + tcp-request content set-log-level silent if FALSE +` +const defaults_tcprequestcontentsetmark20 = ` +defaults test + tcp-request content set-mark 20 +` +const defaults_tcprequestcontentsetmark0x1AbifF = ` +defaults test + tcp-request content set-mark 0x1Ab if FALSE +` +const defaults_tcprequestconnectionsetmark20 = ` +defaults test + tcp-request connection set-mark 20 +` +const defaults_tcprequestconnectionsetmark0x1Ab = ` +defaults test + tcp-request connection set-mark 0x1Ab if FALSE +` +const defaults_tcprequestconnectionsetsrcporthd = ` +defaults test + tcp-request connection set-src-port hdr(port) +` +const defaults_tcprequestconnectionsetsrcporthd_ = ` +defaults test + tcp-request connection set-src-port hdr(port) if FALSE +` +const defaults_tcprequestcontentsetsrcporthdrpo = ` +defaults test + tcp-request content set-src-port hdr(port) +` +const defaults_tcprequestcontentsetsrcporthdrpo_ = ` +defaults test + tcp-request content set-src-port hdr(port) if FALSE +` +const defaults_tcprequestcontentsettos0ifFALSE = ` +defaults test + tcp-request content set-tos 0 if FALSE +` +const defaults_tcprequestcontentsettos0 = ` +defaults test + tcp-request content set-tos 0 +` +const defaults_tcprequestconnectionsettos0ifFAL = ` +defaults test + tcp-request connection set-tos 0 if FALSE +` +const defaults_tcprequestconnectionsettos0 = ` +defaults test + tcp-request connection set-tos 0 +` +const defaults_tcprequestconnectionsetvarfmttxn = ` +defaults test + tcp-request connection set-var-fmt(txn.ip_port) %%[dst]:%%[dst_port] +` +const defaults_tcprequestcontentsetnice0ifFALSE = ` +defaults test + tcp-request content set-nice 0 if FALSE +` +const defaults_tcprequestcontentsetnice0 = ` +defaults test + tcp-request content set-nice 0 +` +const defaults_tcprequestcontentswitchmodehttp = ` +defaults test + tcp-request content switch-mode http +` +const defaults_tcprequestcontentswitchmodehttpi = ` +defaults test + tcp-request content switch-mode http if FALSE +` +const defaults_tcprequestcontentswitchmodehttpp = ` +defaults test + tcp-request content switch-mode http proto my-proto +` +const defaults_tcprequestconnectionsetfcmark1 = ` +defaults test + tcp-request connection set-fc-mark 1 +` +const defaults_tcprequestconnectionsetfctos1 = ` +defaults test + tcp-request connection set-fc-tos 1 +` +const defaults_tcprequestsessionsetfcmark9999if = ` +defaults test + tcp-request session set-fc-mark 9999 if some_check +` +const defaults_tcprequestsessionsetfctos255 = ` +defaults test + tcp-request session set-fc-tos 255 +` +const defaults_tcprequestcontentsetbcmarkhdrpor = ` +defaults test + tcp-request content set-bc-mark hdr(port) +` +const defaults_tcprequestcontentsetbctos0xffifs = ` +defaults test + tcp-request content set-bc-tos 0xff if some_check +` +const defaults_tcprequestcontentsetfcmark0xffff = ` +defaults test + tcp-request content set-fc-mark 0xffffffff +` +const defaults_tcprequestcontentsetfctos100 = ` +defaults test + tcp-request content set-fc-tos 100 ` const defaults_statsauthadmin1AdMiN123 = ` defaults test diff --git a/tests/integration/defaults_test.go b/tests/integration/defaults_test.go index 2874b53..af01e57 100644 --- a/tests/integration/defaults_test.go +++ b/tests/integration/defaults_test.go @@ -30,6 +30,21 @@ func TestWholeConfigsSectionsDefaults(t *testing.T) { tests := []struct { Name, Config string }{ + {"defaults_acladdpathaddacl", defaults_acladdpathaddacl}, + {"defaults_aclbeappoknbsrvbeappgt0", defaults_aclbeappoknbsrvbeappgt0}, + {"defaults_aclbestaticoknbsrvbestaticgt0", defaults_aclbestaticoknbsrvbestaticgt0}, + {"defaults_aclcleardstport80", defaults_aclcleardstport80}, + {"defaults_aclcookiesethdrsubcookieSEEN1", defaults_aclcookiesethdrsubcookieSEEN1}, + {"defaults_acldelpathdelacl", defaults_acldelpathdelacl}, + {"defaults_aclkeyreqhdrXAddACLKeymfound", defaults_aclkeyreqhdrXAddACLKeymfound}, + {"defaults_aclloginpageurlbeglogin", defaults_aclloginpageurlbeglogin}, + {"defaults_acllogouturlbeglogout", defaults_acllogouturlbeglogout}, + {"defaults_aclmyhosthdrHostfmyhostlst", defaults_aclmyhosthdrHostfmyhostlst}, + {"defaults_aclsecuredstport8080", defaults_aclsecuredstport8080}, + {"defaults_acluidgivenurlregloginuserid", defaults_acluidgivenurlregloginuserid}, + {"defaults_aclurlstaticpathbegistaticimages", defaults_aclurlstaticpathbegistaticimages}, + {"defaults_aclurlstaticpathendijpggifpngcss", defaults_aclurlstaticpathendijpggifpngcss}, + {"defaults_aclurlstatspathbegstats", defaults_aclurlstatspathbegstats}, {"defaults_balancehashreqcookieclientid", defaults_balancehashreqcookieclientid}, {"defaults_balancehashreqhdripxforwardedfor", defaults_balancehashreqhdripxforwardedfor}, {"defaults_balancehashreqhdripxforwardedfor_", defaults_balancehashreqhdripxforwardedfor_}, @@ -246,6 +261,50 @@ func TestWholeConfigsSectionsDefaults(t *testing.T) { {"defaults_hashtypemapbasedsdbmavalanche", defaults_hashtypemapbasedsdbmavalanche}, {"defaults_hashtypemapbasedwt6", defaults_hashtypemapbasedwt6}, {"defaults_hashtypemapbasedwt6avalanche", defaults_hashtypemapbasedwt6avalanche}, + {"defaults_httpafterresponseaddheaderXHeade", defaults_httpafterresponseaddheaderXHeade}, + {"defaults_httpafterresponseaddheaderXHeade_", defaults_httpafterresponseaddheaderXHeade_}, + {"defaults_httpafterresponseaddheaderXHeade__", defaults_httpafterresponseaddheaderXHeade__}, + {"defaults_httpafterresponseallow", defaults_httpafterresponseallow}, + {"defaults_httpafterresponseallowifacl", defaults_httpafterresponseallowifacl}, + {"defaults_httpafterresponseallowunlessacl", defaults_httpafterresponseallowunlessacl}, + {"defaults_httpafterresponsedelaclmaplstsrc", defaults_httpafterresponsedelaclmaplstsrc}, + {"defaults_httpafterresponsedelheaderXValue", defaults_httpafterresponsedelheaderXValue}, + {"defaults_httpafterresponsedelheaderXValue_", defaults_httpafterresponsedelheaderXValue_}, + {"defaults_httpafterresponsedelheaderXValue__", defaults_httpafterresponsedelheaderXValue__}, + {"defaults_httpafterresponsedelheaderXValue___", defaults_httpafterresponsedelheaderXValue___}, + {"defaults_httpafterresponsedelmapmaplstsrc", defaults_httpafterresponsedelmapmaplstsrc}, + {"defaults_httpafterresponsedelmapmaplstsrc_", defaults_httpafterresponsedelmapmaplstsrc_}, + {"defaults_httpafterresponsereplaceheaderSe", defaults_httpafterresponsereplaceheaderSe}, + {"defaults_httpafterresponsereplaceheaderSe_", defaults_httpafterresponsereplaceheaderSe_}, + {"defaults_httpafterresponsereplacevalueCac", defaults_httpafterresponsereplacevalueCac}, + {"defaults_httpafterresponsereplacevalueCac_", defaults_httpafterresponsereplacevalueCac_}, + {"defaults_httpafterresponsescaddgpc121", defaults_httpafterresponsescaddgpc121}, + {"defaults_httpafterresponsescaddgpc121ifis", defaults_httpafterresponsescaddgpc121ifis}, + {"defaults_httpafterresponsescincgpc01", defaults_httpafterresponsescincgpc01}, + {"defaults_httpafterresponsescincgpc01ifFAL", defaults_httpafterresponsescincgpc01ifFAL}, + {"defaults_httpafterresponsescincgpc11", defaults_httpafterresponsescincgpc11}, + {"defaults_httpafterresponsescincgpc11ifFAL", defaults_httpafterresponsescincgpc11ifFAL}, + {"defaults_httpafterresponsescincgpc12", defaults_httpafterresponsescincgpc12}, + {"defaults_httpafterresponsescincgpc12ifise", defaults_httpafterresponsescincgpc12ifise}, + {"defaults_httpafterresponsescsetgpt0110", defaults_httpafterresponsescsetgpt0110}, + {"defaults_httpafterresponsescsetgpt01hdrHo", defaults_httpafterresponsescsetgpt01hdrHo}, + {"defaults_httpafterresponsescsetgpt01hdrHo_", defaults_httpafterresponsescsetgpt01hdrHo_}, + {"defaults_httpafterresponsescsetgpt1210", defaults_httpafterresponsescsetgpt1210}, + {"defaults_httpafterresponsesetheaderStrict", defaults_httpafterresponsesetheaderStrict}, + {"defaults_httpafterresponsesetmapmaplstsrc", defaults_httpafterresponsesetmapmaplstsrc}, + {"defaults_httpafterresponsesetmapmaplstsrc_", defaults_httpafterresponsesetmapmaplstsrc_}, + {"defaults_httpafterresponsesetstatus431", defaults_httpafterresponsesetstatus431}, + {"defaults_httpafterresponsesetstatus500rea", defaults_httpafterresponsesetstatus500rea}, + {"defaults_httpafterresponsesetstatus500rea_", defaults_httpafterresponsesetstatus500rea_}, + {"defaults_httpafterresponsesetstatus503rea", defaults_httpafterresponsesetstatus503rea}, + {"defaults_httpafterresponsesetvarsesslastr", defaults_httpafterresponsesetvarsesslastr}, + {"defaults_httpafterresponsesetvarsesslastr_", defaults_httpafterresponsesetvarsesslastr_}, + {"defaults_httpafterresponsesetvarsesslastr__", defaults_httpafterresponsesetvarsesslastr__}, + {"defaults_httpafterresponsestrictmodeoff", defaults_httpafterresponsestrictmodeoff}, + {"defaults_httpafterresponsestrictmodeon", defaults_httpafterresponsestrictmodeon}, + {"defaults_httpafterresponseunsetvarsesslas", defaults_httpafterresponseunsetvarsesslas}, + {"defaults_httpafterresponseunsetvarsesslas_", defaults_httpafterresponseunsetvarsesslas_}, + {"defaults_httpafterresponseunsetvarsesslas__", defaults_httpafterresponseunsetvarsesslas__}, {"defaults_httpcheckcommenttestcomment", defaults_httpcheckcommenttestcomment}, {"defaults_httpcheckconnect", defaults_httpcheckconnect}, {"defaults_httpcheckconnectaddr8888", defaults_httpcheckconnectaddr8888}, @@ -293,6 +352,297 @@ func TestWholeConfigsSectionsDefaults(t *testing.T) { {"defaults_httperrorstatus400defaulterrorfi", defaults_httperrorstatus400defaulterrorfi}, {"defaults_httperrorstatus400errorfilemyfan", defaults_httperrorstatus400errorfilemyfan}, {"defaults_httperrorstatus400errorfilesmyer", defaults_httperrorstatus400errorfilesmyer}, + {"defaults_httprequestaddaclmaplstsrc", defaults_httprequestaddaclmaplstsrc}, + {"defaults_httprequestaddheaderAuthorisatio", defaults_httprequestaddheaderAuthorisatio}, + {"defaults_httprequestaddheaderAuthorizatio", defaults_httprequestaddheaderAuthorizatio}, + {"defaults_httprequestaddheaderXvaluevalue", defaults_httprequestaddheaderXvaluevalue}, + {"defaults_httprequestallow", defaults_httprequestallow}, + {"defaults_httprequestauth", defaults_httprequestauth}, + {"defaults_httprequestcacheusecachename", defaults_httprequestcacheusecachename}, + {"defaults_httprequestcacheusecachenameifFA", defaults_httprequestcacheusecachenameifFA}, + {"defaults_httprequestdelaclmaplstsrc", defaults_httprequestdelaclmaplstsrc}, + {"defaults_httprequestdelheaderXvalue", defaults_httprequestdelheaderXvalue}, + {"defaults_httprequestdelheaderXvalueifTRUE", defaults_httprequestdelheaderXvalueifTRUE}, + {"defaults_httprequestdelheaderXvaluemstrif", defaults_httprequestdelheaderXvaluemstrif}, + {"defaults_httprequestdelmapmaplstsrc", defaults_httprequestdelmapmaplstsrc}, + {"defaults_httprequestdelmapmaplstsrcifvalu", defaults_httprequestdelmapmaplstsrcifvalu}, + {"defaults_httprequestdeny", defaults_httprequestdeny}, + {"defaults_httprequestdenydenystatus400", defaults_httprequestdenydenystatus400}, + {"defaults_httprequestdenydenystatus400cont", defaults_httprequestdenydenystatus400cont}, + {"defaults_httprequestdenydenystatus400cont_", defaults_httprequestdenydenystatus400cont_}, + {"defaults_httprequestdenydenystatus400cont__", defaults_httprequestdenydenystatus400cont__}, + {"defaults_httprequestdenydenystatus400cont___", defaults_httprequestdenydenystatus400cont___}, + {"defaults_httprequestdenydenystatus400cont____", defaults_httprequestdenydenystatus400cont____}, + {"defaults_httprequestdenydenystatus400cont_____", defaults_httprequestdenydenystatus400cont_____}, + {"defaults_httprequestdenydenystatus400cont______", defaults_httprequestdenydenystatus400cont______}, + {"defaults_httprequestdenydenystatus400cont_______", defaults_httprequestdenydenystatus400cont_______}, + {"defaults_httprequestdenydenystatus400cont________", defaults_httprequestdenydenystatus400cont________}, + {"defaults_httprequestdenydenystatus400cont_________", defaults_httprequestdenydenystatus400cont_________}, + {"defaults_httprequestdenydenystatus400cont__________", defaults_httprequestdenydenystatus400cont__________}, + {"defaults_httprequestdenydenystatus400ifTR", defaults_httprequestdenydenystatus400ifTR}, + {"defaults_httprequestdenyifTRUE", defaults_httprequestdenyifTRUE}, + {"defaults_httprequestdisablel7retry", defaults_httprequestdisablel7retry}, + {"defaults_httprequestdisablel7retryifFALSE", defaults_httprequestdisablel7retryifFALSE}, + {"defaults_httprequestdoresolvetxnmyipmydns", defaults_httprequestdoresolvetxnmyipmydns}, + {"defaults_httprequestdoresolvetxnmyipmydns_", defaults_httprequestdoresolvetxnmyipmydns_}, + {"defaults_httprequestdoresolvetxnmyipmydns__", defaults_httprequestdoresolvetxnmyipmydns__}, + {"defaults_httprequestdoresolvetxnmyipmydns___", defaults_httprequestdoresolvetxnmyipmydns___}, + {"defaults_httprequestdoresolvetxnmyipmydns____", defaults_httprequestdoresolvetxnmyipmydns____}, + {"defaults_httprequestearlyhinthintsrc", defaults_httprequestearlyhinthintsrc}, + {"defaults_httprequestearlyhinthintsrcifFAL", defaults_httprequestearlyhinthintsrcifFAL}, + {"defaults_httprequestearlyhintifFALSE", defaults_httprequestearlyhintifFALSE}, + {"defaults_httprequestluafoo", defaults_httprequestluafoo}, + {"defaults_httprequestluafooifFALSE", defaults_httprequestluafooifFALSE}, + {"defaults_httprequestluafooparam", defaults_httprequestluafooparam}, + {"defaults_httprequestluafooparamparam2", defaults_httprequestluafooparamparam2}, + {"defaults_httprequestnormalizeurifragmente", defaults_httprequestnormalizeurifragmente}, + {"defaults_httprequestnormalizeurifragmente_", defaults_httprequestnormalizeurifragmente_}, + {"defaults_httprequestnormalizeurifragments", defaults_httprequestnormalizeurifragments}, + {"defaults_httprequestnormalizeurifragments_", defaults_httprequestnormalizeurifragments_}, + {"defaults_httprequestnormalizeuripathmerge", defaults_httprequestnormalizeuripathmerge}, + {"defaults_httprequestnormalizeuripathmerge_", defaults_httprequestnormalizeuripathmerge_}, + {"defaults_httprequestnormalizeuripathstrip", defaults_httprequestnormalizeuripathstrip}, + {"defaults_httprequestnormalizeuripathstrip_", defaults_httprequestnormalizeuripathstrip_}, + {"defaults_httprequestnormalizeuripathstrip__", defaults_httprequestnormalizeuripathstrip__}, + {"defaults_httprequestnormalizeuripathstrip___", defaults_httprequestnormalizeuripathstrip___}, + {"defaults_httprequestnormalizeuripathstrip____", defaults_httprequestnormalizeuripathstrip____}, + {"defaults_httprequestnormalizeuripathstrip_____", defaults_httprequestnormalizeuripathstrip_____}, + {"defaults_httprequestnormalizeuripercentde", defaults_httprequestnormalizeuripercentde}, + {"defaults_httprequestnormalizeuripercentde_", defaults_httprequestnormalizeuripercentde_}, + {"defaults_httprequestnormalizeuripercentde__", defaults_httprequestnormalizeuripercentde__}, + {"defaults_httprequestnormalizeuripercentde___", defaults_httprequestnormalizeuripercentde___}, + {"defaults_httprequestnormalizeuripercentto", defaults_httprequestnormalizeuripercentto}, + {"defaults_httprequestnormalizeuripercentto_", defaults_httprequestnormalizeuripercentto_}, + {"defaults_httprequestnormalizeuripercentto__", defaults_httprequestnormalizeuripercentto__}, + {"defaults_httprequestnormalizeuripercentto___", defaults_httprequestnormalizeuripercentto___}, + {"defaults_httprequestnormalizeuriquerysort", defaults_httprequestnormalizeuriquerysort}, + {"defaults_httprequestnormalizeuriquerysort_", defaults_httprequestnormalizeuriquerysort_}, + {"defaults_httprequestredirectlocationfileh", defaults_httprequestredirectlocationfileh}, + {"defaults_httprequestredirectlocationfileh_", defaults_httprequestredirectlocationfileh_}, + {"defaults_httprequestredirectprefixhttpsmy", defaults_httprequestredirectprefixhttpsmy}, + {"defaults_httprequestreject", defaults_httprequestreject}, + {"defaults_httprequestreplaceheaderUseragen", defaults_httprequestreplaceheaderUseragen}, + {"defaults_httprequestreplacepathfoo", defaults_httprequestreplacepathfoo}, + {"defaults_httprequestreplacepathfooifTRUE", defaults_httprequestreplacepathfooifTRUE}, + {"defaults_httprequestreplacepathqfoo", defaults_httprequestreplacepathqfoo}, + {"defaults_httprequestreplacepathqfooifTRUE", defaults_httprequestreplacepathqfooifTRUE}, + {"defaults_httprequestreplaceurihttphttps1", defaults_httprequestreplaceurihttphttps1}, + {"defaults_httprequestreplaceurihttphttps1i", defaults_httprequestreplaceurihttphttps1i}, + {"defaults_httprequestreplacevalueXForwarde", defaults_httprequestreplacevalueXForwarde}, + {"defaults_httprequestreturncontenttypetext", defaults_httprequestreturncontenttypetext}, + {"defaults_httprequestreturncontenttypetext_", defaults_httprequestreturncontenttypetext_}, + {"defaults_httprequestreturncontenttypetext__", defaults_httprequestreturncontenttypetext__}, + {"defaults_httprequestreturncontenttypetext___", defaults_httprequestreturncontenttypetext___}, + {"defaults_httprequestreturncontenttypetext____", defaults_httprequestreturncontenttypetext____}, + {"defaults_httprequestreturncontenttypetext_____", defaults_httprequestreturncontenttypetext_____}, + {"defaults_httprequestreturncontenttypetext______", defaults_httprequestreturncontenttypetext______}, + {"defaults_httprequestreturncontenttypetext_______", defaults_httprequestreturncontenttypetext_______}, + {"defaults_httprequestreturnstatus200conten", defaults_httprequestreturnstatus200conten}, + {"defaults_httprequestreturnstatus200conten_", defaults_httprequestreturnstatus200conten_}, + {"defaults_httprequestreturnstatus400defaul", defaults_httprequestreturnstatus400defaul}, + {"defaults_httprequestreturnstatus400errorf", defaults_httprequestreturnstatus400errorf}, + {"defaults_httprequestreturnstatus400errorf_", defaults_httprequestreturnstatus400errorf_}, + {"defaults_httprequestscaddgpc121", defaults_httprequestscaddgpc121}, + {"defaults_httprequestscaddgpc121ifiserror", defaults_httprequestscaddgpc121ifiserror}, + {"defaults_httprequestscincgpc01", defaults_httprequestscincgpc01}, + {"defaults_httprequestscincgpc01ifFALSE", defaults_httprequestscincgpc01ifFALSE}, + {"defaults_httprequestscincgpc11", defaults_httprequestscincgpc11}, + {"defaults_httprequestscincgpc11ifFALSE", defaults_httprequestscincgpc11ifFALSE}, + {"defaults_httprequestscincgpc12", defaults_httprequestscincgpc12}, + {"defaults_httprequestscincgpc12ifFALSE", defaults_httprequestscincgpc12ifFALSE}, + {"defaults_httprequestscsetgpt0110", defaults_httprequestscsetgpt0110}, + {"defaults_httprequestscsetgpt01hdrHostlowe", defaults_httprequestscsetgpt01hdrHostlowe}, + {"defaults_httprequestscsetgpt01hdrHostlowe_", defaults_httprequestscsetgpt01hdrHostlowe_}, + {"defaults_httprequestscsetgpt12hdrHostlowe", defaults_httprequestscsetgpt12hdrHostlowe}, + {"defaults_httprequestsendspoegroupenginegr", defaults_httprequestsendspoegroupenginegr}, + {"defaults_httprequestsetbandwidthlimitmyli", defaults_httprequestsetbandwidthlimitmyli}, + {"defaults_httprequestsetbandwidthlimitmyli_", defaults_httprequestsetbandwidthlimitmyli_}, + {"defaults_httprequestsetbandwidthlimitmyli__", defaults_httprequestsetbandwidthlimitmyli__}, + {"defaults_httprequestsetbandwidthlimitmyli___", defaults_httprequestsetbandwidthlimitmyli___}, + {"defaults_httprequestsetbcmark0xffffffff", defaults_httprequestsetbcmark0xffffffff}, + {"defaults_httprequestsetbcmark123", defaults_httprequestsetbcmark123}, + {"defaults_httprequestsetbcmarkhdrportifFAL", defaults_httprequestsetbcmarkhdrportifFAL}, + {"defaults_httprequestsetbctos10", defaults_httprequestsetbctos10}, + {"defaults_httprequestsetdstporthdrxport", defaults_httprequestsetdstporthdrxport}, + {"defaults_httprequestsetdstporthdrxportifv", defaults_httprequestsetdstporthdrxportifv}, + {"defaults_httprequestsetdstporthdrxportunl", defaults_httprequestsetdstporthdrxportunl}, + {"defaults_httprequestsetdstportint4000", defaults_httprequestsetdstportint4000}, + {"defaults_httprequestsetdstvartxnmyip", defaults_httprequestsetdstvartxnmyip}, + {"defaults_httprequestsetdstvartxnmyipifvar", defaults_httprequestsetdstvartxnmyipifvar}, + {"defaults_httprequestsetdstvartxnmyipunles", defaults_httprequestsetdstvartxnmyipunles}, + {"defaults_httprequestsetfcmark0", defaults_httprequestsetfcmark0}, + {"defaults_httprequestsetfctos0xffifTRUE", defaults_httprequestsetfctos0xffifTRUE}, + {"defaults_httprequestsetheaderXvaluevalue", defaults_httprequestsetheaderXvaluevalue}, + {"defaults_httprequestsetloglevelsilent", defaults_httprequestsetloglevelsilent}, + {"defaults_httprequestsetmapmaplstsrcreqhdr", defaults_httprequestsetmapmaplstsrcreqhdr}, + {"defaults_httprequestsetmapmaplstsrcreqhdr_", defaults_httprequestsetmapmaplstsrcreqhdr_}, + {"defaults_httprequestsetmark0x1Ab", defaults_httprequestsetmark0x1Ab}, + {"defaults_httprequestsetmark20", defaults_httprequestsetmark20}, + {"defaults_httprequestsetmethodPOST", defaults_httprequestsetmethodPOST}, + {"defaults_httprequestsetmethodPOSTifFALSE", defaults_httprequestsetmethodPOSTifFALSE}, + {"defaults_httprequestsetnice0", defaults_httprequestsetnice0}, + {"defaults_httprequestsetnice0ifFALSE", defaults_httprequestsetnice0ifFALSE}, + {"defaults_httprequestsetpathhdrhostpath", defaults_httprequestsetpathhdrhostpath}, + {"defaults_httprequestsetpathqhdrhostpath", defaults_httprequestsetpathqhdrhostpath}, + {"defaults_httprequestsetpriorityclassreqhd", defaults_httprequestsetpriorityclassreqhd}, + {"defaults_httprequestsetpriorityclassreqhd_", defaults_httprequestsetpriorityclassreqhd_}, + {"defaults_httprequestsetpriorityoffsetreqh", defaults_httprequestsetpriorityoffsetreqh}, + {"defaults_httprequestsetpriorityoffsetreqh_", defaults_httprequestsetpriorityoffsetreqh_}, + {"defaults_httprequestsetqueryqueryregsub3D", defaults_httprequestsetqueryqueryregsub3D}, + {"defaults_httprequestsetsrchdrsrc", defaults_httprequestsetsrchdrsrc}, + {"defaults_httprequestsetsrchdrsrcifFALSE", defaults_httprequestsetsrchdrsrcifFALSE}, + {"defaults_httprequestsetsrcporthdrport", defaults_httprequestsetsrcporthdrport}, + {"defaults_httprequestsetsrcporthdrportifFA", defaults_httprequestsetsrcporthdrportifFA}, + {"defaults_httprequestsettimeoutclient20", defaults_httprequestsettimeoutclient20}, + {"defaults_httprequestsettimeoutclient20sif", defaults_httprequestsettimeoutclient20sif}, + {"defaults_httprequestsettimeoutserver20", defaults_httprequestsettimeoutserver20}, + {"defaults_httprequestsettimeoutserver20sif", defaults_httprequestsettimeoutserver20sif}, + {"defaults_httprequestsettimeouttunnel20", defaults_httprequestsettimeouttunnel20}, + {"defaults_httprequestsettimeouttunnel20sif", defaults_httprequestsettimeouttunnel20sif}, + {"defaults_httprequestsettos0", defaults_httprequestsettos0}, + {"defaults_httprequestsettos0ifFALSE", defaults_httprequestsettos0ifFALSE}, + {"defaults_httprequestseturihdrhostpath", defaults_httprequestseturihdrhostpath}, + {"defaults_httprequestsetvarfmtreqmyvarreqf", defaults_httprequestsetvarfmtreqmyvarreqf}, + {"defaults_httprequestsetvarreqmyvarreqfhdr", defaults_httprequestsetvarreqmyvarreqfhdr}, + {"defaults_httprequestsilentdrop", defaults_httprequestsilentdrop}, + {"defaults_httprequestsilentdropifFALSE", defaults_httprequestsilentdropifFALSE}, + {"defaults_httprequeststrictmodeon", defaults_httprequeststrictmodeon}, + {"defaults_httprequeststrictmodeonifFALSE", defaults_httprequeststrictmodeonifFALSE}, + {"defaults_httprequesttarpit", defaults_httprequesttarpit}, + {"defaults_httprequesttarpitdenystatus400", defaults_httprequesttarpitdenystatus400}, + {"defaults_httprequesttarpitdenystatus400co", defaults_httprequesttarpitdenystatus400co}, + {"defaults_httprequesttarpitdenystatus400co_", defaults_httprequesttarpitdenystatus400co_}, + {"defaults_httprequesttarpitdenystatus400co__", defaults_httprequesttarpitdenystatus400co__}, + {"defaults_httprequesttarpitdenystatus400co___", defaults_httprequesttarpitdenystatus400co___}, + {"defaults_httprequesttarpitdenystatus400co____", defaults_httprequesttarpitdenystatus400co____}, + {"defaults_httprequesttarpitdenystatus400co_____", defaults_httprequesttarpitdenystatus400co_____}, + {"defaults_httprequesttarpitdenystatus400co______", defaults_httprequesttarpitdenystatus400co______}, + {"defaults_httprequesttarpitdenystatus400co_______", defaults_httprequesttarpitdenystatus400co_______}, + {"defaults_httprequesttarpitdenystatus400co________", defaults_httprequesttarpitdenystatus400co________}, + {"defaults_httprequesttarpitdenystatus400co_________", defaults_httprequesttarpitdenystatus400co_________}, + {"defaults_httprequesttarpitdenystatus400co__________", defaults_httprequesttarpitdenystatus400co__________}, + {"defaults_httprequesttarpitdenystatus400if", defaults_httprequesttarpitdenystatus400if}, + {"defaults_httprequesttarpitifTRUE", defaults_httprequesttarpitifTRUE}, + {"defaults_httprequesttracksc0src", defaults_httprequesttracksc0src}, + {"defaults_httprequesttracksc1src", defaults_httprequesttracksc1src}, + {"defaults_httprequesttracksc2src", defaults_httprequesttracksc2src}, + {"defaults_httprequesttracksc5src", defaults_httprequesttracksc5src}, + {"defaults_httprequesttracksc5srcifsomecond", defaults_httprequesttracksc5srcifsomecond}, + {"defaults_httprequesttracksc5srctableatabl", defaults_httprequesttracksc5srctableatabl}, + {"defaults_httprequesttracksc5srctableatabl_", defaults_httprequesttracksc5srctableatabl_}, + {"defaults_httprequestunsetvarreqmyvar", defaults_httprequestunsetvarreqmyvar}, + {"defaults_httprequestunsetvarreqmyvarifFAL", defaults_httprequestunsetvarreqmyvarifFAL}, + {"defaults_httprequestwaitforbodytime20s", defaults_httprequestwaitforbodytime20s}, + {"defaults_httprequestwaitforbodytime20satl", defaults_httprequestwaitforbodytime20satl}, + {"defaults_httprequestwaitforbodytime20satl_", defaults_httprequestwaitforbodytime20satl_}, + {"defaults_httprequestwaitforbodytime20sifT", defaults_httprequestwaitforbodytime20sifT}, + {"defaults_httprequestwaitforhandshake", defaults_httprequestwaitforhandshake}, + {"defaults_httprequestwaitforhandshakeifFAL", defaults_httprequestwaitforhandshakeifFAL}, + {"defaults_httpresponseaddaclmaplstsrc", defaults_httpresponseaddaclmaplstsrc}, + {"defaults_httpresponseaddheaderXvaluevalue", defaults_httpresponseaddheaderXvaluevalue}, + {"defaults_httpresponseallow", defaults_httpresponseallow}, + {"defaults_httpresponsecachestorecachename", defaults_httpresponsecachestorecachename}, + {"defaults_httpresponsecachestorecachenamei", defaults_httpresponsecachestorecachenamei}, + {"defaults_httpresponsedelaclmaplstsrc", defaults_httpresponsedelaclmaplstsrc}, + {"defaults_httpresponsedelheaderXvalue", defaults_httpresponsedelheaderXvalue}, + {"defaults_httpresponsedelmapmaplstsrc", defaults_httpresponsedelmapmaplstsrc}, + {"defaults_httpresponsedelmapmaplstsrcifval", defaults_httpresponsedelmapmaplstsrcifval}, + {"defaults_httpresponsedeny", defaults_httpresponsedeny}, + {"defaults_httpresponsedenydenystatus400", defaults_httpresponsedenydenystatus400}, + {"defaults_httpresponsedenydenystatus400con", defaults_httpresponsedenydenystatus400con}, + {"defaults_httpresponsedenydenystatus400con_", defaults_httpresponsedenydenystatus400con_}, + {"defaults_httpresponsedenydenystatus400con__", defaults_httpresponsedenydenystatus400con__}, + {"defaults_httpresponsedenydenystatus400con___", defaults_httpresponsedenydenystatus400con___}, + {"defaults_httpresponsedenydenystatus400con____", defaults_httpresponsedenydenystatus400con____}, + {"defaults_httpresponsedenydenystatus400con_____", defaults_httpresponsedenydenystatus400con_____}, + {"defaults_httpresponsedenydenystatus400con______", defaults_httpresponsedenydenystatus400con______}, + {"defaults_httpresponsedenydenystatus400con_______", defaults_httpresponsedenydenystatus400con_______}, + {"defaults_httpresponsedenydenystatus400con________", defaults_httpresponsedenydenystatus400con________}, + {"defaults_httpresponsedenydenystatus400con_________", defaults_httpresponsedenydenystatus400con_________}, + {"defaults_httpresponsedenydenystatus400con__________", defaults_httpresponsedenydenystatus400con__________}, + {"defaults_httpresponsedenydenystatus400ifT", defaults_httpresponsedenydenystatus400ifT}, + {"defaults_httpresponsedenyifTRUE", defaults_httpresponsedenyifTRUE}, + {"defaults_httpresponseluafoo", defaults_httpresponseluafoo}, + {"defaults_httpresponseluafooifFALSE", defaults_httpresponseluafooifFALSE}, + {"defaults_httpresponseluafooparam", defaults_httpresponseluafooparam}, + {"defaults_httpresponseluafooparamparam2", defaults_httpresponseluafooparamparam2}, + {"defaults_httpresponseredirectprefixhttpsm", defaults_httpresponseredirectprefixhttpsm}, + {"defaults_httpresponsereplaceheaderUserage", defaults_httpresponsereplaceheaderUserage}, + {"defaults_httpresponsereplacevalueXForward", defaults_httpresponsereplacevalueXForward}, + {"defaults_httpresponsereturncontenttypetex", defaults_httpresponsereturncontenttypetex}, + {"defaults_httpresponsereturncontenttypetex_", defaults_httpresponsereturncontenttypetex_}, + {"defaults_httpresponsereturncontenttypetex__", defaults_httpresponsereturncontenttypetex__}, + {"defaults_httpresponsereturncontenttypetex___", defaults_httpresponsereturncontenttypetex___}, + {"defaults_httpresponsereturncontenttypetex____", defaults_httpresponsereturncontenttypetex____}, + {"defaults_httpresponsereturncontenttypetex_____", defaults_httpresponsereturncontenttypetex_____}, + {"defaults_httpresponsereturncontenttypetex______", defaults_httpresponsereturncontenttypetex______}, + {"defaults_httpresponsereturncontenttypetex_______", defaults_httpresponsereturncontenttypetex_______}, + {"defaults_httpresponsereturnstatus200conte", defaults_httpresponsereturnstatus200conte}, + {"defaults_httpresponsereturnstatus200conte_", defaults_httpresponsereturnstatus200conte_}, + {"defaults_httpresponsereturnstatus400defau", defaults_httpresponsereturnstatus400defau}, + {"defaults_httpresponsereturnstatus400error", defaults_httpresponsereturnstatus400error}, + {"defaults_httpresponsereturnstatus400error_", defaults_httpresponsereturnstatus400error_}, + {"defaults_httpresponsescaddgpc121", defaults_httpresponsescaddgpc121}, + {"defaults_httpresponsescaddgpc121ifiserror", defaults_httpresponsescaddgpc121ifiserror}, + {"defaults_httpresponsescincgpc01", defaults_httpresponsescincgpc01}, + {"defaults_httpresponsescincgpc01ifFALSE", defaults_httpresponsescincgpc01ifFALSE}, + {"defaults_httpresponsescincgpc11", defaults_httpresponsescincgpc11}, + {"defaults_httpresponsescincgpc11ifFALSE", defaults_httpresponsescincgpc11ifFALSE}, + {"defaults_httpresponsescincgpc12", defaults_httpresponsescincgpc12}, + {"defaults_httpresponsescincgpc12ifFALSE", defaults_httpresponsescincgpc12ifFALSE}, + {"defaults_httpresponsescsetgpt0110", defaults_httpresponsescsetgpt0110}, + {"defaults_httpresponsescsetgpt01hdrHostlow", defaults_httpresponsescsetgpt01hdrHostlow}, + {"defaults_httpresponsescsetgpt01hdrHostlow_", defaults_httpresponsescsetgpt01hdrHostlow_}, + {"defaults_httpresponsescsetgpt12hdrHostlow", defaults_httpresponsescsetgpt12hdrHostlow}, + {"defaults_httpresponsesendspoegroupengineg", defaults_httpresponsesendspoegroupengineg}, + {"defaults_httpresponsesetbandwidthlimitmyl", defaults_httpresponsesetbandwidthlimitmyl}, + {"defaults_httpresponsesetbandwidthlimitmyl_", defaults_httpresponsesetbandwidthlimitmyl_}, + {"defaults_httpresponsesetbandwidthlimitmyl__", defaults_httpresponsesetbandwidthlimitmyl__}, + {"defaults_httpresponsesetbandwidthlimitmyl___", defaults_httpresponsesetbandwidthlimitmyl___}, + {"defaults_httpresponsesetfcmark2000", defaults_httpresponsesetfcmark2000}, + {"defaults_httpresponsesetfctos200", defaults_httpresponsesetfctos200}, + {"defaults_httpresponsesetheaderXvaluevalue", defaults_httpresponsesetheaderXvaluevalue}, + {"defaults_httpresponsesetloglevelsilent", defaults_httpresponsesetloglevelsilent}, + {"defaults_httpresponsesetmapmaplstsrcreshd", defaults_httpresponsesetmapmaplstsrcreshd}, + {"defaults_httpresponsesetmapmaplstsrcreshd_", defaults_httpresponsesetmapmaplstsrcreshd_}, + {"defaults_httpresponsesetmark0x1Ab", defaults_httpresponsesetmark0x1Ab}, + {"defaults_httpresponsesetmark20", defaults_httpresponsesetmark20}, + {"defaults_httpresponsesetnice0", defaults_httpresponsesetnice0}, + {"defaults_httpresponsesetnice0ifFALSE", defaults_httpresponsesetnice0ifFALSE}, + {"defaults_httpresponsesetstatus503", defaults_httpresponsesetstatus503}, + {"defaults_httpresponsesettimeoutclient20", defaults_httpresponsesettimeoutclient20}, + {"defaults_httpresponsesettimeoutclient20si", defaults_httpresponsesettimeoutclient20si}, + {"defaults_httpresponsesettimeoutserver20", defaults_httpresponsesettimeoutserver20}, + {"defaults_httpresponsesettimeoutserver20si", defaults_httpresponsesettimeoutserver20si}, + {"defaults_httpresponsesettimeouttunnel20", defaults_httpresponsesettimeouttunnel20}, + {"defaults_httpresponsesettimeouttunnel20si", defaults_httpresponsesettimeouttunnel20si}, + {"defaults_httpresponsesettos0", defaults_httpresponsesettos0}, + {"defaults_httpresponsesettos0ifFALSE", defaults_httpresponsesettos0ifFALSE}, + {"defaults_httpresponsesetvarfmtreqmyvarres", defaults_httpresponsesetvarfmtreqmyvarres}, + {"defaults_httpresponsesetvarreqmyvarresfhd", defaults_httpresponsesetvarreqmyvarresfhd}, + {"defaults_httpresponsesilentdrop", defaults_httpresponsesilentdrop}, + {"defaults_httpresponsesilentdropifFALSE", defaults_httpresponsesilentdropifFALSE}, + {"defaults_httpresponsestrictmodeon", defaults_httpresponsestrictmodeon}, + {"defaults_httpresponsestrictmodeonifFALSE", defaults_httpresponsestrictmodeonifFALSE}, + {"defaults_httpresponsetracksc0src", defaults_httpresponsetracksc0src}, + {"defaults_httpresponsetracksc0srcifFALSE", defaults_httpresponsetracksc0srcifFALSE}, + {"defaults_httpresponsetracksc0srctabletrif", defaults_httpresponsetracksc0srctabletrif}, + {"defaults_httpresponsetracksc1src", defaults_httpresponsetracksc1src}, + {"defaults_httpresponsetracksc1srcifFALSE", defaults_httpresponsetracksc1srcifFALSE}, + {"defaults_httpresponsetracksc1srctabletrif", defaults_httpresponsetracksc1srctabletrif}, + {"defaults_httpresponsetracksc2src", defaults_httpresponsetracksc2src}, + {"defaults_httpresponsetracksc2srcifFALSE", defaults_httpresponsetracksc2srcifFALSE}, + {"defaults_httpresponsetracksc2srctabletrif", defaults_httpresponsetracksc2srctabletrif}, + {"defaults_httpresponsetracksc5src", defaults_httpresponsetracksc5src}, + {"defaults_httpresponsetracksc5srcifsomecon", defaults_httpresponsetracksc5srcifsomecon}, + {"defaults_httpresponsetracksc5srctableatab", defaults_httpresponsetracksc5srctableatab}, + {"defaults_httpresponsetracksc5srctableatab_", defaults_httpresponsetracksc5srctableatab_}, + {"defaults_httpresponseunsetvarreqmyvar", defaults_httpresponseunsetvarreqmyvar}, + {"defaults_httpresponseunsetvarreqmyvarifFA", defaults_httpresponseunsetvarreqmyvarifFA}, + {"defaults_httpresponsewaitforbodytime20s", defaults_httpresponsewaitforbodytime20s}, + {"defaults_httpresponsewaitforbodytime20sat", defaults_httpresponsewaitforbodytime20sat}, + {"defaults_httpresponsewaitforbodytime20sat_", defaults_httpresponsewaitforbodytime20sat_}, + {"defaults_httpresponsewaitforbodytime20sif", defaults_httpresponsewaitforbodytime20sif}, {"defaults_httpreuseaggressive", defaults_httpreuseaggressive}, {"defaults_httpreusealways", defaults_httpreusealways}, {"defaults_httpreusenever", defaults_httpreusenever}, @@ -385,6 +735,178 @@ func TestWholeConfigsSectionsDefaults(t *testing.T) { {"defaults_tcpchecksetvarfmtchecknameH", defaults_tcpchecksetvarfmtchecknameH}, {"defaults_tcpchecksetvarfmttxnfromaddrsrcs", defaults_tcpchecksetvarfmttxnfromaddrsrcs}, {"defaults_tcpcheckunsetvartxnfrom", defaults_tcpcheckunsetvartxnfrom}, + {"defaults_tcprequestconnectionaccept", defaults_tcprequestconnectionaccept}, + {"defaults_tcprequestconnectionacceptifHTTP", defaults_tcprequestconnectionacceptifHTTP}, + {"defaults_tcprequestconnectioncapturereqpa", defaults_tcprequestconnectioncapturereqpa}, + {"defaults_tcprequestconnectionexpectnetsca", defaults_tcprequestconnectionexpectnetsca}, + {"defaults_tcprequestconnectionexpectnetsca_", defaults_tcprequestconnectionexpectnetsca_}, + {"defaults_tcprequestconnectionexpectproxyl", defaults_tcprequestconnectionexpectproxyl}, + {"defaults_tcprequestconnectionluafoo", defaults_tcprequestconnectionluafoo}, + {"defaults_tcprequestconnectionluafooparami", defaults_tcprequestconnectionluafooparami}, + {"defaults_tcprequestconnectionluafooparamp", defaults_tcprequestconnectionluafooparamp}, + {"defaults_tcprequestconnectionreject", defaults_tcprequestconnectionreject}, + {"defaults_tcprequestconnectionrejectifHTTP", defaults_tcprequestconnectionrejectifHTTP}, + {"defaults_tcprequestconnectionscaddgpc121", defaults_tcprequestconnectionscaddgpc121}, + {"defaults_tcprequestconnectionscaddgpc121i", defaults_tcprequestconnectionscaddgpc121i}, + {"defaults_tcprequestconnectionscincgpc02", defaults_tcprequestconnectionscincgpc02}, + {"defaults_tcprequestconnectionscincgpc02if", defaults_tcprequestconnectionscincgpc02if}, + {"defaults_tcprequestconnectionscincgpc12", defaults_tcprequestconnectionscincgpc12}, + {"defaults_tcprequestconnectionscincgpc12_", defaults_tcprequestconnectionscincgpc12_}, + {"defaults_tcprequestconnectionscincgpc12if", defaults_tcprequestconnectionscincgpc12if}, + {"defaults_tcprequestconnectionscincgpc12if_", defaults_tcprequestconnectionscincgpc12if_}, + {"defaults_tcprequestconnectionscsetgpt0013", defaults_tcprequestconnectionscsetgpt0013}, + {"defaults_tcprequestconnectionscsetgpt0013_", defaults_tcprequestconnectionscsetgpt0013_}, + {"defaults_tcprequestconnectionscsetgptscx4", defaults_tcprequestconnectionscsetgptscx4}, + {"defaults_tcprequestconnectionsetfcmark1", defaults_tcprequestconnectionsetfcmark1}, + {"defaults_tcprequestconnectionsetfctos1", defaults_tcprequestconnectionsetfctos1}, + {"defaults_tcprequestconnectionsetmark0x1Ab", defaults_tcprequestconnectionsetmark0x1Ab}, + {"defaults_tcprequestconnectionsetmark20", defaults_tcprequestconnectionsetmark20}, + {"defaults_tcprequestconnectionsetsrchdrxfo", defaults_tcprequestconnectionsetsrchdrxfo}, + {"defaults_tcprequestconnectionsetsrchdrxfo_", defaults_tcprequestconnectionsetsrchdrxfo_}, + {"defaults_tcprequestconnectionsetsrcporthd", defaults_tcprequestconnectionsetsrcporthd}, + {"defaults_tcprequestconnectionsetsrcporthd_", defaults_tcprequestconnectionsetsrcporthd_}, + {"defaults_tcprequestconnectionsetsrcsrcipm", defaults_tcprequestconnectionsetsrcsrcipm}, + {"defaults_tcprequestconnectionsetsrcsrcipm_", defaults_tcprequestconnectionsetsrcsrcipm_}, + {"defaults_tcprequestconnectionsettos0", defaults_tcprequestconnectionsettos0}, + {"defaults_tcprequestconnectionsettos0ifFAL", defaults_tcprequestconnectionsettos0ifFAL}, + {"defaults_tcprequestconnectionsetvarfmttxn", defaults_tcprequestconnectionsetvarfmttxn}, + {"defaults_tcprequestconnectionsilentdrop", defaults_tcprequestconnectionsilentdrop}, + {"defaults_tcprequestconnectionsilentdropif", defaults_tcprequestconnectionsilentdropif}, + {"defaults_tcprequestconnectiontracksc0src", defaults_tcprequestconnectiontracksc0src}, + {"defaults_tcprequestconnectiontracksc0srci", defaults_tcprequestconnectiontracksc0srci}, + {"defaults_tcprequestconnectiontracksc0srct", defaults_tcprequestconnectiontracksc0srct}, + {"defaults_tcprequestconnectiontracksc0srct_", defaults_tcprequestconnectiontracksc0srct_}, + {"defaults_tcprequestconnectiontracksc1src", defaults_tcprequestconnectiontracksc1src}, + {"defaults_tcprequestconnectiontracksc1srci", defaults_tcprequestconnectiontracksc1srci}, + {"defaults_tcprequestconnectiontracksc1srct", defaults_tcprequestconnectiontracksc1srct}, + {"defaults_tcprequestconnectiontracksc1srct_", defaults_tcprequestconnectiontracksc1srct_}, + {"defaults_tcprequestconnectiontracksc2src", defaults_tcprequestconnectiontracksc2src}, + {"defaults_tcprequestconnectiontracksc2srci", defaults_tcprequestconnectiontracksc2srci}, + {"defaults_tcprequestconnectiontracksc2srct", defaults_tcprequestconnectiontracksc2srct}, + {"defaults_tcprequestconnectiontracksc2srct_", defaults_tcprequestconnectiontracksc2srct_}, + {"defaults_tcprequestconnectiontracksc5src", defaults_tcprequestconnectiontracksc5src}, + {"defaults_tcprequestconnectiontracksc5srci", defaults_tcprequestconnectiontracksc5srci}, + {"defaults_tcprequestconnectiontracksc5srct", defaults_tcprequestconnectiontracksc5srct}, + {"defaults_tcprequestconnectiontracksc5srct_", defaults_tcprequestconnectiontracksc5srct_}, + {"defaults_tcprequestcontentaccept", defaults_tcprequestcontentaccept}, + {"defaults_tcprequestcontentacceptifHTTP", defaults_tcprequestcontentacceptifHTTP}, + {"defaults_tcprequestcontentcapturereqpaylo", defaults_tcprequestcontentcapturereqpaylo}, + {"defaults_tcprequestcontentcapturereqpaylo_", defaults_tcprequestcontentcapturereqpaylo_}, + {"defaults_tcprequestcontentdoresolvetxnmyi", defaults_tcprequestcontentdoresolvetxnmyi}, + {"defaults_tcprequestcontentdoresolvetxnmyi_", defaults_tcprequestcontentdoresolvetxnmyi_}, + {"defaults_tcprequestcontentluafoo", defaults_tcprequestcontentluafoo}, + {"defaults_tcprequestcontentluafooparamifHT", defaults_tcprequestcontentluafooparamifHT}, + {"defaults_tcprequestcontentluafooparampara", defaults_tcprequestcontentluafooparampara}, + {"defaults_tcprequestcontentreject", defaults_tcprequestcontentreject}, + {"defaults_tcprequestcontentrejectifHTTP", defaults_tcprequestcontentrejectifHTTP}, + {"defaults_tcprequestcontentscaddgpc121", defaults_tcprequestcontentscaddgpc121}, + {"defaults_tcprequestcontentscaddgpc121ifis", defaults_tcprequestcontentscaddgpc121ifis}, + {"defaults_tcprequestcontentscincgpc02", defaults_tcprequestcontentscincgpc02}, + {"defaults_tcprequestcontentscincgpc02ifise", defaults_tcprequestcontentscincgpc02ifise}, + {"defaults_tcprequestcontentscincgpc12", defaults_tcprequestcontentscincgpc12}, + {"defaults_tcprequestcontentscincgpc12_", defaults_tcprequestcontentscincgpc12_}, + {"defaults_tcprequestcontentscincgpc12ifise", defaults_tcprequestcontentscincgpc12ifise}, + {"defaults_tcprequestcontentscincgpc12ifise_", defaults_tcprequestcontentscincgpc12ifise_}, + {"defaults_tcprequestcontentscsetgpt001337", defaults_tcprequestcontentscsetgpt001337}, + {"defaults_tcprequestcontentscsetgpt001337i", defaults_tcprequestcontentscsetgpt001337i}, + {"defaults_tcprequestcontentscsetgptx91337i", defaults_tcprequestcontentscsetgptx91337i}, + {"defaults_tcprequestcontentsendspoegroupen", defaults_tcprequestcontentsendspoegroupen}, + {"defaults_tcprequestcontentsetbandwidthlim", defaults_tcprequestcontentsetbandwidthlim}, + {"defaults_tcprequestcontentsetbandwidthlim_", defaults_tcprequestcontentsetbandwidthlim_}, + {"defaults_tcprequestcontentsetbandwidthlim__", defaults_tcprequestcontentsetbandwidthlim__}, + {"defaults_tcprequestcontentsetbandwidthlim___", defaults_tcprequestcontentsetbandwidthlim___}, + {"defaults_tcprequestcontentsetbcmarkhdrpor", defaults_tcprequestcontentsetbcmarkhdrpor}, + {"defaults_tcprequestcontentsetbctos0xffifs", defaults_tcprequestcontentsetbctos0xffifs}, + {"defaults_tcprequestcontentsetdstipv410001", defaults_tcprequestcontentsetdstipv410001}, + {"defaults_tcprequestcontentsetfcmark0xffff", defaults_tcprequestcontentsetfcmark0xffff}, + {"defaults_tcprequestcontentsetfctos100", defaults_tcprequestcontentsetfctos100}, + {"defaults_tcprequestcontentsetloglevelsile", defaults_tcprequestcontentsetloglevelsile}, + {"defaults_tcprequestcontentsetloglevelsile_", defaults_tcprequestcontentsetloglevelsile_}, + {"defaults_tcprequestcontentsetmark0x1AbifF", defaults_tcprequestcontentsetmark0x1AbifF}, + {"defaults_tcprequestcontentsetmark20", defaults_tcprequestcontentsetmark20}, + {"defaults_tcprequestcontentsetnice0", defaults_tcprequestcontentsetnice0}, + {"defaults_tcprequestcontentsetnice0ifFALSE", defaults_tcprequestcontentsetnice0ifFALSE}, + {"defaults_tcprequestcontentsetpriorityclas", defaults_tcprequestcontentsetpriorityclas}, + {"defaults_tcprequestcontentsetpriorityclas_", defaults_tcprequestcontentsetpriorityclas_}, + {"defaults_tcprequestcontentsetpriorityoffs", defaults_tcprequestcontentsetpriorityoffs}, + {"defaults_tcprequestcontentsetpriorityoffs_", defaults_tcprequestcontentsetpriorityoffs_}, + {"defaults_tcprequestcontentsetsrcporthdrpo", defaults_tcprequestcontentsetsrcporthdrpo}, + {"defaults_tcprequestcontentsetsrcporthdrpo_", defaults_tcprequestcontentsetsrcporthdrpo_}, + {"defaults_tcprequestcontentsettos0", defaults_tcprequestcontentsettos0}, + {"defaults_tcprequestcontentsettos0ifFALSE", defaults_tcprequestcontentsettos0ifFALSE}, + {"defaults_tcprequestcontentsetvarfmtsessdn", defaults_tcprequestcontentsetvarfmtsessdn}, + {"defaults_tcprequestcontentsetvarfmtsesssr", defaults_tcprequestcontentsetvarfmtsesssr}, + {"defaults_tcprequestcontentsetvarsessdnssl", defaults_tcprequestcontentsetvarsessdnssl}, + {"defaults_tcprequestcontentsetvarsesssrcsr", defaults_tcprequestcontentsetvarsesssrcsr}, + {"defaults_tcprequestcontentsilentdrop", defaults_tcprequestcontentsilentdrop}, + {"defaults_tcprequestcontentsilentdropifHTT", defaults_tcprequestcontentsilentdropifHTT}, + {"defaults_tcprequestcontentswitchmodehttp", defaults_tcprequestcontentswitchmodehttp}, + {"defaults_tcprequestcontentswitchmodehttpi", defaults_tcprequestcontentswitchmodehttpi}, + {"defaults_tcprequestcontentswitchmodehttpp", defaults_tcprequestcontentswitchmodehttpp}, + {"defaults_tcprequestcontenttracksc0src", defaults_tcprequestcontenttracksc0src}, + {"defaults_tcprequestcontenttracksc0srcifso", defaults_tcprequestcontenttracksc0srcifso}, + {"defaults_tcprequestcontenttracksc0srctabl", defaults_tcprequestcontenttracksc0srctabl}, + {"defaults_tcprequestcontenttracksc0srctabl_", defaults_tcprequestcontenttracksc0srctabl_}, + {"defaults_tcprequestcontenttracksc1src", defaults_tcprequestcontenttracksc1src}, + {"defaults_tcprequestcontenttracksc1srcifso", defaults_tcprequestcontenttracksc1srcifso}, + {"defaults_tcprequestcontenttracksc1srctabl", defaults_tcprequestcontenttracksc1srctabl}, + {"defaults_tcprequestcontenttracksc1srctabl_", defaults_tcprequestcontenttracksc1srctabl_}, + {"defaults_tcprequestcontenttracksc2src", defaults_tcprequestcontenttracksc2src}, + {"defaults_tcprequestcontenttracksc2srcifso", defaults_tcprequestcontenttracksc2srcifso}, + {"defaults_tcprequestcontenttracksc2srctabl", defaults_tcprequestcontenttracksc2srctabl}, + {"defaults_tcprequestcontenttracksc2srctabl_", defaults_tcprequestcontenttracksc2srctabl_}, + {"defaults_tcprequestcontenttracksc5src", defaults_tcprequestcontenttracksc5src}, + {"defaults_tcprequestcontenttracksc5srcifso", defaults_tcprequestcontenttracksc5srcifso}, + {"defaults_tcprequestcontenttracksc5srctabl", defaults_tcprequestcontenttracksc5srctabl}, + {"defaults_tcprequestcontenttracksc5srctabl_", defaults_tcprequestcontenttracksc5srctabl_}, + {"defaults_tcprequestcontentunsetvarsessdn", defaults_tcprequestcontentunsetvarsessdn}, + {"defaults_tcprequestcontentunsetvarsesssrc", defaults_tcprequestcontentunsetvarsesssrc}, + {"defaults_tcprequestcontentuseserviceluade", defaults_tcprequestcontentuseserviceluade}, + {"defaults_tcprequestcontentuseserviceluade_", defaults_tcprequestcontentuseserviceluade_}, + {"defaults_tcprequestsessionaccept", defaults_tcprequestsessionaccept}, + {"defaults_tcprequestsessionacceptifHTTP", defaults_tcprequestsessionacceptifHTTP}, + {"defaults_tcprequestsessionattachsrvsrv1", defaults_tcprequestsessionattachsrvsrv1}, + {"defaults_tcprequestsessionattachsrvsrv1na", defaults_tcprequestsessionattachsrvsrv1na}, + {"defaults_tcprequestsessionattachsrvsrv1na_", defaults_tcprequestsessionattachsrvsrv1na_}, + {"defaults_tcprequestsessionreject", defaults_tcprequestsessionreject}, + {"defaults_tcprequestsessionrejectifHTTP", defaults_tcprequestsessionrejectifHTTP}, + {"defaults_tcprequestsessionscaddgpc121", defaults_tcprequestsessionscaddgpc121}, + {"defaults_tcprequestsessionscaddgpc121ifis", defaults_tcprequestsessionscaddgpc121ifis}, + {"defaults_tcprequestsessionscincgpc02", defaults_tcprequestsessionscincgpc02}, + {"defaults_tcprequestsessionscincgpc02ifise", defaults_tcprequestsessionscincgpc02ifise}, + {"defaults_tcprequestsessionscincgpc12", defaults_tcprequestsessionscincgpc12}, + {"defaults_tcprequestsessionscincgpc12_", defaults_tcprequestsessionscincgpc12_}, + {"defaults_tcprequestsessionscincgpc12ifise", defaults_tcprequestsessionscincgpc12ifise}, + {"defaults_tcprequestsessionscincgpc12ifise_", defaults_tcprequestsessionscincgpc12ifise_}, + {"defaults_tcprequestsessionscsetgpt001337", defaults_tcprequestsessionscsetgpt001337}, + {"defaults_tcprequestsessionscsetgpt001337i", defaults_tcprequestsessionscsetgpt001337i}, + {"defaults_tcprequestsessionscsetgptsc51133", defaults_tcprequestsessionscsetgptsc51133}, + {"defaults_tcprequestsessionsetfcmark9999if", defaults_tcprequestsessionsetfcmark9999if}, + {"defaults_tcprequestsessionsetfctos255", defaults_tcprequestsessionsetfctos255}, + {"defaults_tcprequestsessionsetvarfmtsessdn", defaults_tcprequestsessionsetvarfmtsessdn}, + {"defaults_tcprequestsessionsetvarfmtsesssr", defaults_tcprequestsessionsetvarfmtsesssr}, + {"defaults_tcprequestsessionsetvarsessdnssl", defaults_tcprequestsessionsetvarsessdnssl}, + {"defaults_tcprequestsessionsetvarsesssrcsr", defaults_tcprequestsessionsetvarsesssrcsr}, + {"defaults_tcprequestsessionsilentdrop", defaults_tcprequestsessionsilentdrop}, + {"defaults_tcprequestsessionsilentdropifHTT", defaults_tcprequestsessionsilentdropifHTT}, + {"defaults_tcprequestsessiontracksc0src", defaults_tcprequestsessiontracksc0src}, + {"defaults_tcprequestsessiontracksc0srcifso", defaults_tcprequestsessiontracksc0srcifso}, + {"defaults_tcprequestsessiontracksc0srctabl", defaults_tcprequestsessiontracksc0srctabl}, + {"defaults_tcprequestsessiontracksc0srctabl_", defaults_tcprequestsessiontracksc0srctabl_}, + {"defaults_tcprequestsessiontracksc1src", defaults_tcprequestsessiontracksc1src}, + {"defaults_tcprequestsessiontracksc1srcifso", defaults_tcprequestsessiontracksc1srcifso}, + {"defaults_tcprequestsessiontracksc1srctabl", defaults_tcprequestsessiontracksc1srctabl}, + {"defaults_tcprequestsessiontracksc1srctabl_", defaults_tcprequestsessiontracksc1srctabl_}, + {"defaults_tcprequestsessiontracksc2src", defaults_tcprequestsessiontracksc2src}, + {"defaults_tcprequestsessiontracksc2srcifso", defaults_tcprequestsessiontracksc2srcifso}, + {"defaults_tcprequestsessiontracksc2srctabl", defaults_tcprequestsessiontracksc2srctabl}, + {"defaults_tcprequestsessiontracksc2srctabl_", defaults_tcprequestsessiontracksc2srctabl_}, + {"defaults_tcprequestsessiontracksc5src", defaults_tcprequestsessiontracksc5src}, + {"defaults_tcprequestsessiontracksc5srcifso", defaults_tcprequestsessiontracksc5srcifso}, + {"defaults_tcprequestsessiontracksc5srctabl", defaults_tcprequestsessiontracksc5srctabl}, + {"defaults_tcprequestsessiontracksc5srctabl_", defaults_tcprequestsessiontracksc5srctabl_}, + {"defaults_tcprequestsessionunsetvarsessdn", defaults_tcprequestsessionunsetvarsessdn}, + {"defaults_tcprequestsessionunsetvarsesssrc", defaults_tcprequestsessionunsetvarsesssrc}, {"defaults_uniqueidformatXocicpfifpTsrtpid", defaults_uniqueidformatXocicpfifpTsrtpid}, {"defaults_uniqueidformatXocpfifpTsrtpid", defaults_uniqueidformatXocpfifpTsrtpid}, {"defaults_uniqueidformatXofifpTsrtpid", defaults_uniqueidformatXofifpTsrtpid}, diff --git a/types/types-other.go b/types/types-other.go index 38d4dac..03f664a 100644 --- a/types/types-other.go +++ b/types/types-other.go @@ -260,7 +260,7 @@ type Action interface { GetComment() string } -//sections:frontend,backend +//sections:frontend,backend,defaults //name:http-request //struct:name:Requests //dir:http @@ -553,7 +553,7 @@ type Action interface { type HTTPRequests struct{} //name:http-response -//sections:frontend,backend +//sections:frontend,backend,defaults //struct:name:Responses //dir:http //is:multiple @@ -729,7 +729,7 @@ type HTTPRequests struct{} type HTTPResponses struct{} //name:http-after-response -//sections:frontend,backend +//sections:frontend,backend,defaults //struct:name:AfterResponses //dir:http //is:multiple @@ -938,7 +938,7 @@ type TCPType interface { } //name:tcp-request -//sections:frontend,backend +//sections:frontend,backend,defaults //struct:name:Requests //dir:tcp //is:multiple diff --git a/types/types.go b/types/types.go index 5b0e57f..e970cb4 100644 --- a/types/types.go +++ b/types/types.go @@ -103,7 +103,7 @@ type LogStdErr struct { Comment string } -//sections:frontend,backend +//sections:frontend,backend,defaults //name:acl //is:multiple //test:ok:acl url_stats path_beg /stats