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
parents e8462d6dbc6d
children 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