summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2010-11-17 22:46:21 -0500
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2010-11-17 22:46:21 -0500
commit4c86da59007b140101112199071459d1bfdf6cf7 (patch)
tree7a8a7dc18e37a01a97c22e42ea6c35614b717e9e /indra/newview/llmeshrepository.cpp
parent222bda14b6bafb0a62b6d4fac7ec815dea65b4e6 (diff)
parent57e5841a9c642e8f1044daf33f44ede173ef48b9 (diff)
merge
Diffstat (limited to 'indra/newview/llmeshrepository.cpp')
-rwxr-xr-x[-rw-r--r--]indra/newview/llmeshrepository.cpp58
1 files changed, 32 insertions, 26 deletions
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index f00a8565f7..2f432ba0be 100644..100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -108,36 +108,42 @@ U32 get_volume_memory_size(const LLVolume* volume)
std::string scrub_host_name(std::string http_url)
{ //curl loves to abuse the DNS cache, so scrub host names out of urls where trivial to prevent DNS timeouts
+
+ if (http_url.empty())
+ {
+ return http_url;
+ }
+ // Not safe to scrub amazon paths
+ if (http_url.find("s3.amazonaws.com") != std::string::npos)
+ {
+ return http_url;
+ }
+ std::string::size_type begin_host = http_url.find("://")+3;
+ std::string host_string = http_url.substr(begin_host);
- if (!http_url.empty())
+ std::string::size_type end_host = host_string.find(":");
+ if (end_host == std::string::npos)
{
- std::string::size_type begin_host = http_url.find("://")+3;
- std::string host_string = http_url.substr(begin_host);
-
- std::string::size_type end_host = host_string.find(":");
- if (end_host == std::string::npos)
- {
- end_host = host_string.find("/");
- }
-
- host_string = host_string.substr(0, end_host);
+ end_host = host_string.find("/");
+ }
+
+ host_string = host_string.substr(0, end_host);
+
+ std::string::size_type idx = http_url.find(host_string);
+
+ hostent* ent = gethostbyname(host_string.c_str());
+
+ if (ent && ent->h_length > 0)
+ {
+ U8* addr = (U8*) ent->h_addr_list[0];
- std::string::size_type idx = http_url.find(host_string);
-
- hostent* ent = gethostbyname(host_string.c_str());
-
- if (ent && ent->h_length > 0)
+ std::string ip_string = llformat("%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
+ if (!ip_string.empty() && !host_string.empty() && idx != std::string::npos)
{
- U8* addr = (U8*) ent->h_addr_list[0];
-
- std::string ip_string = llformat("%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
- if (!ip_string.empty() && !host_string.empty() && idx != std::string::npos)
- {
- http_url.replace(idx, host_string.length(), ip_string);
- }
+ http_url.replace(idx, host_string.length(), ip_string);
}
}
-
+
return http_url;
}
@@ -1409,8 +1415,8 @@ LLMeshUploadThread::LLMeshUploadThread(LLMeshUploadThread::instance_list& data,
mUploadObjectAssetCapability = gAgent.getRegion()->getCapability("UploadObjectAsset");
mNewInventoryCapability = gAgent.getRegion()->getCapability("NewFileAgentInventoryVariablePrice");
- mUploadObjectAssetCapability = scrub_host_name(mUploadObjectAssetCapability);
- mNewInventoryCapability = scrub_host_name(mNewInventoryCapability);
+ //mUploadObjectAssetCapability = scrub_host_name(mUploadObjectAssetCapability);
+ //mNewInventoryCapability = scrub_host_name(mNewInventoryCapability);
mOrigin += gAgent.getAtAxis() * scale.magVec();
}