Mercurial > prosody-modules
comparison mod_rest/mod_rest.lua @ 3798:9b4fd2553365
mod_rest: Handle receipt requests on message stanzas
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 30 Dec 2019 05:18:52 +0100 |
parents | ed5d7586a61e |
children | a1f1f703d604 |
comparison
equal
deleted
inserted
replaced
3797:ed5d7586a61e | 3798:9b4fd2553365 |
---|---|
118 }; | 118 }; |
119 | 119 |
120 local function handle_stanza(event) | 120 local function handle_stanza(event) |
121 local stanza, origin = event.stanza, event.origin; | 121 local stanza, origin = event.stanza, event.origin; |
122 local reply_needed = stanza.name == "iq"; | 122 local reply_needed = stanza.name == "iq"; |
123 local receipt; | |
124 | |
125 if stanza.name == "message" and stanza.attr.id and stanza:get_child("urn:xmpp:receipts", "request") then | |
126 reply_needed = true; | |
127 receipt = st.stanza("received", { xmlns = "urn:xmpp:receipts", id = stanza.id }); | |
128 end | |
123 | 129 |
124 http.request(rest_url, { | 130 http.request(rest_url, { |
125 body = tostring(stanza), | 131 body = tostring(stanza), |
126 headers = { | 132 headers = { |
127 ["Content-Type"] = "application/xmpp+xml", | 133 ["Content-Type"] = "application/xmpp+xml", |
177 else | 183 else |
178 reply = st.error_reply(stanza, "cancel", "undefined-condition", reply_text); | 184 reply = st.error_reply(stanza, "cancel", "undefined-condition", reply_text); |
179 end | 185 end |
180 end | 186 end |
181 | 187 |
188 if receipt then | |
189 reply:add_direct_child(receipt); | |
190 end | |
191 | |
182 origin.send(reply); | 192 origin.send(reply); |
183 end); | 193 end); |
184 | 194 |
185 return true; | 195 return true; |
186 end | 196 end |