aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorDiva Canto2009-10-13 06:39:11 -0700
committerDiva Canto2009-10-13 06:39:11 -0700
commite3d5beebfb44aee8a9bd30526be8d4e65adf632b (patch)
tree3a0d43fd9538b381dab9f34e92fd4b8fed7484e2 /OpenSim
parentBetter handling of missing assets. (diff)
downloadopensim-SC-e3d5beebfb44aee8a9bd30526be8d4e65adf632b.zip
opensim-SC-e3d5beebfb44aee8a9bd30526be8d4e65adf632b.tar.gz
opensim-SC-e3d5beebfb44aee8a9bd30526be8d4e65adf632b.tar.bz2
opensim-SC-e3d5beebfb44aee8a9bd30526be8d4e65adf632b.tar.xz
Better handling of missing assets.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs25
1 files changed, 16 insertions, 9 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index ad92494..d64f655 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -10368,12 +10368,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
10368 10368
10369 UUID requestID = UUID.Zero; 10369 UUID requestID = UUID.Zero;
10370 byte source = 2; 10370 byte source = 2;
10371 if (transferRequest.TransferInfo.SourceType == 2) 10371 if ((transferRequest.TransferInfo.SourceType == 2) || (transferRequest.TransferInfo.SourceType == 2222))
10372 { 10372 {
10373 //direct asset request 10373 //direct asset request
10374 requestID = new UUID(transferRequest.TransferInfo.Params, 0); 10374 requestID = new UUID(transferRequest.TransferInfo.Params, 0);
10375 } 10375 }
10376 else if (transferRequest.TransferInfo.SourceType == 3) 10376 else if ((transferRequest.TransferInfo.SourceType == 3) || (transferRequest.TransferInfo.SourceType == 3333))
10377 { 10377 {
10378 //inventory asset request 10378 //inventory asset request
10379 requestID = new UUID(transferRequest.TransferInfo.Params, 80); 10379 requestID = new UUID(transferRequest.TransferInfo.Params, 80);
@@ -10383,14 +10383,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
10383 10383
10384 if (null == asset) 10384 if (null == asset)
10385 { 10385 {
10386 // Try the user's inventory, but only if it's different from the regions' 10386 if ((m_hyperAssets != null) && (transferRequest.TransferInfo.SourceType < 2000))
10387 string userAssets = m_hyperAssets.GetUserAssetServer(AgentId);
10388 if ((userAssets != string.Empty) && (userAssets != m_hyperAssets.GetSimAssetServer()))
10389 { 10387 {
10390 m_log.DebugFormat("[CLIENT]: asset {0} not found in local asset storage. Trying user's storage.", id); 10388 // Try the user's inventory, but only if it's different from the regions'
10391 transferRequest.TransferInfo.SourceType = 9999; // marker 10389 string userAssets = m_hyperAssets.GetUserAssetServer(AgentId);
10392 m_assetService.Get(userAssets + "/" + id, transferRequest, AssetReceived); 10390 if ((userAssets != string.Empty) && (userAssets != m_hyperAssets.GetSimAssetServer()))
10393 return; 10391 {
10392 m_log.DebugFormat("[CLIENT]: asset {0} not found in local asset storage. Trying user's storage.", id);
10393 if (transferRequest.TransferInfo.SourceType == 2)
10394 transferRequest.TransferInfo.SourceType = 2222; // marker
10395 else if (transferRequest.TransferInfo.SourceType == 3)
10396 transferRequest.TransferInfo.SourceType = 3333; // marker
10397
10398 m_assetService.Get(userAssets + "/" + id, transferRequest, AssetReceived);
10399 return;
10400 }
10394 } 10401 }
10395 10402
10396 //m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID); 10403 //m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID);