Software /
code /
prosody-modules
File
mod_http_debug/mod_http_debug.lua @ 5492:b6af4d1ff8c1
mod_http_debug: Handle any path under /debug/* as well
Sometimes things encode useful info in paths. Could also help if you add
path components in a reverse proxy.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 26 May 2023 15:38:38 +0200 |
parent | 5491:7842502c1157 |
line wrap: on
line source
local json = require "util.json" module:depends("http") local function handle_request(event) local request = event.request; (request.log or module._log)("debug", "%s -- %s %q HTTP/%s -- %q -- %s", request.ip, request.method, request.url, request.httpversion, request.headers, request.body); return { status_code = 200; headers = { content_type = "application/json" }; host = module.host; body = json.encode { body = request.body; headers = request.headers; httpversion = request.httpversion; id = request.id; ip = request.ip; method = request.method; path = request.path; secure = request.secure; url = request.url; }; } end local methods = module:get_option_set("http_debug_methods", { "GET"; "HEAD"; "DELETE"; "OPTIONS"; "PATCH"; "POST"; "PUT" }); local route = {}; for method in methods do route[method] = handle_request; route[method .. " /*"] = handle_request; end module:provides("http", { route = route; })