diff options
author | Kim Alvefur <zash@zash.se> | 2020-04-26 14:28:00 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2020-04-26 14:28:00 +0200 |
commit | e5327bcc31cb602df89d19f9c9c73aa90d4bec37 (patch) | |
tree | 27126cab5b5cfdddc8d6be14e8fc4abe7005d8a9 /plugins | |
parent | 0085d410b206f1899a2841064a798eac2161d764 (diff) | |
download | prosody-e5327bcc31cb602df89d19f9c9c73aa90d4bec37.tar.gz prosody-e5327bcc31cb602df89d19f9c9c73aa90d4bec37.zip |
mod_mam: Store only incoming errors
Unclear if clients normally ever send error messages, but there may be
locally generated bounces sent on behalf of local sessions.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_mam/mod_mam.lua | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/mod_mam/mod_mam.lua b/plugins/mod_mam/mod_mam.lua index d61d4883..72b7639a 100644 --- a/plugins/mod_mam/mod_mam.lua +++ b/plugins/mod_mam/mod_mam.lua @@ -263,7 +263,7 @@ local function strip_stanza_id(stanza, user) return stanza; end -local function should_store(stanza) --> boolean, reason: string +local function should_store(stanza, c2s) --> boolean, reason: string local st_type = stanza.attr.type or "normal"; -- FIXME pass direction of stanza and use that along with bare/full JID addressing -- for more accurate MUC / type=groupchat check @@ -272,7 +272,8 @@ local function should_store(stanza) --> boolean, reason: string -- Headline messages are ephemeral by definition return false, "headline"; end - if st_type == "error" then + if st_type == "error" and not c2s then + -- Store delivery failure notifications so you know if your own messages were not delivered return true, "bounce"; end if st_type == "groupchat" then @@ -334,7 +335,7 @@ local function message_handler(event, c2s) -- Filter out <stanza-id> that claim to be from us event.stanza = strip_stanza_id(stanza, store_user); - local should, why = should_store(stanza); + local should, why = should_store(stanza, c2s); if not should then log("debug", "Not archiving stanza: %s (%s)", stanza:top_tag(), why); return; |