Code:
RemoveUser(): *pUser->m_pKey is '
File: User.cpp(LoginServer Project) Function:
Code:
BOOL CUserMng::RemoveUser( DPID dpid ) { CMclAutoLock Lock( m_AddRemoveLock ); #ifdef __STL_0402 C2User::iterator i = m_dpid2User.find( dpid ); if( i != m_dpid2User.end() ) { CUser* pUser = i->second; m_dpid2User.erase( i ); #else // __STL_0402 CUser* pUser; if( m_dpid2User.Lookup( dpid, pUser ) ) { m_dpid2User.RemoveKey( dpid ); #endif // __STL_0402 m_ac2User.erase( pUser->m_pKey ); if( !pUser->m_bIllegal ) { if( *pUser->m_pKey != '\0' ) { g_dpDBClient.SendLeave( pUser->m_pKey, pUser->m_idPlayer, timeGetTime() - pUser->m_dwTime ); } else WriteLog( "RemoveUser(): *pUser->m_pKey is '\0'" ); if( pUser->m_idPlayer > 0 ) g_dpCoreClient.SendLeave( pUser->m_idPlayer ); } else { WriteLog( "RemoveUser(): Illegal" ); } g_dpLoginSrvr.CacheOut( pUser->m_nIndexOfCache ); SAFE_DELETE( pUser ); m_uCount--; return TRUE; } WriteLog( "RemoveUser(): dpid not found" ); return FALSE; }
-- UPDATE
I have removed most of the snippets in the part where it's about logging in and I still cannot get through