Changeset

13320:23f95714c386

net.http: Set Connection header based on connection pool usage Connection: keep-alive is implicit in HTTP/1.1 but explicit > implicit
author Kim Alvefur <zash@zash.se>
date Sat, 11 Nov 2023 23:48:45 +0100
parents 13319:6d6291dfe735
children 13321:19c814d4dd3a
files net/http.lua
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/net/http.lua	Sat Nov 11 23:08:34 2023 +0100
+++ b/net/http.lua	Sat Nov 11 23:48:45 2023 +0100
@@ -115,7 +115,8 @@
 				request.callback(r.body, r.code, r, request);
 				request.callback = nil;
 			end
-			destroy_request(request);
+			local persistent = (","..(r.headers.connection or "keep-alive")..","):find(",keep-alive,")
+			destroy_request(request, persistent);
 		end
 		local function options_cb()
 			return request;
@@ -269,6 +270,12 @@
 		["User-Agent"] = "Prosody XMPP Server";
 	};
 
+	if self.pool then
+		headers["Connection"] = "keep-alive";
+	else
+		headers["Connection"] = "close";
+	end
+
 	if req.userinfo then
 		headers["Authorization"] = "Basic "..b64(req.userinfo);
 	end