Commit cf9a9957d for llama.cpp

commit cf9a9957dae4801dde95d174ec1ac1b4cac84bf8
Author: Srijan Keshri <212402043+arcusbuilds@users.noreply.github.com>
Date:   Sun Nov 15 04:59:28 2026 +0530

    server : Fix connection reuse after streamed responses (#30492)

    Assisted-by: Codex

diff --git a/tools/server/server-http.cpp b/tools/server/server-http.cpp
index 5bdece55b..b7dc26c8a 100644
--- a/tools/server/server-http.cpp
+++ b/tools/server/server-http.cpp
@@ -772,7 +772,7 @@ static void process_handler_response(server_http_req_ptr && request, server_http
                 sink.done();
                 SRV_DBG("%s", "http: stream ended\n");
             }
-            return has_next;
+            return true;
         };
         const auto on_complete = [request = q_ptr, response = r_ptr](bool) mutable {
             response->on_complete();
diff --git a/tools/server/tests/unit/test_completion.py b/tools/server/tests/unit/test_completion.py
index 6afcb1773..0c5beb23e 100644
--- a/tools/server/tests/unit/test_completion.py
+++ b/tools/server/tests/unit/test_completion.py
@@ -1,3 +1,4 @@
+import http.client
 import pytest
 import requests
 import time
@@ -93,6 +94,30 @@ def test_completion_stream_vs_non_stream():
     assert content_stream == res_non_stream.body["content"]


+def test_completion_connection_reuse():
+    server.start()
+    conn = http.client.HTTPConnection(server.server_host, server.server_port, timeout=30)
+    try:
+        conn.connect()
+        conn.auto_open = 0
+        original_socket = conn.sock
+        conn.request("POST", "/completion", json.dumps({
+            "prompt": "Hello", "n_predict": 4, "stream": True,
+        }), {"Content-Type": "application/json"})
+        with conn.getresponse() as response:
+            assert response.status == 200
+            assert response.chunked
+            assert not response.will_close
+            assert response.read()
+        conn.request("GET", "/health")
+        with conn.getresponse() as response:
+            assert response.status == 200
+            assert json.loads(response.read())["status"] == "ok"
+        assert conn.sock is original_socket
+    finally:
+        conn.close()
+
+
 def test_completion_with_openai_library():
     global server
     server.start()