void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credential)
{
	// Set up auth request options.
//#define LL_MINIMIAL_REQUESTED_OPTIONS
	LLSD requested_options;
	// *Note: this is where gUserAuth used to be created.
	requested_options.append("inventory-root");
	requested_options.append("inventory-skeleton");
	//requested_options.append("inventory-meat");
	//requested_options.append("inventory-skel-targets");
#if (!defined LL_MINIMIAL_REQUESTED_OPTIONS)
	if(FALSE == gSavedSettings.getBOOL("NoInventoryLibrary"))
	{
		requested_options.append("inventory-lib-root");
		requested_options.append("inventory-lib-owner");
		requested_options.append("inventory-skel-lib");
	//	requested_options.append("inventory-meat-lib");
	}

	requested_options.append("initial-outfit");
	requested_options.append("gestures");
	requested_options.append("display_names");
	requested_options.append("event_categories");
	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");

	//send this info to login.cgi for stats gathering 
	//since viewerstats isn't reliable enough
	requested_options.append("advanced-mode");
#endif
	requested_options.append("max-agent-groups");	
	requested_options.append("map-server-url");	
	requested_options.append("voice-config");
	requested_options.append("tutorial_setting");
	requested_options.append("login-flags");
	requested_options.append("global-textures");
	if(gSavedSettings.getBOOL("ConnectAsGod"))
	{
		gSavedSettings.setBOOL("UseDebugMenus", TRUE);
		requested_options.append("god-connect");
	}

// <FS:AW various patches>
#ifdef OPENSIM // <FS:AW optional opensim support>
	//TODO: make this more flexible
	if (LLGridManager::getInstance()->isInOpenSim())
	{
		requested_options.append("currency");// <FS:AW opensim currency support>
		requested_options.append("max_groups");// <FS:AW  opensim max groups support>
		requested_options.append("search"); // <FS:AW  opensim search support>
		requested_options.append("destination_guide_url");// <FS:AW  opensim destinations and avatar picker>
		requested_options.append("avatar_picker_url");// <FS:AW  opensim destinations and avatar picker>
		//not in this patch
		//requested_options.append("profile-server-url");
	}
#endif // OPENSIM // <FS:AW optional opensim support>
// </FS:AW various patches>

	// (re)initialize the request params with creds.
	LLSD request_params = user_credential->getLoginParams();

	char hashed_unique_id_string[MD5HEX_STR_SIZE];		/* Flawfinder: ignore */
	LLMD5 hashed_unique_id;
	unsigned char unique_id[MAC_ADDRESS_BYTES];
	if(LLUUID::getNodeID(unique_id) == 0) {
		if(LLMachineID::getUniqueID(unique_id, sizeof(unique_id)) == 0) {
			llerrs << "Failed to get an id; cannot uniquely identify this machine." << llendl;
		}
	}
	hashed_unique_id.update(unique_id, MAC_ADDRESS_BYTES);
	hashed_unique_id.finalize();
	hashed_unique_id.hex_digest(hashed_unique_id_string);
	
	request_params["start"] = construct_start_string();
	request_params["skipoptional"] = mSkipOptionalUpdate;
	request_params["agree_to_tos"] = false; // Always false here. Set true in 
	request_params["read_critical"] = false; // handleTOSResponse
	request_params["last_exec_event"] = mLastExecEvent;
	request_params["mac"] = hashed_unique_id_string;
	request_params["version"] = LLVersionInfo::getChannelAndVersion(); // Includes channel name
	request_params["channel"] = LLVersionInfo::getChannel();
	request_params["id0"] = mSerialNumber;
	request_params["host_id"] = gSavedSettings.getString("HostID");
	request_params["extended_errors"] = true; // request message_id and message_args

	mRequestData.clear();
	mRequestData["method"] = "login_to_simulator";
	mRequestData["params"] = request_params;
	mRequestData["options"] = requested_options;

	mRequestData["cfg_srv_timeout"] = gSavedSettings.getF32("LoginSRVTimeout");
	mRequestData["cfg_srv_pump"] = gSavedSettings.getString("LoginSRVPump");
}
Example #2
0
void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credential)
{
	// Set up auth request options.
//#define LL_MINIMIAL_REQUESTED_OPTIONS
	LLSD requested_options;
	// *Note: this is where gUserAuth used to be created.
	requested_options.append("inventory-root");
	requested_options.append("inventory-skeleton");
	//requested_options.append("inventory-meat");
	//requested_options.append("inventory-skel-targets");
#if (!defined LL_MINIMIAL_REQUESTED_OPTIONS)
	if(FALSE == gSavedSettings.getBOOL("NoInventoryLibrary"))
	{
		requested_options.append("inventory-lib-root");
		requested_options.append("inventory-lib-owner");
		requested_options.append("inventory-skel-lib");
	//	requested_options.append("inventory-meat-lib");
	}

	requested_options.append("initial-outfit");
	requested_options.append("gestures");
	requested_options.append("event_categories");
	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");
#endif
	requested_options.append("map-server-url");	
	requested_options.append("voice-config");
	requested_options.append("tutorial_setting");
	requested_options.append("login-flags");
	requested_options.append("global-textures");
	if(gSavedSettings.getBOOL("ConnectAsGod"))
	{
		gSavedSettings.setBOOL("UseDebugMenus", TRUE);
		requested_options.append("god-connect");
	}
	
	// (re)initialize the request params with creds.
	LLSD request_params = user_credential->getLoginParams();

	char hashed_unique_id_string[MD5HEX_STR_SIZE];		/* Flawfinder: ignore */
	LLMD5 hashed_unique_id;
	unsigned char unique_id[MAC_ADDRESS_BYTES];
	if(LLUUID::getNodeID(unique_id) == 0) {
		if(LLMachineID::getUniqueID(unique_id, sizeof(unique_id)) == 0) {
			llerrs << "Failed to get an id; cannot uniquely identify this machine." << llendl;
		}
	}
	hashed_unique_id.update(unique_id, MAC_ADDRESS_BYTES);
	hashed_unique_id.finalize();
	hashed_unique_id.hex_digest(hashed_unique_id_string);
	
	request_params["start"] = construct_start_string();
	request_params["skipoptional"] = mSkipOptionalUpdate;
	request_params["agree_to_tos"] = false; // Always false here. Set true in 
	request_params["read_critical"] = false; // handleTOSResponse
	request_params["last_exec_event"] = mLastExecEvent;
	request_params["mac"] = hashed_unique_id_string;
	request_params["version"] = gCurrentVersion; // Includes channel name
	request_params["channel"] = gSavedSettings.getString("VersionChannelName");
	request_params["id0"] = mSerialNumber;

	mRequestData.clear();
	mRequestData["method"] = "login_to_simulator";
	mRequestData["params"] = request_params;
	mRequestData["options"] = requested_options;

	mRequestData["cfg_srv_timeout"] = gSavedSettings.getF32("LoginSRVTimeout");
	mRequestData["cfg_srv_pump"] = gSavedSettings.getString("LoginSRVPump");
}