net.http.server: Assign an ID to each request, shared with response
authorKim Alvefur <zash@zash.se>
Sun, 14 May 2023 18:38:22 +0200
changeset 13104 18ffe7833446
parent 13103 a1ba503610ed
child 13105 c975dafa4303
net.http.server: Assign an ID to each request, shared with response Goal is improve tracking of individual HTTP requests throughout its life-cycle. Having a single ID to use in logging should help here.
net/http/server.lua
--- a/net/http/server.lua	Sun May 07 20:34:07 2023 +0200
+++ b/net/http/server.lua	Sun May 14 18:38:22 2023 +0200
@@ -14,6 +14,7 @@
 local errors = require "prosody.util.error";
 local blocksize = 2^16;
 local async = require "prosody.util.async";
+local id = require"prosody.util.id";
 
 local _M = {};
 
@@ -128,6 +129,7 @@
 	end, runner_callbacks, session);
 	local function success_cb(request)
 		--log("debug", "success_cb: %s", request.path);
+		request.id = id.short();
 		request.ip = ip;
 		request.secure = secure;
 		session.thread:run(request);
@@ -249,6 +251,7 @@
 	local is_head_request = request.method == "HEAD";
 
 	local response = {
+		id = request.id;
 		request = request;
 		is_head_request = is_head_request;
 		status_code = 200;