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






