mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-13 15:36:51 +01:00
BugFix: Exclusive control the close of TCPIP
This commit is contained in:
@@ -109,7 +109,10 @@ void BrokerRecvTask::run(void)
|
||||
rc = packet->recv(client->getNetwork());
|
||||
if ( rc > 0 )
|
||||
{
|
||||
log(client, packet);
|
||||
if ( log(client, packet) == -1 )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
/* post a BrokerRecvEvent */
|
||||
ev = new Event();
|
||||
@@ -161,10 +164,11 @@ void BrokerRecvTask::run(void)
|
||||
/**
|
||||
* write message content into stdout or Ringbuffer
|
||||
*/
|
||||
void BrokerRecvTask::log(Client* client, MQTTGWPacket* packet)
|
||||
int BrokerRecvTask::log(Client* client, MQTTGWPacket* packet)
|
||||
{
|
||||
char pbuf[SIZEOF_LOG_PACKET * 3];
|
||||
char msgId[6];
|
||||
int rc = 0;
|
||||
|
||||
switch (packet->getType())
|
||||
{
|
||||
@@ -189,7 +193,8 @@ void BrokerRecvTask::log(Client* client, MQTTGWPacket* packet)
|
||||
WRITELOG(FORMAT_GR_NL, currentDateTime(), packet->getName(), LEFTARROW, client->getClientId(), packet->print(pbuf));
|
||||
break;
|
||||
default:
|
||||
WRITELOG(FORMAT_GR_NL, currentDateTime(), "UNKOWN_TYPE", LEFTARROW, client->getClientId(), packet->print(pbuf));
|
||||
rc = -1;
|
||||
break;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
void run(void);
|
||||
|
||||
private:
|
||||
void log(Client*, MQTTGWPacket*);
|
||||
int log(Client*, MQTTGWPacket*);
|
||||
|
||||
Gateway* _gateway;
|
||||
LightIndicator* _light;
|
||||
|
||||
@@ -57,6 +57,7 @@ bool TCPStack::isValid()
|
||||
|
||||
void TCPStack::close()
|
||||
{
|
||||
_mutex.lock();
|
||||
if (_sockfd > 0)
|
||||
{
|
||||
::close(_sockfd);
|
||||
@@ -67,6 +68,7 @@ void TCPStack::close()
|
||||
_addrinfo = 0;
|
||||
}
|
||||
}
|
||||
_mutex.unlock();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ public:
|
||||
private:
|
||||
int _sockfd;
|
||||
addrinfo* _addrinfo;
|
||||
Mutex _mutex;
|
||||
};
|
||||
|
||||
/*========================================
|
||||
|
||||
Reference in New Issue
Block a user