mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-18 19:50:54 +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.
50 lines
1.4 KiB
Lua
50 lines
1.4 KiB
Lua
|
|
local vtc_port = 0
|
|
local vtc_port2 = 0
|
|
local vtc_port3 = 0
|
|
|
|
core.register_service("fakeserv", "http", function(applet)
|
|
vtc_port = applet.headers["vtcport"][0]
|
|
vtc_port2 = applet.headers["vtcport2"][0]
|
|
vtc_port3 = applet.headers["vtcport3"][0]
|
|
core.Info("APPLET START")
|
|
local response = "OK"
|
|
applet:add_header("Server", "haproxy/webstats")
|
|
applet:add_header("Content-Length", string.len(response))
|
|
applet:add_header("Content-Type", "text/html")
|
|
applet:start_response()
|
|
applet:send(response)
|
|
core.Info("APPLET DONE")
|
|
end)
|
|
|
|
local function cron()
|
|
-- wait for until the correct port is set through the c0 request..
|
|
while vtc_port == 0 do
|
|
core.msleep(1)
|
|
end
|
|
core.Debug('CRON port:' .. vtc_port)
|
|
|
|
local body = ""
|
|
|
|
for i = 0, 2000 do
|
|
body = body .. i .. ' ABCDEFGHIJKLMNOPQRSTUVWXYZ\n'
|
|
end
|
|
core.Info("First httpclient request")
|
|
local httpclient = core.httpclient()
|
|
local response = httpclient:post{url="http://127.0.0.1:" .. vtc_port, body=body}
|
|
core.Info("Received: " .. response.body)
|
|
|
|
body = response.body
|
|
|
|
core.Info("Second httpclient request")
|
|
local httpclient2 = core.httpclient()
|
|
local response2 = httpclient2:post{url="http://127.0.0.1:" .. vtc_port2, body=body}
|
|
|
|
core.Info("Third httpclient request")
|
|
local httpclient3 = core.httpclient()
|
|
local response3 = httpclient3:get{url="http://127.0.0.1:" .. vtc_port3, headers={ [ "Host" ] = { "foobar.haproxy.local" } }}
|
|
|
|
end
|
|
|
|
core.register_task(cron)
|