From 9eb707763c5b867b30f805f40eb979bf04001afc Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Tue, 31 Aug 2021 11:38:09 +0200
Subject: mod_mam: Suppress offline message broadcast for MAM clients

MattJ on 09:34:24
> Zash: I think as a first step, offline messages should not be sent to
> clients that request MAM

https://chat.modernxmpp.org/log/modernxmpp/2021-08-31#2021-08-31-8518a542bd283686
---
 plugins/mod_mam/mod_mam.lua | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'plugins')

diff --git a/plugins/mod_mam/mod_mam.lua b/plugins/mod_mam/mod_mam.lua
index 50401aa1..f0f8c4ec 100644
--- a/plugins/mod_mam/mod_mam.lua
+++ b/plugins/mod_mam/mod_mam.lua
@@ -488,6 +488,13 @@ module:hook("message/offline/handle", function(event)
 	end
 end, -2);
 
+-- Don't broadcast offline messages to clients that have queried the archive.
+module:hook("message/offline/broadcast", function (event)
+	if event.origin.mam_requested then
+		return true;
+	end
+end);
+
 if cleanup_after ~= "never" then
 	local cleanup_storage = module:open_store("archive_cleanup");
 	local cleanup_map = module:open_store("archive_cleanup", "map");
-- 
cgit v1.2.3