From b68c07025d1dd077c73ec3b4052ea453612e3e9c Mon Sep 17 00:00:00 2001 From: Bohdan Horbeshko Date: Tue, 19 Sep 2023 07:57:52 -0400 Subject: Add MUC history limit (maxstanzas only) --- xmpp/handlers.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'xmpp/handlers.go') diff --git a/xmpp/handlers.go b/xmpp/handlers.go index bb2064a..ff8fb21 100644 --- a/xmpp/handlers.go +++ b/xmpp/handlers.go @@ -292,7 +292,7 @@ func HandlePresence(s xmpp.Sender, p stanza.Packet) { var mucExt stanza.MucPresence prs.Get(&mucExt) if mucExt.XMLName.Space != "" { - handleMUCPresence(s, prs) + handleMUCPresence(s, prs, mucExt) } } @@ -403,7 +403,7 @@ func handlePresence(s xmpp.Sender, p stanza.Presence) { } } -func handleMUCPresence(s xmpp.Sender, p stanza.Presence) { +func handleMUCPresence(s xmpp.Sender, p stanza.Presence, mucExt stanza.MucPresence) { log.WithFields(log.Fields{ "type": p.Type, "from": p.From, @@ -458,7 +458,11 @@ func handleMUCPresence(s xmpp.Sender, p stanza.Presence) { return } - session.JoinMUC(chatId, fromResource) + limit, ok := mucExt.History.MaxStanzas.Get() + if !ok { + limit = 20 + } + session.JoinMUC(chatId, fromResource, int32(limit)) } } } -- cgit v1.2.3