File

tests/test_net_http_parser.lua @ 8267:42fad8465537

mod_s2s: Use a separate resolver object for each outgoing session Cleaner approach hopefully fixes problems with some peoples' DNS hanging after a while, failed DNS when a large number of queries are made at once, and source port re-use. Related issues: #487, 761, #991, #992, #1001
author Matthew Wild <mwild1@gmail.com>
date Mon, 25 Sep 2017 23:12:47 +0100
parent 7493:f67b7509ee28
line wrap: on
line source

local httpstreams = { [[
GET / HTTP/1.1
Host: example.com

]], [[
HTTP/1.1 200 OK
Content-Length: 0

]], [[
HTTP/1.1 200 OK
Content-Length: 7

Hello
HTTP/1.1 200 OK
Transfer-Encoding: chunked

1
H
1
e
2
ll
1
o
0


]]
}

function new(new)

	for _, stream in ipairs(httpstreams) do
		local success;
		local function success_cb(packet)
			success = true;
		end
		stream = stream:gsub("\n", "\r\n");
		local parser = new(success_cb, error, stream:sub(1,4) == "HTTP" and "client" or "server")
		for chunk in stream:gmatch("..?.?") do
			parser:feed(chunk);
		end

		assert_is(success);
	end

end