annotate mod_server_status/mod_server_status.lua @ 4931:13070c6a7ce8

mod_http_muc_log: Fix exception on lack of trailing slash in room path A request to /room leads to the match call returning nil which in turn calls nodeprep(nil). In Prosody 0.11.x this does nothing and simply returns the nil, while in 0.12 it is an error. Now it redirects to the calendar view at /room/ - even for non-existant rooms. Discovered at a deployment with http_paths = { muc_log = "/" } and requests to /robots.txt and similar, which now result in a uses redirect before returning 404.
author Kim Alvefur <zash@zash.se>
date Fri, 22 Apr 2022 14:29:32 +0200
parents 7dbde05b48a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
1 -- (C) 2011, Marco Cirillo (LW.Org)
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
2 -- Display server stats in readable XML or JSON format
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
3
649
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
4 module:depends("http")
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
5
656
74bd7ebe5792 mod_server_status: fix code typo, get_option_array was used instead of get_option_string
Marco Cirillo <maranda@lightwitch.org>
parents: 649
diff changeset
6 local base_path = module:get_option_string("server_status_basepath", "/server-status/")
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
7 local show_hosts = module:get_option_array("server_status_show_hosts", nil)
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
8 local show_comps = module:get_option_array("server_status_show_comps", nil)
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
9 local json_output = module:get_option_boolean("server_status_json", false)
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
10
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
11 local json_encode = require "util.json".encode
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
12
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
13 -- code begin
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
14
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
15 if not prosody.stanza_counter and not show_hosts and not show_comps then
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
16 module:log ("error", "mod_server_status requires at least one of the following things:")
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
17 module:log ("error", "mod_stanza_counter loaded, or either server_status_show_hosts or server_status_show_comps configuration values set.")
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
18 module:log ("error", "check the module wiki at: http://code.google.com/p/prosody-modules/wiki/mod_server_status")
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
19 return false
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
20 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
21
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
22 local response_table = {}
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
23 response_table.header = '<?xml version="1.0" encoding="UTF-8" ?>'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
24 response_table.doc_header = '<document>'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
25 response_table.doc_closure = '</document>'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
26 response_table.stanzas = {
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
27 elem_header = ' <stanzas>', elem_closure = ' </stanzas>',
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
28 incoming = ' <incoming iq="%d" message="%d" presence="%d" />',
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
29 outgoing = ' <outgoing iq="%d" message="%d" presence="%d" />'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
30 }
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
31 response_table.hosts = {
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
32 elem_header = ' <hosts>', elem_closure = ' </hosts>',
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
33 status = ' <status name="%s" current="%s" />'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
34 }
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
35 response_table.comps = {
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
36 elem_header = ' <components>', elem_closure = ' </components>',
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
37 status = ' <status name="%s" current="%s" />'
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
38 }
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
39
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
40 local function forge_response_xml()
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
41 local hosts_s = {}; local components = {}; local stats = {}; local hosts_stats = {}; local comps_stats = {}
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
42
526
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
43 local function t_builder(t,r) for _, bstring in ipairs(t) do r[#r+1] = bstring end end
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
44
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
45 if show_hosts then t_builder(show_hosts, hosts_s) end
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
46 if show_comps then t_builder(show_comps, components) end
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
47
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
48 -- build stanza stats if there
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
49 if prosody.stanza_counter then
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
50 stats[1] = response_table.stanzas.elem_header
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
51 stats[2] = response_table.stanzas.incoming:format(prosody.stanza_counter.iq["incoming"],
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
52 prosody.stanza_counter.message["incoming"],
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
53 prosody.stanza_counter.presence["incoming"])
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
54 stats[3] = response_table.stanzas.outgoing:format(prosody.stanza_counter.iq["outgoing"],
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
55 prosody.stanza_counter.message["outgoing"],
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
56 prosody.stanza_counter.presence["outgoing"])
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
57 stats[4] = response_table.stanzas.elem_closure
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
58 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
59
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
60 -- build hosts stats if there
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
61 if hosts_s[1] then
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
62 hosts_stats[1] = response_table.hosts.elem_header
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
63 for _, name in ipairs(hosts_s) do
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
64 hosts_stats[#hosts_stats+1] = response_table.hosts.status:format(
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
65 name, hosts[name] and "online" or "offline")
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
66 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
67 hosts_stats[#hosts_stats+1] = response_table.hosts.elem_closure
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
68 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
69
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
70 -- build components stats if there
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
71 if components[1] then
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
72 comps_stats[1] = response_table.comps.elem_header
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
73 for _, name in ipairs(components) do
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
74 comps_stats[#comps_stats+1] = response_table.comps.status:format(
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
75 name, hosts[name] and hosts[name].modules.component and hosts[name].modules.component.connected and "online" or
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
76 hosts[name] and hosts[name].modules.component == nil and "online" or "offline")
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
77 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
78 comps_stats[#comps_stats+1] = response_table.comps.elem_closure
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
79 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
80
526
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
81 -- build xml document
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
82 local result = {}
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
83 result[#result+1] = response_table.header; result[#result+1] = response_table.doc_header -- start
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
84 t_builder(stats, result); t_builder(hosts_stats, result); t_builder(comps_stats, result)
0529658efd1e mod_xml_status: last code cleanup and optimization.
Marco Cirillo <maranda@lightwitch.org>
parents: 525
diff changeset
85 result[#result+1] = response_table.doc_closure -- end
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
86
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
87 return table.concat(result, "\n")
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
88 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
89
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
90 local function forge_response_json()
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
91 local result = {}
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
92
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
93 if prosody.stanza_counter then result.stanzas = {} ; result.stanzas = prosody.stanza_counter end
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
94 if show_hosts then
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
95 result.hosts = {}
544
f78a95aa23c4 mod_server_status: corrected mistake in the code.
Marco Cirillo <maranda@lightwitch.org>
parents: 543
diff changeset
96 for _,n in ipairs(show_hosts) do result.hosts[n] = hosts[n] and "online" or "offline" end
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
97 end
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
98 if show_comps then
542
32d9fd110cb1 mod_server_status: corrected error.
Marco Cirillo <maranda@lightwitch.org>
parents: 541
diff changeset
99 result.components = {}
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
100 for _,n in ipairs(show_comps) do
546
0afe88f9bdde mod_server_status: fixed trace case when an user, mistakenly or not, sets a component which doesn't exist into the plugin config. (thanks chris)
Marco Cirillo <maranda@lightwitch.org>
parents: 544
diff changeset
101 result.components[n] = hosts[n] and hosts[n].modules.component and hosts[n].modules.component.connected and "online" or
544
f78a95aa23c4 mod_server_status: corrected mistake in the code.
Marco Cirillo <maranda@lightwitch.org>
parents: 543
diff changeset
102 hosts[n] and hosts[n].modules.component == nil and "online" or "offline"
541
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
103 end
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
104 end
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
105
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
106 return json_encode(result)
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
107 end
947103177844 mod_server_status: renamed mod_xml_status to mod_server_status as the option to output the stats in JSON was added.
Marco Cirillo <maranda@lightwitch.org>
parents: 532
diff changeset
108
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
109 -- http handlers
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
110
649
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
111 local function request(event)
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
112 local response = event.response
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
113 if not json_output then
657
26e61a9afb5c mod_server_status: for sure xml isn't json, passing json mime and viceversa isn't appropriate at all. *no no*
Marco Cirillo <maranda@lightwitch.org>
parents: 656
diff changeset
114 response.headers.content_type = "text/xml"
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 658
diff changeset
115 response:send(forge_response_xml())
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
116 else
657
26e61a9afb5c mod_server_status: for sure xml isn't json, passing json mime and viceversa isn't appropriate at all. *no no*
Marco Cirillo <maranda@lightwitch.org>
parents: 656
diff changeset
117 response.headers.content_type = "application/json"
649
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
118 response:send(forge_response_json())
524
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
119 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
120 end
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
121
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
122 -- initialization.
ff3ea8735d61 mod_xml_status: initial commit. Expose server status in xml format to be used on external webapps.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff changeset
123
649
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
124 module:provides("http", {
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
125 default_path = base_path,
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
126 route = {
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
127 ["GET /"] = request
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
128 }
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
129 })
dfd7f1ed7782 mod_server_status: updated to current HTTP API.
Marco Cirillo <maranda@lightwitch.org>
parents: 609
diff changeset
130