From 3f0724d1dc8e0e65d19c7c91c6da328e29cf27ee Mon Sep 17 00:00:00 2001 From: andrea Date: Fri, 27 Dec 2013 16:45:25 +0100 Subject: [PATCH] Changed SUBACK response to accept all requested QoS on SUBSCRIBE request --- .../moquette/messaging/spi/impl/ProtocolProcessor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessor.java b/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessor.java index e5cc1ecd..f67d6953 100644 --- a/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessor.java +++ b/broker/src/main/java/org/dna/mqtt/moquette/messaging/spi/impl/ProtocolProcessor.java @@ -457,10 +457,12 @@ class ProtocolProcessor implements EventHandler { SubAckMessage ackMessage = new SubAckMessage(); ackMessage.setMessageID(msg.getMessageID()); - //TODO by now it handles only QoS 0 messages - for (int i = 0; i < msg.subscriptions().size(); i++) { - ackMessage.addType(AbstractMessage.QOSType.MOST_ONE); + //reply with requested qos + for(SubscribeMessage.Couple req : msg.subscriptions()) { + AbstractMessage.QOSType qos = AbstractMessage.QOSType.values()[req.getQos()]; + ackMessage.addType(qos); } + LOG.debug("replying with SubAck to MSG ID {}", msg.getMessageID()); session.write(ackMessage); }