Software /
code /
prosody-modules
Comparison
mod_rest/mod_rest.lua @ 5086:dec4b2e31d1c
mod_rest: Do not allow replies to <iq type=result> from webhooks
Replying to a result stanza could cause loops, just as replying to an
error.
No stanza.name check here but it should be fine since no other kinds of
stanzas have type=result, and the boolean logic would most definitely be
wrong on the first attempt.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 27 Nov 2022 00:10:38 +0100 |
parent | 5001:cb19cb1c03d6 |
child | 5087:438fbebf74ac |
comparison
equal
deleted
inserted
replaced
5085:e384b91d0aa7 | 5086:dec4b2e31d1c |
---|---|
498 | 498 |
499 local code2err = require "net.http.errors".registry; | 499 local code2err = require "net.http.errors".registry; |
500 | 500 |
501 local function handle_stanza(event) | 501 local function handle_stanza(event) |
502 local stanza, origin = event.stanza, event.origin; | 502 local stanza, origin = event.stanza, event.origin; |
503 local reply_allowed = stanza.attr.type ~= "error"; | 503 local reply_allowed = stanza.attr.type ~= "error" and stanza.attr.type ~= "result"; |
504 local reply_needed = reply_allowed and stanza.name == "iq"; | 504 local reply_needed = reply_allowed and stanza.name == "iq"; |
505 local receipt; | 505 local receipt; |
506 | 506 |
507 if reply_allowed and stanza.name == "message" and stanza.attr.id and stanza:get_child("urn:xmpp:receipts", "request") then | 507 if reply_allowed and stanza.name == "message" and stanza.attr.id and stanza:get_child("urn:xmpp:receipts", "request") then |
508 reply_needed = true; | 508 reply_needed = true; |