Software /
code /
prosody-modules
Comparison
mod_component_http/mod_component_http.lua @ 2958:13acce68a89c
mod_component_http: Fix to use module:send() instead of origin.send() (thanks Wiktor)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 27 Mar 2018 11:36:25 +0100 |
parent | 2952:e8462d6dbc6d |
child | 2995:032589c801d7 |
comparison
equal
deleted
inserted
replaced
2957:0f813e22e3fa | 2958:13acce68a89c |
---|---|
30 local error = http_error_map[code] or { "cancel", "service-unavailable" }; | 30 local error = http_error_map[code] or { "cancel", "service-unavailable" }; |
31 return st.error_reply(stanza, unpack(error, 1, 3)); | 31 return st.error_reply(stanza, unpack(error, 1, 3)); |
32 end | 32 end |
33 | 33 |
34 function handle_stanza(event) | 34 function handle_stanza(event) |
35 local origin, stanza = event.origin, event.stanza; | 35 local stanza = event.stanza; |
36 local request_body = json.encode({ | 36 local request_body = json.encode({ |
37 to = stanza.attr.to; | 37 to = stanza.attr.to; |
38 from = stanza.attr.from; | 38 from = stanza.attr.from; |
39 kind = stanza.name; | 39 kind = stanza.name; |
40 body = stanza.name == "message" and stanza:get_child_text("body") or nil; | 40 body = stanza.name == "message" and stanza:get_child_text("body") or nil; |
48 local response_data = json.decode(response_text); | 48 local response_data = json.decode(response_text); |
49 if response_data.stanza then | 49 if response_data.stanza then |
50 local reply_stanza = xml.parse(response_data.stanza); | 50 local reply_stanza = xml.parse(response_data.stanza); |
51 if reply_stanza then | 51 if reply_stanza then |
52 reply_stanza.attr.from, reply_stanza.attr.to = stanza.attr.to, stanza.attr.from; | 52 reply_stanza.attr.from, reply_stanza.attr.to = stanza.attr.to, stanza.attr.from; |
53 return origin.send(reply_stanza); | 53 module:send(reply_stanza); |
54 else | 54 else |
55 module:log("warn", "Unable to parse reply stanza"); | 55 module:log("warn", "Unable to parse reply stanza"); |
56 end | 56 end |
57 else | 57 else |
58 local stanza_kind = response_data.kind or "message"; | 58 local stanza_kind = response_data.kind or "message"; |
64 }); | 64 }); |
65 if stanza_kind == "message" and response_data.body then | 65 if stanza_kind == "message" and response_data.body then |
66 reply_stanza:tag("body"):text(tostring(response_data.body)):up(); | 66 reply_stanza:tag("body"):text(tostring(response_data.body)):up(); |
67 end | 67 end |
68 module:log("debug", "Sending %s", tostring(reply_stanza)); | 68 module:log("debug", "Sending %s", tostring(reply_stanza)); |
69 return origin.send(reply_stanza); | 69 module:send(reply_stanza); |
70 end | 70 end |
71 elseif code >= 200 and code <= 299 then | |
71 return; | 72 return; |
72 elseif code >= 200 and code <= 299 then | |
73 return true; | |
74 else | 73 else |
75 return origin.send(error_reply(stanza, code)); | 74 module:send(error_reply(stanza, code)); |
76 end | 75 end |
76 return true; | |
77 end); | 77 end); |
78 return true; | 78 return true; |
79 end | 79 end |
80 | 80 |
81 for stanza_kind in stanza_kinds do | 81 for stanza_kind in stanza_kinds do |