ClientNode* ClientList::createNode(bool secure, NWAddress64* addr64, uint16_t addr16, string* nodeId){
	if(_clientCnt < MAX_CLIENT_NODES && !_authorize){
		_mutex.lock();
		vector<ClientNode*>::iterator client = _clientVector->begin();
		while( client != _clientVector->end()){
			if(((*client)->getAddress64Ptr() == addr64) && ((*client)->getAddress16() == addr16)){
				return 0;
			}else{
				++client;
			}
		}
		ClientNode* node = new ClientNode(secure);
		node->setClientAddress64(addr64);
		node->setClientAddress16(addr16);
		if (nodeId){
			node->setNodeId(nodeId);
		}
		_clientVector->push_back(node);
		_clientCnt++;
		_mutex.unlock();
		return node;
	}else{
		return getClient(addr64, addr16);
	}
}
ClientNode* ClientList::createNode(NWAddress64* addr64, uint16_t addr16, string* nodeId){
	if(_clientCnt < MAX_CLIENT_NODES && !_authorize){
		_mutex.lock();
		vector<ClientNode*>::iterator client = _clientVector->begin();
		while( client != _clientVector->end())
		{
			//printf("\ngetAddress16(): %x\n",(*client)->getAddress16());
			//printf("\naddr16\n: %x", addr16); 
			if(  (*client)->getAddress16() == addr16 ){
				return 0;
			}else{
				++client;
			}
		}
		//printf("\r\nCreate client node");
		ClientNode* node = new ClientNode();
		node->setClientAddress64(addr64);
		node->setClientAddress16(addr16);
		if (nodeId){
			node->setNodeId(nodeId);
		}
		_clientVector->push_back(node);
		_clientCnt++;
		_mutex.unlock();
		return node;
	}else{
		return getClient(addr16);
	}
}