Update: Add Client Address to CONNECT reject error message.

Update: comment out the generating CONNACK reply.

Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
This commit is contained in:
tomoaki
2016-10-18 10:06:02 +09:00
parent 9b7c25b28c
commit b87c8412f8
6 changed files with 34 additions and 13 deletions

View File

@@ -113,7 +113,8 @@ void ClientRecvTask::run()
log(client, packet, &data.clientID);
if (!client)
{
WRITELOG("%s Client was rejected. CONNECT message has been discarded.%s\n", ERRMSG_HEADER, ERRMSG_FOOTER);
char buf[128];
WRITELOG("%s Client(%s) was rejected. CONNECT message has been discarded.%s\n", ERRMSG_HEADER, _sensorNetwork->getSenderAddress()->sprint(buf), ERRMSG_FOOTER);
delete packet;
continue;
}

View File

@@ -169,17 +169,17 @@ void MQTTSNConnectionHandler::handleWillmsg(Client* client, MQTTSNPacket* packet
if ( !client->isWaitWillMsg() )
{
DEBUGLOG(" MQTTSNConnectionHandler::handleWillmsg WaitWillMsgFlg is off.\n");
if ( !client->isSecureNetwork() )
{
/* create CONNACK message */
MQTTSNPacket* connack = new MQTTSNPacket();
connack->setCONNACK(MQTTSN_RC_REJECTED_CONGESTED);
//if ( !client->isSecureNetwork() )
//{
// /* create CONNACK message */
// MQTTSNPacket* connack = new MQTTSNPacket();
// connack->setCONNACK(MQTTSN_RC_REJECTED_CONGESTED);
/* return to the client */
Event* evt = new Event();
evt->setClientSendEvent(client, connack);
_gateway->getClientSendQue()->post(evt);
}
// /* return to the client */
// Event* evt = new Event();
// evt->setClientSendEvent(client, connack);
// _gateway->getClientSendQue()->post(evt);
//}
return;
}

View File

@@ -101,6 +101,15 @@ SensorNetAddress& SensorNetAddress::operator =(SensorNetAddress& addr)
return *this;
}
char* SensorNetAddress::sprint(char* buf)
{
struct in_addr inaddr = { _IpAddr };
char* ip = inet_ntoa(inaddr);
sprintf( buf, "%s:", ip);
sprintf( buf + strlen(buf), "%d", ntohs(_portNo));
return buf;
}
/*===========================================
Class SensorNetwork
============================================*/

View File

@@ -45,7 +45,7 @@ public:
uint32_t getIpAddress(void);
bool isMatch(SensorNetAddress* addr);
SensorNetAddress& operator =(SensorNetAddress& addr);
char* sprint(char* buf);
private:
uint16_t _portNo;
uint32_t _IpAddr;

View File

@@ -78,6 +78,17 @@ SensorNetAddress& SensorNetAddress::operator =(SensorNetAddress& addr)
return *this;
}
char* SensorNetAddress::sprint(char* buf)
{
char* pbuf = buf;
for ( int i = 0; i < 8; i++ )
{
sprintf(pbuf, "%02X", _address64[i]);
pbuf += 2;
}
return buf;
}
/*===========================================
Class SensorNetwork
============================================*/

View File

@@ -74,7 +74,7 @@ public:
void setBroadcastAddress(void);
bool isMatch(SensorNetAddress* addr);
SensorNetAddress& operator =(SensorNetAddress& addr);
char* sprint(char*);
private:
uint8_t _address16[2];
uint8_t _address64[8];