From cc4373c0cf2cfbe2d6bfa0289bfc19695fc97bd9 Mon Sep 17 00:00:00 2001 From: Dele Olajide Date: Mon, 27 Nov 2023 11:48:21 +0000 Subject: [PATCH] added support for roster auto-subscribe --- .../llama/openfire/LLaMAConnection.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/java/org/ifsoft/llama/openfire/LLaMAConnection.java b/src/java/org/ifsoft/llama/openfire/LLaMAConnection.java index 78c9d6c..2771bff 100644 --- a/src/java/org/ifsoft/llama/openfire/LLaMAConnection.java +++ b/src/java/org/ifsoft/llama/openfire/LLaMAConnection.java @@ -172,7 +172,30 @@ public void systemShutdown() { } @Override - public void deliver(Packet packet) throws UnauthorizedException { + public void deliver(Packet packet) throws UnauthorizedException { + // auto accept presence subscriptions + + if (packet instanceof Presence) { + Presence presence = (Presence) packet; + + if (presence.getType() == Presence.Type.subscribe) { + Presence presence1 = new Presence(); + presence1.setTo(packet.getFrom()); + presence1.setFrom(username + "@" + domain + "/" + remoteAddr); + presence1.setType(Presence.Type.subscribed); + XMPPServer.getInstance().getPresenceRouter().route(presence1); + + Presence presence2 = new Presence(); + presence2.setTo(packet.getFrom()); + presence2.setFrom(username + "@" + domain + "/" + remoteAddr); + presence2.setType(Presence.Type.subscribe); + XMPPServer.getInstance().getPresenceRouter().route(presence2); + } + } + else + + // auto accept MUC invitations + if (packet instanceof Message) { Message message = (Message) packet; @@ -220,7 +243,9 @@ public void deliver(Packet packet) throws UnauthorizedException { } } } - else if (packet instanceof IQ) { + else + + if (packet instanceof IQ) { IQ iq = (IQ) packet; Log.debug("Incoming IQ " + packet.getFrom() + " " + iq.getType()); }