From: Vsevolod Stakhov Date: Sat, 6 Dec 2025 14:44:34 +0000 (+0000) Subject: [Test] Fix TCP tests for HTTP/1.1 compliance X-Git-Tag: 3.14.2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab0ed0ea27129533394ffbccdfddcf2352899563;p=thirdparty%2Frspamd.git [Test] Fix TCP tests for HTTP/1.1 compliance - Add required Host header to all HTTP/1.1 requests in tcp.lua - Bind dummy servers to 127.0.0.1 instead of localhost to avoid IPv6/IPv4 mismatch on systems where localhost resolves to ::1 --- diff --git a/test/functional/lua/tcp.lua b/test/functional/lua/tcp.lua index e5c765ba0c..d2c3eb447a 100644 --- a/test/functional/lua/tcp.lua +++ b/test/functional/lua/tcp.lua @@ -19,14 +19,14 @@ local function http_simple_tcp_async_symbol(task) end local function http_read_cb(err, data, conn) logger.errx(task, 'http_read_cb: got reply: %s, error: %s, conn: %s', data, err, conn) - conn:add_write(http_read_post_cb, "POST /request2 HTTP/1.1\r\n\r\n") + conn:add_write(http_read_post_cb, "POST /request2 HTTP/1.1\r\nHost: 127.0.0.1:18080\r\n\r\n") task:insert_result('HTTP_ASYNC_RESPONSE', 1.0, data or err) end rspamd_tcp:request({ task = task, callback = http_read_cb, host = '127.0.0.1', - data = {'GET /request HTTP/1.1\r\nConnection: keep-alive\r\n\r\n'}, + data = {'GET /request HTTP/1.1\r\nHost: 127.0.0.1:18080\r\nConnection: keep-alive\r\n\r\n'}, read = true, port = 18080, }) @@ -122,7 +122,7 @@ local function http_simple_tcp_symbol(task) logger.errx(task, 'connect_sync %1, %2', is_ok, tostring(connection)) - is_ok, err = connection:write('GET /request HTTP/1.1\r\nConnection: keep-alive\r\n\r\n') + is_ok, err = connection:write('GET /request HTTP/1.1\r\nHost: 127.0.0.1:18080\r\nConnection: keep-alive\r\n\r\n') logger.errx(task, 'write %1, %2', is_ok, err) if not is_ok then @@ -149,7 +149,7 @@ local function http_simple_tcp_symbol(task) task:insert_result('HTTP_SYNC_RESPONSE', 1.0, got_content) - is_ok, err = connection:write("POST /request HTTP/1.1\r\n\r\n") + is_ok, err = connection:write("POST /request HTTP/1.1\r\nHost: 127.0.0.1:18080\r\n\r\n") logger.errx(task, 'write[2] %1, %2', is_ok, err) got_content = '' @@ -194,7 +194,7 @@ local function http_tcp_symbol(task) return end - is_ok, err = connection:write(string.format('%s %s HTTP/1.1\r\nConnection: close\r\n\r\n', method:upper(), url)) + is_ok, err = connection:write(string.format('%s %s HTTP/1.1\r\nHost: 127.0.0.1:18080\r\nConnection: close\r\n\r\n', method:upper(), url)) logger.errx(task, 'write %1, %2', is_ok, err) if not is_ok then diff --git a/test/functional/util/dummy_avast.py b/test/functional/util/dummy_avast.py index a4a6c62a2d..8a9f229355 100755 --- a/test/functional/util/dummy_avast.py +++ b/test/functional/util/dummy_avast.py @@ -23,7 +23,7 @@ class MyTCPHandler(socketserver.BaseRequestHandler): self.request.close() if __name__ == "__main__": - HOST = "localhost" + HOST = "127.0.0.1" alen = len(sys.argv) if alen > 1: diff --git a/test/functional/util/dummy_clam.py b/test/functional/util/dummy_clam.py index 1b614f58b1..866cb9570b 100755 --- a/test/functional/util/dummy_clam.py +++ b/test/functional/util/dummy_clam.py @@ -20,7 +20,7 @@ class MyTCPHandler(socketserver.BaseRequestHandler): self.request.close() if __name__ == "__main__": - HOST = "localhost" + HOST = "127.0.0.1" alen = len(sys.argv) if alen > 1: diff --git a/test/functional/util/dummy_fprot.py b/test/functional/util/dummy_fprot.py index 31ae2c487b..9516283c7d 100755 --- a/test/functional/util/dummy_fprot.py +++ b/test/functional/util/dummy_fprot.py @@ -22,7 +22,7 @@ class MyTCPHandler(socketserver.BaseRequestHandler): if __name__ == "__main__": - HOST = "localhost" + HOST = "127.0.0.1" alen = len(sys.argv) if alen > 1: diff --git a/test/functional/util/dummy_http.py b/test/functional/util/dummy_http.py index c1f573390a..b82e58167a 100755 --- a/test/functional/util/dummy_http.py +++ b/test/functional/util/dummy_http.py @@ -113,7 +113,7 @@ def make_app(): async def main(): parser = argparse.ArgumentParser() - parser.add_argument("--bind", "-b", default="localhost", help="bind address") + parser.add_argument("--bind", "-b", default="127.0.0.1", help="bind address") parser.add_argument("--port", "-p", type=int, default=18080, help="bind port") parser.add_argument("--keyfile", "-k", help="server private key file") parser.add_argument("--certfile", "-c", help="server certificate file")