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); log(client, packet, &data.clientID);
if (!client) 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; delete packet;
continue; continue;
} }

View File

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

View File

@@ -101,6 +101,15 @@ SensorNetAddress& SensorNetAddress::operator =(SensorNetAddress& addr)
return *this; 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 Class SensorNetwork
============================================*/ ============================================*/

View File

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

View File

@@ -78,6 +78,17 @@ SensorNetAddress& SensorNetAddress::operator =(SensorNetAddress& addr)
return *this; 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 Class SensorNetwork
============================================*/ ============================================*/

View File

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