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();
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);
}