summaryrefslogtreecommitdiff
path: root/indra/newview/llstartup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llstartup.cpp')
-rwxr-xr-xindra/newview/llstartup.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 6622fa7d9c..d2050aec3e 100755
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -242,7 +242,8 @@ static LLVector3 gAgentStartLookAt(1.0f, 0.f, 0.f);
static std::string gAgentStartLocation = "safe";
static bool mLoginStatePastUI = false;
-const S32 DEFAULT_MAX_AGENT_GROUPS = 25;
+const S32 DEFAULT_MAX_AGENT_GROUPS = 42;
+const S32 ALLOWED_MAX_AGENT_GROUPS = 500;
boost::scoped_ptr<LLEventPump> LLStartUp::sStateWatcher(new LLEventStream("StartupState"));
boost::scoped_ptr<LLStartupListener> LLStartUp::sListener(new LLStartupListener());
@@ -3509,15 +3510,24 @@ bool process_login_success_response()
LLViewerMedia::openIDSetup(openid_url, openid_token);
}
- if(response.has("max-agent-groups")) {
- std::string max_agent_groups(response["max-agent-groups"]);
- gMaxAgentGroups = atoi(max_agent_groups.c_str());
- LL_INFOS("LLStartup") << "gMaxAgentGroups read from login.cgi: "
- << gMaxAgentGroups << LL_ENDL;
+ gMaxAgentGroups = DEFAULT_MAX_AGENT_GROUPS;
+ if(response.has("max-agent-groups"))
+ {
+ S32 agent_groups = atoi(std::string(response["max-agent-groups"]).c_str());
+ if (agent_groups > 0 && agent_groups <= ALLOWED_MAX_AGENT_GROUPS)
+ {
+ gMaxAgentGroups = agent_groups;
+ LL_INFOS("LLStartup") << "gMaxAgentGroups read from login.cgi: "
+ << gMaxAgentGroups << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("LLStartup") << "Invalid value received, using defaults for gMaxAgentGroups: "
+ << gMaxAgentGroups << LL_ENDL;
+ }
}
else {
- gMaxAgentGroups = DEFAULT_MAX_AGENT_GROUPS;
- LL_INFOS("LLStartup") << "using gMaxAgentGroups default: "
+ LL_INFOS("LLStartup") << "Missing max-agent-groups, using default value for gMaxAgentGroups: "
<< gMaxAgentGroups << LL_ENDL;
}