CEDClient* CEDClients::Connect(DWORD nClientID, WORD nClientPort, IN_ADDR* pServerAddress, WORD nServerPort, GGUID* pGUID) { if ( pGUID != NULL ) { if ( CEDClient* pClient = GetByGUID( pGUID ) ) return pClient; } if ( IsFull() ) return NULL; CEDClient* pClient = NULL; if ( CEDPacket::IsLowID( nClientID ) ) { if ( pServerAddress == NULL || nServerPort == 0 ) return NULL; pClient = GetByID( nClientID, pServerAddress, pGUID ); } else { if ( Security.IsDenied( (IN_ADDR*)&nClientID ) ) return NULL; pClient = GetByID( nClientID, NULL, pGUID ); } if ( pClient == NULL ) { pClient = new CEDClient(); pClient->ConnectTo( nClientID, nClientPort, pServerAddress, nServerPort, pGUID ); } return pClient; }
CEDClient* CEDClients::Connect(DWORD nClientID, WORD nClientPort, IN_ADDR* pServerAddress, WORD nServerPort, const Hashes::Guid& oGUID) { CEDClient* pClient = NULL; { CQuickLock oLock( m_pSection ); if ( oGUID ) { pClient = GetByGUID( oGUID ); if ( pClient ) return pClient; } if ( IsFull() ) return NULL; if ( CEDPacket::IsLowID( nClientID ) ) { if ( pServerAddress == NULL || nServerPort == 0 ) return NULL; pClient = GetByID( nClientID, pServerAddress, oGUID ); } else { if ( Security.IsDenied( (IN_ADDR*)&nClientID ) ) return NULL; pClient = GetByID( nClientID, NULL, oGUID ); } } if ( pClient == NULL ) { pClient = new CEDClient(); pClient->ConnectTo( nClientID, nClientPort, pServerAddress, nServerPort, oGUID ); } return pClient; }