diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 25 |
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); |