Example #1
0
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;
}
Example #2
0
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;
}