어떻게든 돌아가도 믿음이 안가서 계속 다시 짜고 하는중... 제대로 짠건지..
CString clientIdentity;
GetClientIdentity(&clientIdentity, pSocket);
int index = m_connList.FindStringExact(-1, clientIdentity);
ASSERT(index != LB_ERR);
ClientInfo* pClientInfo = (ClientInfo*)m_connList.GetItemData(index);
ASSERT(pClientInfo != NULL);
try
{
DBSession session( &m_connList );
HRESULT hr;
// 로그인 정보 확인
QSelectUserInfoByUserId qSelectUserInfoByUserId;
_tcscpy_s(qSelectUserInfoByUserId.m_userId, 30, pPacket->id);
hr = qSelectUserInfoByUserId.Open( session );
ASSERT(hr == S_OK);
if (qSelectUserInfoByUserId.MoveNext() != S_OK)
throw \"아이디가 존재하지 않습니다.\";
if (_tcscmp(qSelectUserInfoByUserId.m_userPw, pPacket->pw) != 0)
throw \"비밀번호를 확인하여 주십시오.\";
if (qSelectUserInfoByUserId.m_login == TRUE)
throw \"이미 로그인 중입니다.\";
pClientInfo->SetId(qSelectUserInfoByUserId.m_userId);
m_connList.DeleteItem(index);
m_connList.AddString(pClientInfo->GetClientIdentity());
m_connList.SetItemData((DWORD)pClientInfo);
AckLogin ackLogin;
ackLogin.result = TRUE;
pSocket->Send( ackLogin );
SendMessageMyLog(\"%s 로그인\", pClientInfo->GetClientIdentity());
}
catch (const char* errMsg)
{
// 로그인 실패 응답
AckLogin ackLogin;
ackLogin.result = FALSE;
_tcscpy_s(ackLogin.msg, 1023, errMsg);
pSocket->Send( ackLogin );
SendMessageMyLog(\"%s(%s) 로그인 실패\", clientIdentity, pPacket->id);
}
댓글 0