summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2013-09-12 20:15:20 -0400
committerMonty Brandenberg <monty@lindenlab.com>2013-09-12 20:15:20 -0400
commit99c60b83f15a3c40ecf0e5f144cfc060b37c4cf8 (patch)
tree71fd7c3bb326d73255d5a63a3ad1d0d9cc9471e0
parent622eae65551df9a4ca6843a6a657777ff5e2140e (diff)
SH-4489 New debug/dev settings for control over new mesh behavior
While giving myself a full project code review, found a bug in the MeshUseGetMesh1 setting. Mostly defaulted to old configuration but used the GetMesh2 caps which would have been a huge DoS resource sink. Did some documentation maintenance as well while I was in there. More for the to-do list, etc.
-rwxr-xr-xindra/newview/app_settings/settings.xml4
-rwxr-xr-xindra/newview/llmeshrepository.cpp17
2 files changed, 13 insertions, 8 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 9948f9974a..60fc2d349d 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -9983,7 +9983,7 @@
<key>MeshUseHttpRetryAfter</key>
<map>
<key>Comment</key>
- <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status.</string>
+ <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status. Static.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -9994,7 +9994,7 @@
<key>MeshUseGetMesh1</key>
<map>
<key>Comment</key>
- <string>If TRUE, use the legacy GetMesh capability for mesh download requests.</string>
+ <string>If TRUE, use the legacy GetMesh capability for mesh download requests. Semi-dynamic (read at region crossings).</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 353e7e9a7f..c3d149db9a 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -282,10 +282,15 @@
// dialog. Get the structured information going into the log into a
// tree there.
// * Header parse failures come without much explanation. Elaborate.
-// * Need a final failure state for requests that are retried and just won't
-// complete. We can fail a LOD request, others we don't.
-
-
+// * Work queue for uploads? Any need for this or is the current scheme good
+// enough?
+// * Various temp buffers used in VFS I/O might be allocated once or even
+// statically. Look for some wins here.
+// * Move data structures holding mesh data used by main thread into main-
+// thread-only access so that no locking is needed. May require duplication
+// of some data so that worker thread has a minimal data set to guide
+// operations.
+//
// --------------------------------------------------------------------------
// Development/Debug/QA Tools
//
@@ -1052,7 +1057,7 @@ std::string LLMeshRepoThread::constructUrl(LLUUID mesh_id)
if (gAgent.getRegion())
{
- if (! gMeshRepo.mGetMesh2Capability.empty())
+ if (! gMeshRepo.mGetMesh2Capability.empty() && gMeshRepo.mGetMeshVersion > 1)
{
http_url = gMeshRepo.mGetMesh2Capability;
}
@@ -2181,7 +2186,7 @@ void LLMeshUploadThread::doWholeModelUpload()
LLCore::BufferArray * ba = new LLCore::BufferArray;
LLCore::BufferArrayStream bas(ba);
LLSDSerialize::toXML(body, bas);
- // LLSDSerialize::toXML(mModelData, bas); // <- This will generate a convenient upload error
+ // LLSDSerialize::toXML(mModelData, bas); // <- Enabling this will generate a convenient upload error
LLCore::HttpHandle handle = mHttpRequest->requestPost(mHttpPolicyClass,
mHttpPriority,
mWholeModelUploadURL,