Refactor: DISCONNECT prcedure

Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
This commit is contained in:
Tomoaki Yamaguchi
2018-03-08 11:50:11 +09:00
committed by tomoaki
3 changed files with 171 additions and 54 deletions

View File

@@ -217,25 +217,25 @@ void MQTTSNConnectionHandler::handleWillmsg(Client* client, MQTTSNPacket* packet
*/
void MQTTSNConnectionHandler::handleDisconnect(Client* client, MQTTSNPacket* packet)
{
Event* ev = new Event();
MQTTSNPacket* snMsg = new MQTTSNPacket();
snMsg->setDISCONNECT(0);
ev->setClientSendEvent(client, snMsg);
_gateway->getClientSendQue()->post(ev);
uint16_t duration = 0;
Event* ev = new Event();
uint16_t duration = 0;
if ( packet->getDISCONNECT(&duration) == 0 )
{
return;
}
if ( duration == 0 )
{
MQTTGWPacket* mqMsg = new MQTTGWPacket();
mqMsg->setHeader(DISCONNECT);
ev = new Event();
ev->setBrokerSendEvent(client, mqMsg);
_gateway->getBrokerSendQue()->post(ev);
}
if ( packet->getDISCONNECT(&duration) != 0 )
{
if ( duration == 0 )
{
MQTTGWPacket* mqMsg = new MQTTGWPacket();
mqMsg->setHeader(DISCONNECT);
ev = new Event();
ev->setBrokerSendEvent(client, mqMsg);
_gateway->getBrokerSendQue()->post(ev);
}
}
MQTTSNPacket* snMsg = new MQTTSNPacket();
snMsg->setDISCONNECT(0);
ev->setClientSendEvent(client, snMsg);
_gateway->getClientSendQue()->post(ev);
}
/*