Comparison

net/http/server.lua @ 13100:18ffe7833446

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.
author Kim Alvefur <zash@zash.se>
date Sun, 14 May 2023 18:38:22 +0200
parent 12974:ba409c67353b
child 13101:c975dafa4303
comparison
equal deleted inserted replaced
13099:a1ba503610ed 13100:18ffe7833446
12 local codes = require "prosody.net.http.codes"; 12 local codes = require "prosody.net.http.codes";
13 local promise = require "prosody.util.promise"; 13 local promise = require "prosody.util.promise";
14 local errors = require "prosody.util.error"; 14 local errors = require "prosody.util.error";
15 local blocksize = 2^16; 15 local blocksize = 2^16;
16 local async = require "prosody.util.async"; 16 local async = require "prosody.util.async";
17 local id = require"prosody.util.id";
17 18
18 local _M = {}; 19 local _M = {};
19 20
20 local sessions = {}; 21 local sessions = {};
21 local incomplete = {}; 22 local incomplete = {};
126 end 127 end
127 handle_request(conn, request, done); wait(); 128 handle_request(conn, request, done); wait();
128 end, runner_callbacks, session); 129 end, runner_callbacks, session);
129 local function success_cb(request) 130 local function success_cb(request)
130 --log("debug", "success_cb: %s", request.path); 131 --log("debug", "success_cb: %s", request.path);
132 request.id = id.short();
131 request.ip = ip; 133 request.ip = ip;
132 request.secure = secure; 134 request.secure = secure;
133 session.thread:run(request); 135 session.thread:run(request);
134 end 136 end
135 local function error_cb(err) 137 local function error_cb(err)
247 end 249 end
248 250
249 local is_head_request = request.method == "HEAD"; 251 local is_head_request = request.method == "HEAD";
250 252
251 local response = { 253 local response = {
254 id = request.id;
252 request = request; 255 request = request;
253 is_head_request = is_head_request; 256 is_head_request = is_head_request;
254 status_code = 200; 257 status_code = 200;
255 headers = { date = date_header, connection = response_conn_header }; 258 headers = { date = date_header, connection = response_conn_header };
256 persistent = persistent; 259 persistent = persistent;