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* ptr = pbuf;
|
||||||
char** pptr = &pbuf;
|
char** pptr = &pbuf;
|
||||||
int len = getPacketData(packetData);
|
int len = getPacketData(packetData);
|
||||||
|
int size = len > SIZE_OF_LOG_PACKET ? SIZE_OF_LOG_PACKET : len;
|
||||||
for (int i = 0; i < len; i++)
|
for (int i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
sprintf(*pptr, " %02X", packetData[i]);
|
sprintf(*pptr, " %02X", packetData[i]);
|
||||||
*pptr += 3;
|
*pptr += 3;
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ void PacketHandleTask::run()
|
|||||||
_mqttsnPublish->handleRegister(client, snPacket);
|
_mqttsnPublish->handleRegister(client, snPacket);
|
||||||
break;
|
break;
|
||||||
case MQTTSN_REGACK:
|
case MQTTSN_REGACK:
|
||||||
// NOP
|
_mqttsnPublish->handleRegAck(client, snPacket);
|
||||||
break;
|
break;
|
||||||
case MQTTSN_SUBSCRIBE:
|
case MQTTSN_SUBSCRIBE:
|
||||||
_mqttsnSubscribe->handleSubscribe(client, snPacket);
|
_mqttsnSubscribe->handleSubscribe(client, snPacket);
|
||||||
|
|||||||
@@ -245,5 +245,28 @@ void MQTTSNPublishHandler::handleRegister(Client* client, MQTTSNPacket* packet)
|
|||||||
ev->setClientSendEvent(client, regAck);
|
ev->setClientSendEvent(client, regAck);
|
||||||
_gateway->getClientSendQue()->post(ev);
|
_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 handlePuback(Client* client, MQTTSNPacket* packet);
|
||||||
void handleAck(Client* client, MQTTSNPacket* packet, uint8_t packetType);
|
void handleAck(Client* client, MQTTSNPacket* packet, uint8_t packetType);
|
||||||
void handleRegister(Client* client, MQTTSNPacket* packet);
|
void handleRegister(Client* client, MQTTSNPacket* packet);
|
||||||
|
void handleRegAck( Client* client, MQTTSNPacket* packet);
|
||||||
private:
|
private:
|
||||||
Gateway* _gateway;
|
Gateway* _gateway;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user