From 599afa76e623000f993319c74cdabcb988ff4152 Mon Sep 17 00:00:00 2001 From: "selva.andre" Date: Sat, 1 Sep 2012 11:44:07 +0200 Subject: [PATCH] Added the logic to de-activate subscriptions on client close --- .../messaging/spi/impl/SubscriptionsStore.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java b/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java index 85be8916..de0ca1ce 100644 --- a/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java +++ b/parser/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/SubscriptionsStore.java @@ -134,6 +134,19 @@ public class SubscriptionsStore { child.removeClientSubscriptions(clientID); } } + + void disconnect(String clientID) { + for (Subscription s : m_subscriptions) { + if (s.clientId.equals(clientID)) { + s.setActive(false); + } + } + + //go deep + for (TreeNode child : m_children) { + child.disconnect(clientID); + } + } } protected static class Token { @@ -293,6 +306,10 @@ public class SubscriptionsStore { m_persistent.remove(clientID); } + public void disconnect(String clientID) { + subscriptions.disconnect(clientID); + } + public List matches(String topic) { List tokens = new ArrayList(); try {