From 8685af480aa540b87b2a0f935c67b33706a80a45 Mon Sep 17 00:00:00 2001 From: lotodore Date: Sun, 15 Aug 2010 19:02:20 +0000 Subject: [PATCH] Continue client even if wrong beta revision. --- src/net/common/clientstate.cpp | 69 ++++++++++++++++------------------ 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/src/net/common/clientstate.cpp b/src/net/common/clientstate.cpp index c287f0f6..49b83475 100644 --- a/src/net/common/clientstate.cpp +++ b/src/net/common/clientstate.cpp @@ -993,47 +993,44 @@ ClientStateStartSession::InternalHandlePacket(boost::shared_ptr cl { 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). - if (netAnnounce->serverType == serverType_serverTypeInternetAuth) + // CASE 1: Authenticated login (username, challenge/response for password). + 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 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(); - 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 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; + if (client->GetAvatarManager().GetHashForAvatar(avatarFile, tmpMD5)) { - MD5Buf tmpMD5; - if (client->GetAvatarManager().GetHashForAvatar(avatarFile, tmpMD5)) - { - // TODO: use sha1. - noauthLogin->avatar = - OCTET_STRING_new_fromBuf( - &asn_DEF_OCTET_STRING, - (const char *)tmpMD5.GetData(), - MD5_DATA_SIZE); - } + // TODO: use sha1. + noauthLogin->avatar = + OCTET_STRING_new_fromBuf( + &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()); } } }