Merged in oz_linden/viewer-maint-7594

master
AndreyL ProductEngine 2017-08-27 22:33:41 +03:00
commit 5bcdbd976d
4 changed files with 29 additions and 112 deletions

View File

@ -733,7 +733,7 @@ LLAppViewer::LLAppViewer()
//
LLLoginInstance::instance().setUpdaterService(mUpdater.get());
LLLoginInstance::instance().setPlatformInfo(gPlatform, LLOSInfo::instance().getOSVersionString());
LLLoginInstance::instance().setPlatformInfo(gPlatform, LLOSInfo::instance().getOSVersionString(), LLOSInfo::instance().getOSStringSimple());
}
LLAppViewer::~LLAppViewer()

View File

@ -59,12 +59,18 @@
#include "llupdaterservice.h"
#include "llevents.h"
#include "llappviewer.h"
#include "llsdserialize.h"
#include <boost/scoped_ptr.hpp>
#include <sstream>
const S32 LOGIN_MAX_RETRIES = 3;
// this can be removed once it is defined by the build for all forks
#ifndef ADDRESS_SIZE
# define ADDRESS_SIZE 32
#endif
class LLLoginInstance::Disposable {
public:
virtual ~Disposable() {}
@ -495,10 +501,12 @@ LLLoginInstance::LLLoginInstance() :
}
void LLLoginInstance::setPlatformInfo(const std::string platform,
const std::string platform_version)
const std::string platform_version,
const std::string platform_name)
{
mPlatform = platform;
mPlatformVersion = platform_version;
mPlatformVersionName = platform_name;
}
LLLoginInstance::~LLLoginInstance()
@ -567,7 +575,6 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
requested_options.append("event_notifications");
requested_options.append("classified_categories");
requested_options.append("adult_compliant");
//requested_options.append("inventory-targets");
requested_options.append("buddy-list");
requested_options.append("newuser-config");
requested_options.append("ui-config");
@ -589,8 +596,7 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
requested_options.append("god-connect");
}
// (re)initialize the request params with creds.
LLSD request_params = user_credential->getLoginParams();
LLSD request_params;
unsigned char hashed_unique_id_string[MD5HEX_STR_SIZE];
if ( ! llHashedUniqueID(hashed_unique_id_string) )
@ -607,11 +613,26 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
request_params["version"] = LLVersionInfo::getVersion();
request_params["channel"] = LLVersionInfo::getChannel();
request_params["platform"] = mPlatform;
request_params["address_size"] = ADDRESS_SIZE;
request_params["platform_version"] = mPlatformVersion;
request_params["platform_string"] = mPlatformVersionName;
request_params["id0"] = mSerialNumber;
request_params["host_id"] = gSavedSettings.getString("HostID");
request_params["extended_errors"] = true; // request message_id and message_args
// log request_params _before_ adding the credentials
LL_DEBUGS("LLLogin") << "Login parameters: " << LLSDOStreamer<LLSDNotationFormatter>(request_params) << LL_ENDL;
// Copy the credentials into the request after logging the rest
LLSD credentials(user_credential->getLoginParams());
for (LLSD::map_const_iterator it = credentials.beginMap();
it != credentials.endMap();
it++
)
{
request_params[it->first] = it->second;
}
// Specify desired timeout/retry options
LLSD http_params;
http_params["timeout"] = gSavedSettings.getF32("LoginSRVTimeout");

View File

@ -67,7 +67,7 @@ public:
void setSerialNumber(const std::string& sn) { mSerialNumber = sn; }
void setLastExecEvent(int lee) { mLastExecEvent = lee; }
void setLastExecDuration(S32 duration) { mLastExecDuration = duration; }
void setPlatformInfo(const std::string platform, const std::string platform_version);
void setPlatformInfo(const std::string platform, const std::string platform_version, const std::string platform_name);
void setNotificationsInterface(LLNotificationsInterface* ni) { mNotifications = ni; }
LLNotificationsInterface& getNotificationsInterface() const { return *mNotifications; }
@ -105,6 +105,7 @@ private:
S32 mLastExecDuration;
std::string mPlatform;
std::string mPlatformVersion;
std::string mPlatformVersionName;
UpdaterLauncherCallback mUpdaterLauncher;
LLEventDispatcher mDispatcher;
LLUpdaterService * mUpdaterService;

