]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Test] Fix TCP tests for HTTP/1.1 compliance
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 6 Dec 2025 14:44:34 +0000 (14:44 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 6 Dec 2025 14:44:34 +0000 (14:44 +0000)
- 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

test/functional/lua/tcp.lua
test/functional/util/dummy_avast.py
test/functional/util/dummy_clam.py
test/functional/util/dummy_fprot.py
test/functional/util/dummy_http.py

index e5c765ba0c88864c72a5e54a419bad74853642c4..d2c3eb447a0cad49d8f8403e4b0aa748ea540118 100644 (file)
@@ -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
index a4a6c62a2d4ad8fb1f7fe59d6075388ac75f0c99..8a9f229355e3f2ea91cea0ba5e0db8e9da0adbde 100755 (executable)
@@ -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:
index 1b614f58b108b3479f86102bc01dd922880a3ec7..866cb9570bc1e5f4d9e68dd637b611e130a80dd4 100755 (executable)
@@ -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:
index 31ae2c487b82aae2f6a42b8917127f7ab7d5def9..9516283c7d59e39c3fdaae521827a7f8a4f49b9d 100755 (executable)
@@ -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:
index c1f573390a1837719869196fb0c64ecdf66b98a8..b82e58167ad3e516d0d03a1a6bbf423b749ea4a5 100755 (executable)
@@ -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")