mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-18 09:24:31 +00:00
f03b53c81d
This patch allows to replace the host header generated by the httpclient instead of adding a new one, resulting in the server replying an error 400. The host header is now generated from the uri only if it wasn't found in the list of headers. Also add a new request in the VTC file to test this. This patch must be backported in 2.5.
64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
varnishtest "Lua: check httpclient functionality from a lua-task"
|
|
|
|
# A request if first made with c0 with the port of s1 and s2 so the httpclient
|
|
# can generate its URI with it.
|
|
#
|
|
# This reg-test sends a payload with the httpclient to s1, s1 returns another
|
|
# payload. The 2nd lua httpclient sends back the payload from s1 to s2.
|
|
#
|
|
|
|
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev7)'"
|
|
feature ignore_unknown_macro
|
|
|
|
#REQUIRE_OPTIONS=LUA
|
|
|
|
server s1 {
|
|
rxreq
|
|
txresp -bodylen 54000
|
|
expect req.body ~ ".*0 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
|
|
expect req.body ~ ".*500 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
|
|
expect req.body ~ ".*1000 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
|
|
expect req.body ~ ".*1500 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
|
|
expect req.body ~ ".*2000 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
} -start
|
|
|
|
server s2 {
|
|
rxreq
|
|
txresp
|
|
expect req.bodylen == 54000
|
|
} -start
|
|
|
|
server s3 {
|
|
rxreq
|
|
txresp -bodylen 54000
|
|
expect req.method == "GET"
|
|
expect req.http.host == "foobar.haproxy.local"
|
|
} -start
|
|
|
|
|
|
haproxy h1 -conf {
|
|
global
|
|
lua-load ${testdir}/lua_httpclient.lua
|
|
|
|
frontend fe1
|
|
mode http
|
|
bind "fd@${fe1}"
|
|
default_backend b1
|
|
|
|
backend b1
|
|
mode http
|
|
http-request use-service lua.fakeserv
|
|
|
|
} -start
|
|
|
|
client c0 -connect ${h1_fe1_sock} {
|
|
txreq -url "/" -hdr "vtcport: ${s1_port}" -hdr "vtcport2: ${s2_port}" -hdr "vtcport3: ${s3_port}"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|
|
|
|
|
|
server s1 -wait
|
|
server s2 -wait
|
|
server s3 -wait
|