View File

@ -362,7 +362,7 @@ namespace tut
accountCredential->setCredentialData(identifier, authenticator);
logininstance->setNotificationsInterface(&notifications);
logininstance->setPlatformInfo("win", "1.3.5");
logininstance->setPlatformInfo("win", "1.3.5", "Windows Bogus Version 100.6.6.6");
}
LLLoginInstance* logininstance;
@ -478,109 +478,4 @@ namespace tut
ensure_equals("Default for agree to tos", gLoginCreds["params"]["read_critical"].asBoolean(), false);
}
template<> template<>
void lllogininstance_object::test<3>()
{
set_test_name("Test Mandatory Update User Accepts");
// Part 1 - Mandatory Update, with User accepts response.
// Test connect with update needed.
logininstance->connect(agentCredential);
ensure_equals("Default connect uri", gLoginURI, VIEWERLOGIN_URI);
// Update needed failure response.
LLSD response;
response["state"] = "offline";
response["change"] = "fail.login";
response["progress"] = 0.0;
response["transfer_rate"] = 7;
response["data"]["reason"] = "update";
gTestPump.post(response);
ensure_equals("Notification added", notifications.addedCount(), 1);
notifications.sendYesResponse();
ensure("Disconnected", !(logininstance->authSuccess()));
}
template<> template<>
void lllogininstance_object::test<4>()
{
set_test_name("Test Mandatory Update User Decline");
// Test connect with update needed.
logininstance->connect(agentCredential);
ensure_equals("Default connect uri", gLoginURI, VIEWERLOGIN_URI);
// Update needed failure response.
LLSD response;
response["state"] = "offline";
response["change"] = "fail.login";
response["progress"] = 0.0;
response["transfer_rate"] = 7;
response["data"]["reason"] = "update";
gTestPump.post(response);
ensure_equals("Notification added", notifications.addedCount(), 1);
notifications.sendNoResponse();
ensure("Disconnected", !(logininstance->authSuccess()));
}
template<> template<>
void lllogininstance_object::test<6>()
{
set_test_name("Test Optional Update User Accept");
// Part 3 - Mandatory Update, with bogus response.
// Test connect with update needed.
logininstance->connect(agentCredential);
ensure_equals("Default connect uri", gLoginURI, VIEWERLOGIN_URI);
// Update needed failure response.
LLSD response;
response["state"] = "offline";
response["change"] = "fail.login";
response["progress"] = 0.0;
response["transfer_rate"] = 7;
response["data"]["reason"] = "optional";
gTestPump.post(response);
ensure_equals("Notification added", notifications.addedCount(), 1);
notifications.sendYesResponse();
ensure("Disconnected", !(logininstance->authSuccess()));
}
template<> template<>
void lllogininstance_object::test<7>()
{
set_test_name("Test Optional Update User Denies");
// Part 3 - Mandatory Update, with bogus response.
// Test connect with update needed.
logininstance->connect(agentCredential);
ensure_equals("Default connect uri", gLoginURI, VIEWERLOGIN_URI);
// Update needed failure response.
LLSD response;
response["state"] = "offline";
response["change"] = "fail.login";
response["progress"] = 0.0;
response["transfer_rate"] = 7;
response["data"]["reason"] = "optional";
gTestPump.post(response);
ensure_equals("Notification added", notifications.addedCount(), 1);
notifications.sendNoResponse();
// User skips, should be reconnecting.
ensure_equals("reconnect uri", gLoginURI, VIEWERLOGIN_URI);
ensure_equals("skipping optional update", gLoginCreds["params"]["skipoptional"].asBoolean(), true);
}
}