changeset 3171:f35b2b76df6d

mod_smacks_noerror: Add ability to silence errors if mod_offline is disabled This will also silence "message not delivered" errors if mod_offline is disabled and all clients are offline. This assumes working MAM for all clients (lready assumed by the rest of this module).
author tmolitor <thilo@eightysoft.de>
date Tue, 03 Jul 2018 01:03:48 +0200
parents c7773ea263d0
children 8d2fe3b93c15
files mod_smacks_noerror/README.markdown mod_smacks_noerror/mod_smacks_noerror.lua
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mod_smacks_noerror/README.markdown	Mon Jul 02 22:45:30 2018 +0200
+++ b/mod_smacks_noerror/README.markdown	Tue Jul 03 01:03:48 2018 +0200
@@ -18,6 +18,12 @@
 unacked message stanzas instead of sending error replies.
 Unacked iq stanzas are still answered with an error reply though.
 
+If you disable mod_offline, this module will also silence "message not delivered"
+error messages that will otherwise be generated when prosody would normally
+store offline message but can't do this because of disabled mod_offline.  
+If mod_offline is *not* disabled this module will not change offline storage
+behaviour at all.
+
 Warning
 =======
 
--- a/mod_smacks_noerror/mod_smacks_noerror.lua	Mon Jul 02 22:45:30 2018 +0200
+++ b/mod_smacks_noerror/mod_smacks_noerror.lua	Tue Jul 03 01:03:48 2018 +0200
@@ -2,6 +2,13 @@
 
 local mod_smacks = module:depends"smacks"
 
+-- ignore offline messages and don't return any error (the message will be already in MAM at this point)
+-- this is *only* triggered if mod_offline is *not* loaded and completely ignored otherwise
+module:hook("message/offline/handle", function(event)
+	event.origin.log("debug", "Ignoring offline message (mod_offline seems to be *not* loaded)...");
+	return true;
+end, -100);
+
 local function discard_unacked_messages(session)
 	local queue = session.outgoing_stanza_queue;
 	local replacement_queue = {};