void RemoteClient::loginResponse(ProtocolResponse *response) { if (response->getResponseCode() == RespOk) { Response_Login *resp = qobject_cast<Response_Login *>(response); if (!resp) { disconnectFromServer(); return; } setStatus(StatusLoggedIn); emit userInfoChanged(resp->getUserInfo()); emit buddyListReceived(resp->getBuddyList()); emit ignoreListReceived(resp->getIgnoreList()); } else { emit serverError(response->getResponseCode()); setStatus(StatusDisconnecting); } }
void RemoteClient::loginResponse(const Response &response) { const Response_Login &resp = response.GetExtension(Response_Login::ext); if (response.response_code() == Response::RespOk) { setStatus(StatusLoggedIn); emit userInfoChanged(resp.user_info()); QList<ServerInfo_User> buddyList; for (int i = resp.buddy_list_size() - 1; i >= 0; --i) buddyList.append(resp.buddy_list(i)); emit buddyListReceived(buddyList); QList<ServerInfo_User> ignoreList; for (int i = resp.ignore_list_size() - 1; i >= 0; --i) ignoreList.append(resp.ignore_list(i)); emit ignoreListReceived(ignoreList); } else { emit loginError(response.response_code(), QString::fromStdString(resp.denied_reason_str()), resp.denied_end_time()); setStatus(StatusDisconnecting); } }