Software /
code /
prosody-modules
Annotate
mod_http_debug/mod_http_debug.lua @ 6055:23c4c61a1068
mod_muc_gateway_optimize: New module to optimize muc presence to remote gateways
Some gateways are happy to receive presence for each participant
in MUCs that they are in only once, to any one of their joined JIDs.
author | Stephen Paul Weber <singpolyma@singpolyma.net> |
---|---|
date | Sun, 17 Nov 2024 22:32:52 -0500 |
parent | 5492:b6af4d1ff8c1 |
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 }) |