mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-13 15:36:51 +01:00
@@ -534,8 +534,8 @@ char* MQTTGWPacket::print(char* pbuf)
|
||||
char* ptr = pbuf;
|
||||
char** pptr = &pbuf;
|
||||
int len = getPacketData(packetData);
|
||||
|
||||
for (int i = 0; i < len; i++)
|
||||
int size = len > SIZE_OF_LOG_PACKET ? SIZE_OF_LOG_PACKET : len;
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
sprintf(*pptr, " %02X", packetData[i]);
|
||||
*pptr += 3;
|
||||
|
||||
@@ -167,7 +167,7 @@ void PacketHandleTask::run()
|
||||
_mqttsnPublish->handleRegister(client, snPacket);
|
||||
break;
|
||||
case MQTTSN_REGACK:
|
||||
// NOP
|
||||
_mqttsnPublish->handleRegAck(client, snPacket);
|
||||
break;
|
||||
case MQTTSN_SUBSCRIBE:
|
||||
_mqttsnSubscribe->handleSubscribe(client, snPacket);
|
||||
|
||||
@@ -245,5 +245,28 @@ void MQTTSNPublishHandler::handleRegister(Client* client, MQTTSNPacket* packet)
|
||||
ev->setClientSendEvent(client, regAck);
|
||||
_gateway->getClientSendQue()->post(ev);
|
||||
}
|
||||
}
|
||||
|
||||
void MQTTSNPublishHandler::handleRegAck( Client* client, MQTTSNPacket* packet)
|
||||
{
|
||||
uint16_t id;
|
||||
uint16_t msgId;
|
||||
uint8_t rc;
|
||||
if ( client->isActive() || client->isAwake())
|
||||
{
|
||||
if ( packet->getREGACK(&id, &msgId, &rc) == 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
MQTTSNPacket* regAck = client->getWaitREGACKPacketList()->getPacket(msgId);
|
||||
if ( regAck != 0 )
|
||||
{
|
||||
client->getWaitREGACKPacketList()->erase(msgId);
|
||||
Event* ev = new Event();
|
||||
ev->setClientSendEvent(client, regAck);
|
||||
_gateway->getClientSendQue()->post(ev);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
void handlePuback(Client* client, MQTTSNPacket* packet);
|
||||
void handleAck(Client* client, MQTTSNPacket* packet, uint8_t packetType);
|
||||
void handleRegister(Client* client, MQTTSNPacket* packet);
|
||||
|
||||
void handleRegAck( Client* client, MQTTSNPacket* packet);
|
||||
private:
|
||||
Gateway* _gateway;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user