Mercurial > prosody-modules
annotate mod_deny_omemo/mod_deny_omemo.lua @ 4942:e7b9bc629ecc
mod_rest: Add special handling to catch MAM results from remote hosts
Makes MAM queries to remote hosts works.
As the comment says, MAM results from users' local archives or local
MUCs are returned via origin.send() which is provided in the event and
thus already worked. Results from remote hosts go via normal stanza
routing and events, which need this extra handling to catch.
This pattern of iq-set, message+, iq-result is generally limited to MAM.
Closest similar thing might be MUC join, but to really handle that you
would need the webhook callback mechanism.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 16 May 2022 19:47:09 +0200 |
parents | 2ad35f08bd57 |
children |
rev | line source |
---|---|
3053
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local st = require "util.stanza"; |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local omemo_namespace_prefix = "eu.siacs.conversations.axolotl." |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 module:hook("iq/bare/http://jabber.org/protocol/pubsub:pubsub", function (event) |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 local origin, stanza = event.origin, event.stanza; |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 local node = stanza.tags[1].tags[1].attr.node; |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 if node and node:sub(1, #omemo_namespace_prefix) == omemo_namespace_prefix then |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 origin.send(st.error_reply(stanza, "cancel", "item-not-found", "OMEMO is disabled")); |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 return true; |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
2ad35f08bd57
mod_deny_omemo: Prevents publishing and retreival of OMEMO PEP nodes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end, 10); |