mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-16 08:56:51 +01:00
@@ -103,7 +103,7 @@ void ClientRecvTask::run()
|
||||
else
|
||||
{
|
||||
/* new client */
|
||||
if (packet->getType() == MQTTSN_CONNECT)
|
||||
if (packet->getType() == MQTTSN_CONNECT)
|
||||
{
|
||||
MQTTSNPacket_connectData data;
|
||||
memset(&data, 0, sizeof(MQTTSNPacket_connectData));
|
||||
|
||||
@@ -74,7 +74,7 @@ void ClientSendTask::run()
|
||||
|
||||
if ( rc < 0 )
|
||||
{
|
||||
WRITELOG("%s ClientSendTask can't send a packet to the client.\n",
|
||||
WRITELOG("%s ClientSendTask can't send a packet to the client %s%s.\n",
|
||||
ERRMSG_HEADER, (client ? (const char*)client->getClientId() : UNKNOWNCL ), ERRMSG_FOOTER);
|
||||
}
|
||||
delete ev;
|
||||
|
||||
@@ -217,25 +217,26 @@ 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);
|
||||
Event* evt = new Event();
|
||||
evt->setClientSendEvent(client, snMsg);
|
||||
_gateway->getClientSendQue()->post(evt);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user