Mercurial > prosody-hg
comparison net/http/server.lua @ 13101:c975dafa4303
net.http.server: Assign each request its own log source
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 14 May 2023 18:44:11 +0200 |
| parents | 18ffe7833446 |
| children | 4e112b87543d |
comparison
equal
deleted
inserted
replaced
| 13100:18ffe7833446 | 13101:c975dafa4303 |
|---|---|
| 1 | 1 |
| 2 local t_insert, t_concat = table.insert, table.concat; | 2 local t_insert, t_concat = table.insert, table.concat; |
| 3 local parser_new = require "prosody.net.http.parser".new; | 3 local parser_new = require "prosody.net.http.parser".new; |
| 4 local events = require "prosody.util.events".new(); | 4 local events = require "prosody.util.events".new(); |
| 5 local addserver = require "prosody.net.server".addserver; | 5 local addserver = require "prosody.net.server".addserver; |
| 6 local log = require "prosody.util.logger".init("http.server"); | 6 local logger = require "prosody.util.logger"; |
| 7 local log = logger.init("http.server"); | |
| 7 local os_date = os.date; | 8 local os_date = os.date; |
| 8 local pairs = pairs; | 9 local pairs = pairs; |
| 9 local s_upper = string.upper; | 10 local s_upper = string.upper; |
| 10 local setmetatable = setmetatable; | 11 local setmetatable = setmetatable; |
| 11 local cache = require "prosody.util.cache"; | 12 local cache = require "prosody.util.cache"; |
| 128 handle_request(conn, request, done); wait(); | 129 handle_request(conn, request, done); wait(); |
| 129 end, runner_callbacks, session); | 130 end, runner_callbacks, session); |
| 130 local function success_cb(request) | 131 local function success_cb(request) |
| 131 --log("debug", "success_cb: %s", request.path); | 132 --log("debug", "success_cb: %s", request.path); |
| 132 request.id = id.short(); | 133 request.id = id.short(); |
| 134 request.log = logger.init("http." .. request.method .. "-" .. request.id); | |
| 133 request.ip = ip; | 135 request.ip = ip; |
| 134 request.secure = secure; | 136 request.secure = secure; |
| 135 session.thread:run(request); | 137 session.thread:run(request); |
| 136 end | 138 end |
| 137 local function error_cb(err) | 139 local function error_cb(err) |
| 250 | 252 |
| 251 local is_head_request = request.method == "HEAD"; | 253 local is_head_request = request.method == "HEAD"; |
| 252 | 254 |
| 253 local response = { | 255 local response = { |
| 254 id = request.id; | 256 id = request.id; |
| 257 log = request.log; | |
| 255 request = request; | 258 request = request; |
| 256 is_head_request = is_head_request; | 259 is_head_request = is_head_request; |
| 257 status_code = 200; | 260 status_code = 200; |
| 258 headers = { date = date_header, connection = response_conn_header }; | 261 headers = { date = date_header, connection = response_conn_header }; |
| 259 persistent = persistent; | 262 persistent = persistent; |
| 282 end | 285 end |
| 283 | 286 |
| 284 local global_event = request.method.." "..request.path:match("[^?]*"); | 287 local global_event = request.method.." "..request.path:match("[^?]*"); |
| 285 | 288 |
| 286 local payload = { request = request, response = response }; | 289 local payload = { request = request, response = response }; |
| 287 log("debug", "Firing event: %s", global_event); | 290 request.log("debug", "Firing event: %s", global_event); |
| 288 local result = events.fire_event(global_event, payload); | 291 local result = events.fire_event(global_event, payload); |
| 289 if result == nil and is_head_request then | 292 if result == nil and is_head_request then |
| 290 local global_head_event = "GET "..request.path:match("[^?]*"); | 293 local global_head_event = "GET "..request.path:match("[^?]*"); |
| 291 log("debug", "Firing event: %s", global_head_event); | 294 request.log("debug", "Firing event: %s", global_head_event); |
| 292 result = events.fire_event(global_head_event, payload); | 295 result = events.fire_event(global_head_event, payload); |
| 293 end | 296 end |
| 294 if result == nil then | 297 if result == nil then |
| 295 if not hosts[host] then | 298 if not hosts[host] then |
| 296 if hosts[default_host] then | 299 if hosts[default_host] then |
| 307 response:send(events.fire_event("http-error", { code = err_code, message = err, response = response })); | 310 response:send(events.fire_event("http-error", { code = err_code, message = err, response = response })); |
| 308 return; | 311 return; |
| 309 end | 312 end |
| 310 | 313 |
| 311 local host_event = request.method.." "..host..request.path:match("[^?]*"); | 314 local host_event = request.method.." "..host..request.path:match("[^?]*"); |
| 312 log("debug", "Firing event: %s", host_event); | 315 request.log("debug", "Firing event: %s", host_event); |
| 313 result = events.fire_event(host_event, payload); | 316 result = events.fire_event(host_event, payload); |
| 314 | 317 |
| 315 if result == nil and is_head_request then | 318 if result == nil and is_head_request then |
| 316 local host_head_event = "GET "..host..request.path:match("[^?]*"); | 319 local host_head_event = "GET "..host..request.path:match("[^?]*"); |
| 317 log("debug", "Firing event: %s", host_head_event); | 320 request.log("debug", "Firing event: %s", host_head_event); |
| 318 result = events.fire_event(host_head_event, payload); | 321 result = events.fire_event(host_head_event, payload); |
| 319 end | 322 end |
| 320 end | 323 end |
| 321 | 324 |
| 322 return handle_result(request, response, result); | 325 return handle_result(request, response, result); |
