Software / code / prosody
Comparison
plugins/mod_admin_socket.lua @ 12888:b8504b71735d
Merge 0.12->trunk
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 16 Feb 2023 20:15:39 +0100 |
| parent | 12852:c35afa353f8f |
| parent | 12887:68df46926c26 |
| child | 12977:74b9e05af71e |
comparison
equal
deleted
inserted
replaced
| 12886:686c3cdd4775 | 12888:b8504b71735d |
|---|---|
| 17 end | 17 end |
| 18 | 18 |
| 19 local server = require "net.server"; | 19 local server = require "net.server"; |
| 20 | 20 |
| 21 local adminstream = require "util.adminstream"; | 21 local adminstream = require "util.adminstream"; |
| 22 local st = require "util.stanza"; | |
| 22 | 23 |
| 23 local socket_path = module:get_option_path("admin_socket", "prosody.sock", "data"); | 24 local socket_path = module:get_option_path("admin_socket", "prosody.sock", "data"); |
| 24 | 25 |
| 25 local sessions = module:shared("sessions"); | 26 local sessions = module:shared("sessions"); |
| 26 | 27 |
| 33 event_name = "admin/"..stanza.attr.xmlns..":"..stanza.name; | 34 event_name = "admin/"..stanza.attr.xmlns..":"..stanza.name; |
| 34 else | 35 else |
| 35 event_name = "admin/"..stanza.name; | 36 event_name = "admin/"..stanza.name; |
| 36 end | 37 end |
| 37 module:log("debug", "Firing %s", event_name); | 38 module:log("debug", "Firing %s", event_name); |
| 38 return module:fire_event(event_name, event_data); | 39 local ret = module:fire_event(event_name, event_data); |
| 40 if ret == nil then | |
| 41 session.send(st.stanza("repl-result", { type = "error" }):text("No module handled this query. Is mod_admin_shell enabled?")); | |
| 42 end | |
| 43 return ret; | |
| 39 end | 44 end |
| 40 | 45 |
| 41 module:hook("server-stopping", function () | 46 module:hook("server-stopping", function () |
| 42 for _, session in pairs(sessions) do | 47 for _, session in pairs(sessions) do |
| 43 session:close("system-shutdown"); | 48 session:close("system-shutdown"); |