Changed SUBACK response to accept all requested QoS on SUBSCRIBE request

This commit is contained in:
andrea
2013-12-27 16:45:25 +01:00
parent a6f94cb0a3
commit 3f0724d1dc
@@ -457,10 +457,12 @@ class ProtocolProcessor implements EventHandler<ValueEvent> {
SubAckMessage ackMessage = new SubAckMessage(); SubAckMessage ackMessage = new SubAckMessage();
ackMessage.setMessageID(msg.getMessageID()); ackMessage.setMessageID(msg.getMessageID());
//TODO by now it handles only QoS 0 messages //reply with requested qos
for (int i = 0; i < msg.subscriptions().size(); i++) { for(SubscribeMessage.Couple req : msg.subscriptions()) {
ackMessage.addType(AbstractMessage.QOSType.MOST_ONE); AbstractMessage.QOSType qos = AbstractMessage.QOSType.values()[req.getQos()];
ackMessage.addType(qos);
} }
LOG.debug("replying with SubAck to MSG ID {}", msg.getMessageID()); LOG.debug("replying with SubAck to MSG ID {}", msg.getMessageID());
session.write(ackMessage); session.write(ackMessage);
} }