BOOL CDCNeighbour::OnHello(LPSTR szNick) { // User logged-in // $Hello Nick| m_nState = nrsConnected; m_bNickValid = TRUE; m_sNick = UTF8Decode( szNick ); if ( CHostCacheHostPtr pServer = HostCache.DC.Find( &m_pHost.sin_addr ) ) { pServer->m_sUser = m_sNick; HostCache.DC.m_nCookie++; } // NMDC version if ( CDCPacket* pPacket = CDCPacket::New() ) { pPacket->Write( _P("$Version 1,0091|") ); Send( pPacket ); } SendUserInfo(); // Request nick list if ( CDCPacket* pPacket = CDCPacket::New() ) { pPacket->Write( _P("$GetNickList|") ); Send( pPacket ); } return TRUE; }
int CPacketProcess::ClientLogin(CUser * pUser) { char szNickname[MAX_NICKNAME_LEN]; char szPassword[MAX_NICKNAME_LEN]; if(!pUser->GetRecvPacket()->GetString(szNickname, MAX_NICKNAME_LEN)) { ServerLog()->Log("Login Message : Nickname get Error."); return PROCEDURE_ERROR; } if(!pUser->GetRecvPacket()->GetString(szPassword, MAX_NICKNAME_LEN)) { ServerLog()->Log("Login Message : Password get Error."); return PROCEDURE_ERROR; } pUser->SetIsAlive(true); ServerLog()->Log("User Login Nickname : %s", szNickname); if(!GetUserID(pUser, szNickname, szPassword)) return PROCEDURE_SENDNCLOSE; BroadcastNewUser(pUser); // User Info Setting pUser->SetUserNickname(szNickname); pUser->SetOnline(true); // Server Info Update SMemManager()->CurrentUserIncrease(); ServerLog()->Log("Add Current User, Count : %d", SMemManager()->GetCurrentUser()); ServerLog()->Log("(Login User) Nickname : %s, DataBase ID : %d", pUser->GetUserNickname(), pUser->GetDatabaseID()); SendUserInfo(pUser); return PROCEDURE_SUCCESS; }