Mercurial > prosody-modules
annotate mod_http_debug/mod_http_debug.lua @ 6317:7b693a5539ad
mod_auth_http_async: Update documentation
The required async APIs were included in 0.10.0, but at the time of this
writing we only consider 0.12.x and later supported.
The fallback sync API would have made it work with even earlier
versions, but I don't remember specifically and it doesn't matter.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 02 Sep 2025 21:32:01 +0200 |
| parents | b6af4d1ff8c1 |
| children |
| rev | line source |
|---|---|
|
5333
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local json = require "util.json" |
|
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 module:depends("http") |
|
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
4 local function handle_request(event) |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
5 local request = event.request; |
|
5491
7842502c1157
mod_http_debug: Log some extended info about requests
Kim Alvefur <zash@zash.se>
parents:
5490
diff
changeset
|
6 (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); |
|
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
7 return { |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
8 status_code = 200; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
9 headers = { content_type = "application/json" }; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
10 host = module.host; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
11 body = json.encode { |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
12 body = request.body; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
13 headers = request.headers; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
14 httpversion = request.httpversion; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
15 id = request.id; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
16 ip = request.ip; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
17 method = request.method; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
18 path = request.path; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
19 secure = request.secure; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
20 url = request.url; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
21 }; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
22 } |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
23 end |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
24 |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
25 local methods = module:get_option_set("http_debug_methods", { "GET"; "HEAD"; "DELETE"; "OPTIONS"; "PATCH"; "POST"; "PUT" }); |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
26 local route = {}; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
27 for method in methods do |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
28 route[method] = handle_request; |
|
5492
b6af4d1ff8c1
mod_http_debug: Handle any path under /debug/* as well
Kim Alvefur <zash@zash.se>
parents:
5491
diff
changeset
|
29 route[method .. " /*"] = handle_request; |
|
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
30 end |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
31 |
|
5333
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 module:provides("http", { |
|
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
33 route = route; |
|
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
34 }) |
