Mercurial > prosody-modules
diff mod_rest/mod_rest.lua @ 3867:839224be5299
mod_rest: Skip attempting parse empty response
Avoids logging a useless warning
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 26 Jan 2020 04:07:07 +0100 |
parents | c0df50ce96f0 |
children | 513a8a7fab41 |
line wrap: on
line diff
--- a/mod_rest/mod_rest.lua Sat Jan 25 20:22:12 2020 +0100 +++ b/mod_rest/mod_rest.lua Sun Jan 26 04:07:07 2020 +0100 @@ -229,38 +229,41 @@ else module:set_status("info", "Connected"); end - if (code == 202 or code == 204) and not reply_needed then - -- Delivered, no reply - return; - end local reply; - local parsed, err = parse(response.headers["content-type"], body); - if not parsed then - module:log("warn", "Failed parsing data from REST callback: %s, %q", err, body); - elseif parsed.name ~= stanza.name then - module:log("warn", "REST callback responded with the wrong stanza type, got %s but expected %s", parsed.name, stanza.name); + if code == 202 or code == 204 then + if not reply_needed then + -- Delivered, no reply + return; + end else - parsed.attr = { - from = stanza.attr.to, - to = stanza.attr.from, - id = parsed.attr.id or id.medium(); - type = parsed.attr.type, - ["xml:lang"] = parsed.attr["xml:lang"], - }; - if parsed.name == "message" and parsed.attr.type == "groupchat" then - parsed.attr.to = jid.bare(stanza.attr.from); + local parsed, err = parse(response.headers["content-type"], body); + if not parsed then + module:log("warn", "Failed parsing data from REST callback: %s, %q", err, body); + elseif parsed.name ~= stanza.name then + module:log("warn", "REST callback responded with the wrong stanza type, got %s but expected %s", parsed.name, stanza.name); + else + parsed.attr = { + from = stanza.attr.to, + to = stanza.attr.from, + id = parsed.attr.id or id.medium(); + type = parsed.attr.type, + ["xml:lang"] = parsed.attr["xml:lang"], + }; + if parsed.name == "message" and parsed.attr.type == "groupchat" then + parsed.attr.to = jid.bare(stanza.attr.from); + end + if not stanza.attr.type and parsed:get_child("error") then + parsed.attr.type = "error"; + end + if parsed.attr.type == "error" then + parsed.attr.id = stanza.attr.id; + elseif parsed.name == "iq" then + parsed.attr.id = stanza.attr.id; + parsed.attr.type = "result"; + end + reply = parsed; end - if not stanza.attr.type and parsed:get_child("error") then - parsed.attr.type = "error"; - end - if parsed.attr.type == "error" then - parsed.attr.id = stanza.attr.id; - elseif parsed.name == "iq" then - parsed.attr.id = stanza.attr.id; - parsed.attr.type = "result"; - end - reply = parsed; end if not reply then