| varnishtest "Misuses of defaults section defining TCP/HTTP rules" |
| |
| feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev0)'" |
| feature ignore_unknown_macro |
| |
| # |
| # anonymous defaults section cannot define TCP/HTTP rules |
| # |
| haproxy h1 -conf-BAD {} { |
| defaults |
| http-request set-header X-Hdr 1 |
| } |
| |
| haproxy h2 -conf-BAD {} { |
| defaults |
| http-response set-header X-Hdr 1 |
| } |
| |
| haproxy h3 -conf-BAD {} { |
| defaults |
| http-after-request set-header X-Hdr 1 |
| } |
| |
| haproxy h4 -conf-BAD {} { |
| defaults |
| tcp-request connection accept |
| } |
| |
| haproxy h5 -conf-BAD {} { |
| defaults |
| tcp-request session accept |
| } |
| |
| haproxy h6 -conf-BAD {} { |
| defaults |
| tcp-request inspect-delay 5s |
| tcp-request content accept |
| } |
| |
| haproxy h7 -conf-BAD {} { |
| defaults |
| tcp-response inspect-delay 5s |
| tcp-response content accept |
| } |
| |
| # |
| # defaults section defining TCP/HTTP rules cannot be used to init another |
| # defaults section |
| # |
| haproxy h8 -conf-BAD {} { |
| defaults invalid |
| tcp-response inspect-delay 5s |
| tcp-response content accept |
| |
| defaults from invalid |
| mode tcp |
| } |
| |
| # |
| # defaults section defining TCP/HTTP rules cannot be used to init a listen |
| # section |
| # |
| haproxy h9 -conf-BAD {} { |
| defaults invalid |
| tcp-request inspect-delay 5s |
| tcp-request content accept |
| |
| listen li from invalid |
| mode tcp |
| bind "fd@${lih9}" |
| server www 127.0.0.1:80 |
| } |
| |
| # |
| # defaults section defining TCP/HTTP rules cannot be used to init frontend and |
| # backend sections at the same time |
| # |
| # |
| haproxy h10 -conf-BAD {} { |
| defaults invalid |
| tcp-request inspect-delay 5s |
| tcp-request content accept |
| |
| frontend fe from invalid |
| mode tcp |
| bind "fd@${feh10}" |
| default_backend be1 |
| |
| backend be from invalid |
| mode tcp |
| server www 127.0.0.1:80 |
| } |
| |
| # |
| # defaults section defining 'tcp-request connection' or 'tcp-request session' |
| # rules cannot be used to init backend sections |
| # |
| haproxy h11 -conf-BAD {} { |
| defaults invalid |
| tcp-request connection accept |
| |
| backend be from invalid |
| mode tcp |
| server www 127.0.0.1:80 |
| } |
| |
| haproxy h12 -conf-BAD {} { |
| defaults invalid |
| tcp-request session accept |
| |
| backend be from invalid |
| mode tcp |
| server www 127.0.0.1:80 |
| } |
| |
| # |
| # defaults section defining 'tcp-response content' rules cannot be used to init |
| # a frontend section |
| # |
| haproxy h13 -conf-BAD {} { |
| defaults invalid |
| tcp-response inspect-delay 5s |
| tcp-response content accept |
| |
| frontend fe from invalid |
| mode tcp |
| bind "fd@${feh10}" |
| } |
| |
| haproxy h14 -conf-OK { |
| defaults tcp |
| tcp-response inspect-delay 5s |
| tcp-response content accept |
| |
| backend be from tcp |
| mode tcp |
| server www 127.0.0.1:80 |
| } |
| |
| # |
| # Check arguments resolutions in rules. FE/BE arguments must be resolved, but |
| # SRV/TAB arguments without an explicit proxy name are not allowed. |
| # |
| |
| haproxy h15 -conf-BAD {} { |
| defaults invalid |
| mode http |
| http-request set-header x-test "%[srv_conn(www)]" |
| |
| backend be from invalid |
| server www 127.0.0.1:80 |
| } |
| |
| haproxy h16 -conf-BAD {} { |
| defaults invalid |
| mode http |
| http-request track-sc0 src |
| http-request deny deny_status 429 if { sc_http_req_rate(0) gt 20 } |
| |
| backend be |
| stick-table type ip size 100k expire 30s store http_req_rate(10s) |
| server www 127.0.0.1:80 |
| } |
| |
| haproxy h17 -conf-OK { |
| defaults common |
| mode http |
| |
| defaults def_front from common |
| http-request set-header x-test1 "%[fe_conn]" |
| |
| defaults def_back from common |
| http-request track-sc0 src table be |
| http-request deny deny_status 429 if { sc_http_req_rate(0,be) gt 20 } |
| http-request set-header x-test2 "%[be_conn]" |
| http-request set-header x-test3 "%[srv_conn(be/www)]" |
| |
| frontend fe from def_front |
| bind "fd@${feh15}" |
| default_backend be |
| |
| backend be from def_back |
| stick-table type ip size 100k expire 30s store http_req_rate(10s) |
| server www 127.0.0.1:80 |
| } |