Better handling of missing assets.

prioritization
Diva Canto 2009-10-13 06:39:11 -07:00
parent f3d2192cd4
commit e3d5beebfb
1 changed files with 16 additions and 9 deletions

View File

@ -10368,12 +10368,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UUID requestID = UUID.Zero; UUID requestID = UUID.Zero;
byte source = 2; byte source = 2;
if (transferRequest.TransferInfo.SourceType == 2) if ((transferRequest.TransferInfo.SourceType == 2) || (transferRequest.TransferInfo.SourceType == 2222))
{ {
//direct asset request //direct asset request
requestID = new UUID(transferRequest.TransferInfo.Params, 0); requestID = new UUID(transferRequest.TransferInfo.Params, 0);
} }
else if (transferRequest.TransferInfo.SourceType == 3) else if ((transferRequest.TransferInfo.SourceType == 3) || (transferRequest.TransferInfo.SourceType == 3333))
{ {
//inventory asset request //inventory asset request
requestID = new UUID(transferRequest.TransferInfo.Params, 80); requestID = new UUID(transferRequest.TransferInfo.Params, 80);
@ -10382,16 +10382,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
if (null == asset) if (null == asset)
{
if ((m_hyperAssets != null) && (transferRequest.TransferInfo.SourceType < 2000))
{ {
// Try the user's inventory, but only if it's different from the regions' // Try the user's inventory, but only if it's different from the regions'
string userAssets = m_hyperAssets.GetUserAssetServer(AgentId); string userAssets = m_hyperAssets.GetUserAssetServer(AgentId);
if ((userAssets != string.Empty) && (userAssets != m_hyperAssets.GetSimAssetServer())) if ((userAssets != string.Empty) && (userAssets != m_hyperAssets.GetSimAssetServer()))
{ {
m_log.DebugFormat("[CLIENT]: asset {0} not found in local asset storage. Trying user's storage.", id); m_log.DebugFormat("[CLIENT]: asset {0} not found in local asset storage. Trying user's storage.", id);
transferRequest.TransferInfo.SourceType = 9999; // marker if (transferRequest.TransferInfo.SourceType == 2)
transferRequest.TransferInfo.SourceType = 2222; // marker
else if (transferRequest.TransferInfo.SourceType == 3)
transferRequest.TransferInfo.SourceType = 3333; // marker
m_assetService.Get(userAssets + "/" + id, transferRequest, AssetReceived); m_assetService.Get(userAssets + "/" + id, transferRequest, AssetReceived);
return; return;
} }
}
//m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID); //m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID);