Continue client even if wrong beta revision.
This commit is contained in:
@@ -993,47 +993,44 @@ ClientStateStartSession::InternalHandlePacket(boost::shared_ptr<ClientThread> cl
|
|||||||
{
|
{
|
||||||
client->GetCallback().SignalNetClientNotification(NTF_NET_OUTDATED_BETA);
|
client->GetCallback().SignalNetClientNotification(NTF_NET_OUTDATED_BETA);
|
||||||
}
|
}
|
||||||
else
|
ClientContext &context = client->GetContext();
|
||||||
{
|
|
||||||
ClientContext &context = client->GetContext();
|
|
||||||
|
|
||||||
// CASE 1: Authenticated login (username, challenge/response for password).
|
// CASE 1: Authenticated login (username, challenge/response for password).
|
||||||
if (netAnnounce->serverType == serverType_serverTypeInternetAuth)
|
if (netAnnounce->serverType == serverType_serverTypeInternetAuth)
|
||||||
|
{
|
||||||
|
client->GetCallback().SignalNetClientLoginShow();
|
||||||
|
client->SetState(ClientStateWaitEnterLogin::Instance());
|
||||||
|
}
|
||||||
|
// CASE 2: Unauthenticated login (network game or dedicated server without auth backend).
|
||||||
|
else if (netAnnounce->serverType == serverType_serverTypeInternetNoAuth
|
||||||
|
|| netAnnounce->serverType == serverType_serverTypeLAN)
|
||||||
|
{
|
||||||
|
boost::shared_ptr<NetPacket> init(new NetPacket(NetPacket::Alloc));
|
||||||
|
init->GetMsg()->present = PokerTHMessage_PR_initMessage;
|
||||||
|
InitMessage_t *netInit = &init->GetMsg()->choice.initMessage;
|
||||||
|
netInit->requestedVersion.major = NET_VERSION_MAJOR;
|
||||||
|
netInit->requestedVersion.minor = NET_VERSION_MINOR;
|
||||||
|
netInit->login.present = login_PR_unauthenticatedLogin;
|
||||||
|
UnauthenticatedLogin_t *noauthLogin = &netInit->login.choice.unauthenticatedLogin;
|
||||||
|
OCTET_STRING_fromBuf(&noauthLogin->nickName,
|
||||||
|
context.GetPlayerName().c_str(),
|
||||||
|
context.GetPlayerName().length());
|
||||||
|
string avatarFile = client->GetQtToolsInterface().stringFromUtf8(context.GetAvatarFile());
|
||||||
|
if (!avatarFile.empty())
|
||||||
{
|
{
|
||||||
client->GetCallback().SignalNetClientLoginShow();
|
MD5Buf tmpMD5;
|
||||||
client->SetState(ClientStateWaitEnterLogin::Instance());
|
if (client->GetAvatarManager().GetHashForAvatar(avatarFile, tmpMD5))
|
||||||
}
|
|
||||||
// CASE 2: Unauthenticated login (network game or dedicated server without auth backend).
|
|
||||||
else if (netAnnounce->serverType == serverType_serverTypeInternetNoAuth
|
|
||||||
|| netAnnounce->serverType == serverType_serverTypeLAN)
|
|
||||||
{
|
|
||||||
boost::shared_ptr<NetPacket> init(new NetPacket(NetPacket::Alloc));
|
|
||||||
init->GetMsg()->present = PokerTHMessage_PR_initMessage;
|
|
||||||
InitMessage_t *netInit = &init->GetMsg()->choice.initMessage;
|
|
||||||
netInit->requestedVersion.major = NET_VERSION_MAJOR;
|
|
||||||
netInit->requestedVersion.minor = NET_VERSION_MINOR;
|
|
||||||
netInit->login.present = login_PR_unauthenticatedLogin;
|
|
||||||
UnauthenticatedLogin_t *noauthLogin = &netInit->login.choice.unauthenticatedLogin;
|
|
||||||
OCTET_STRING_fromBuf(&noauthLogin->nickName,
|
|
||||||
context.GetPlayerName().c_str(),
|
|
||||||
context.GetPlayerName().length());
|
|
||||||
string avatarFile = client->GetQtToolsInterface().stringFromUtf8(context.GetAvatarFile());
|
|
||||||
if (!avatarFile.empty())
|
|
||||||
{
|
{
|
||||||
MD5Buf tmpMD5;
|
// TODO: use sha1.
|
||||||
if (client->GetAvatarManager().GetHashForAvatar(avatarFile, tmpMD5))
|
noauthLogin->avatar =
|
||||||
{
|
OCTET_STRING_new_fromBuf(
|
||||||
// TODO: use sha1.
|
&asn_DEF_OCTET_STRING,
|
||||||
noauthLogin->avatar =
|
(const char *)tmpMD5.GetData(),
|
||||||
OCTET_STRING_new_fromBuf(
|
MD5_DATA_SIZE);
|
||||||
&asn_DEF_OCTET_STRING,
|
|
||||||
(const char *)tmpMD5.GetData(),
|
|
||||||
MD5_DATA_SIZE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
client->GetSender().Send(context.GetSessionData(), init);
|
|
||||||
client->SetState(ClientStateWaitSession::Instance());
|
|
||||||
}
|
}
|
||||||
|
client->GetSender().Send(context.GetSessionData(), init);
|
||||||
|
client->SetState(ClientStateWaitSession::Instance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user