bool OpenSimWorldSession::LoginToServer( const QString& first_name, const QString& last_name, const QString& password, const QString& address, const QString& port, const QString& start_location, ProtocolUtilities::ConnectionThreadState *thread_state ) { boost::shared_ptr<ProtocolModuleOpenSim> spOpenSim = networkOpensim_.lock(); if (spOpenSim.get()) { spOpenSim->SetAuthenticationType(ProtocolUtilities::AT_OpenSim); OpenSimLoginThread *loginWorker = spOpenSim->GetLoginWorker(); loginWorker->PrepareOpenSimLogin(first_name, last_name, password, address, port, start_location, thread_state); connect(loginWorker, SIGNAL(LoginStateChanged(int)), SLOT(HandleLoginStateChange(int))); // Start the thread. boost::thread(boost::ref(*loginWorker)); } else { ProtocolModuleOpenSim::LogInfo("Could not get ProtocolModuleOpenSim"); return false; } return true; }
bool OpenSimWorldSession::LoginToServer( const QString& first_name, const QString& last_name, const QString& password, const QString& address, const QString& port, const QString& start_location, ProtocolUtilities::ConnectionThreadState *thread_state) { boost::shared_ptr<ProtocolModuleOpenSim> spOpenSim = networkOpensim_.lock(); if (spOpenSim) { spOpenSim->SetAuthenticationType(ProtocolUtilities::AT_OpenSim); OpenSimLoginThread *loginWorker = spOpenSim->GetLoginWorker(); if (!loginWorker) return false; if (loginWorker->GetState() == ProtocolUtilities::Connection::STATE_CONNECTED) { ProtocolModuleOpenSim::LogInfo("OpenSimWorldSession::LoginToServer() - Already in connected state. Something went bad on diconnect before you got here!"); return false; } loginWorker->PrepareOpenSimLogin(first_name, last_name, password, address, port, start_location, thread_state); connect(loginWorker, SIGNAL(LoginStateChanged(int)), SLOT(HandleLoginStateChange(int)), Qt::UniqueConnection); // Start the thread. boost::thread(boost::ref(*loginWorker)); } else { ProtocolModuleOpenSim::LogInfo("Could not get ProtocolModuleOpenSim"); return false; } return true; }