BOOL P2PManager::RemovePeer(BYTE byIndex) { DelPeer(byIndex); return TRUE; }
int CMain::ReceiveCliHandler() { int nRet = 0; CSocket *cClient = NULL; CCliPeer *cPeer = NULL; CProtocol *cProto = NULL; cClient = m_cSock.Select(0, 1); if(cClient == NULL){ if(m_cSock.m_enError == CSocket::SOCK_TIMEOUT){ return CLA_OK; } else { CLA_LOG(CLA_ERR,false,"Socket select failed(err=%d, msg=%s, errno=%d(%s)\n", m_cSock.m_enError, m_cSock.m_strErrorMsg.c_str(), errno, strerror(errno)); return CLA_NOK; } } cPeer = FindPeerByFd(cClient->GetSocket()); if(cPeer == NULL){ CLA_LOG(CLA_ERR,false,"Accept peer(fd=%d)\n",cClient->GetSocket()); nRet = InsertPeer(cClient); if(nRet != CLA_OK){ CLA_LOG(CLA_ERR,false,"Peer insert failed(nRet=%d)\n",nRet); return CLA_NOK; } return CLA_OK; } nRet = cPeer->ReceiveProcess(); if(nRet == CLA_RSLT_PROCESS_END){ return CLA_OK; } else if(nRet == CLA_RSLT_PEER_CLOSED){ CLA_LOG(CLA_ERR,false,"Delete peer(fd=%d)\n",cPeer->GetSocketFd()); //m_cSock.DelPeer(cPeer->GetSocketFd()); /* close Peer */ DelPeer(cPeer); return CLA_OK; } else if(nRet != CLA_OK){ CLA_LOG(CLA_ERR,false,"Peer message receive failed(ret=%d)\n",nRet); return CLA_NOK; } cProto = cPeer->Receive(); if(cProto == NULL) { CLA_LOG(CLA_ERR,false,"Peer message not exist\n"); return CLA_OK; } nRet = RouteHandler(cPeer, cProto); if(nRet != CLA_OK){ CLA_LOG(CLA_ERR,false,"Message routing failed\n"); return CLA_NOK; } return CLA_OK; }