aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-06-06 20:35:00 +0200
committerMelanie2012-06-14 00:58:17 +0100
commitcba8b4f8b8c2566426216e395561cdf4ae49c72e (patch)
tree8314cd386bd018c1fc92c279dcd464e091262d7d /OpenSim
parentAdd SOG.HasPrivateAttachmentPoint to tell if a SOG has a private attachment p... (diff)
downloadopensim-SC-cba8b4f8b8c2566426216e395561cdf4ae49c72e.zip
opensim-SC-cba8b4f8b8c2566426216e395561cdf4ae49c72e.tar.gz
opensim-SC-cba8b4f8b8c2566426216e395561cdf4ae49c72e.tar.bz2
opensim-SC-cba8b4f8b8c2566426216e395561cdf4ae49c72e.tar.xz
Fix not sending TransferInfo when an asset is not found. This clogs
up the sound pipeline in the viewer.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs33
1 files changed, 29 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 85d83f8..8f55208 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2719,6 +2719,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2719 } 2719 }
2720 } 2720 }
2721 2721
2722 public void SendAssetNotFound(AssetRequestToClient req)
2723 {
2724 TransferInfoPacket Transfer = new TransferInfoPacket();
2725 Transfer.TransferInfo.ChannelType = 2;
2726 Transfer.TransferInfo.Status = -2;
2727 Transfer.TransferInfo.TargetType = 0;
2728 Transfer.TransferInfo.Params = req.Params;
2729 Transfer.TransferInfo.Size = 0;
2730 Transfer.TransferInfo.TransferID = req.TransferRequestID;
2731 Transfer.Header.Zerocoded = true;
2732 OutPacket(Transfer, ThrottleOutPacketType.Asset);
2733 }
2734
2722 public void SendTexture(AssetBase TextureAsset) 2735 public void SendTexture(AssetBase TextureAsset)
2723 { 2736 {
2724 2737
@@ -11980,14 +11993,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11980 /// <param name="asset"></param> 11993 /// <param name="asset"></param>
11981 protected void AssetReceived(string id, Object sender, AssetBase asset) 11994 protected void AssetReceived(string id, Object sender, AssetBase asset)
11982 { 11995 {
11983 if (asset == null)
11984 return;
11985
11986 TransferRequestPacket transferRequest = (TransferRequestPacket)sender; 11996 TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
11987 11997
11988 UUID requestID = UUID.Zero; 11998 UUID requestID = UUID.Zero;
11989 byte source = (byte)SourceType.Asset; 11999 byte source = (byte)SourceType.Asset;
11990 12000
12001 AssetRequestToClient req = new AssetRequestToClient();
12002
12003 if (asset == null)
12004 {
12005 req.AssetInf = null;
12006 req.AssetRequestSource = source;
12007 req.IsTextureRequest = false;
12008 req.NumPackets = 0;
12009 req.Params = transferRequest.TransferInfo.Params;
12010 req.RequestAssetID = requestID;
12011 req.TransferRequestID = transferRequest.TransferInfo.TransferID;
12012
12013 SendAssetNotFound(req);
12014 return;
12015 }
12016
11991 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset) 12017 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
11992 { 12018 {
11993 requestID = new UUID(transferRequest.TransferInfo.Params, 0); 12019 requestID = new UUID(transferRequest.TransferInfo.Params, 0);
@@ -12004,7 +12030,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12004 return; 12030 return;
12005 12031
12006 // The asset is known to exist and is in our cache, so add it to the AssetRequests list 12032 // The asset is known to exist and is in our cache, so add it to the AssetRequests list
12007 AssetRequestToClient req = new AssetRequestToClient();
12008 req.AssetInf = asset; 12033 req.AssetInf = asset;
12009 req.AssetRequestSource = source; 12034 req.AssetRequestSource = source;
12010 req.IsTextureRequest = false; 12035 req.IsTextureRequest = false;