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", dst = vtc_port3, headers={ [ "Host" ] = { "foobar.haproxy.local" } }} end core.register_task(cron)