Software /
code /
prosody-modules
Annotate
mod_http_debug/mod_http_debug.lua @ 5490:91564b57e595
mod_http_debug: Handle more HTTP methods
Often you might want to see what POST data was sent, or such.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 26 May 2023 15:36:04 +0200 |
parent | 5333:10fcfa7e62a1 |
child | 5491:7842502c1157 |
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; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
6 return { |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
7 status_code = 200; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
8 headers = { content_type = "application/json" }; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
9 host = module.host; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
10 body = json.encode { |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
11 body = request.body; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
12 headers = request.headers; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
13 httpversion = request.httpversion; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
14 id = request.id; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
15 ip = request.ip; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
16 method = request.method; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
17 path = request.path; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
18 secure = request.secure; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
19 url = request.url; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
20 }; |
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 end |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
23 |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
24 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
|
25 local route = {}; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
26 for method in methods do |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
27 route[method] = handle_request; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
28 end |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
29 |
5333
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 module:provides("http", { |
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
31 route = route; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
32 }) |