aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-06-06 20:35:00 +0200
committerMelanie2012-06-06 20:35:00 +0200
commit34cb8a2ab3189952cb74a16cf5246a2da3847b7c (patch)
tree890b6851f49f21c00b6c311e190a6a899ff2611d /OpenSim
parentMerge branch 'avination' into careminster (diff)
downloadopensim-SC-34cb8a2ab3189952cb74a16cf5246a2da3847b7c.zip
opensim-SC-34cb8a2ab3189952cb74a16cf5246a2da3847b7c.tar.gz
opensim-SC-34cb8a2ab3189952cb74a16cf5246a2da3847b7c.tar.bz2
opensim-SC-34cb8a2ab3189952cb74a16cf5246a2da3847b7c.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 9895402..18d8045 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2777,6 +2777,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2777 } 2777 }
2778 } 2778 }
2779 2779
2780 public void SendAssetNotFound(AssetRequestToClient req)
2781 {
2782 TransferInfoPacket Transfer = new TransferInfoPacket();
2783 Transfer.TransferInfo.ChannelType = 2;
2784 Transfer.TransferInfo.Status = -2;
2785 Transfer.TransferInfo.TargetType = 0;
2786 Transfer.TransferInfo.Params = req.Params;
2787 Transfer.TransferInfo.Size = 0;
2788 Transfer.TransferInfo.TransferID = req.TransferRequestID;
2789 Transfer.Header.Zerocoded = true;
2790 OutPacket(Transfer, ThrottleOutPacketType.Asset);
2791 }
2792
2780 public void SendTexture(AssetBase TextureAsset) 2793 public void SendTexture(AssetBase TextureAsset)
2781 { 2794 {
2782 2795
@@ -12181,14 +12194,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12181 /// <param name="asset"></param> 12194 /// <param name="asset"></param>
12182 protected void AssetReceived(string id, Object sender, AssetBase asset) 12195 protected void AssetReceived(string id, Object sender, AssetBase asset)
12183 { 12196 {
12184 if (asset == null)
12185 return;
12186
12187 TransferRequestPacket transferRequest = (TransferRequestPacket)sender; 12197 TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
12188 12198
12189 UUID requestID = UUID.Zero; 12199 UUID requestID = UUID.Zero;
12190 byte source = (byte)SourceType.Asset; 12200 byte source = (byte)SourceType.Asset;
12191 12201
12202 AssetRequestToClient req = new AssetRequestToClient();
12203
12204 if (asset == null)
12205 {
12206 req.AssetInf = null;
12207 req.AssetRequestSource = source;
12208 req.IsTextureRequest = false;
12209 req.NumPackets = 0;
12210 req.Params = transferRequest.TransferInfo.Params;
12211 req.RequestAssetID = requestID;
12212 req.TransferRequestID = transferRequest.TransferInfo.TransferID;
12213
12214 SendAssetNotFound(req);
12215 return;
12216 }
12217
12192 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset) 12218 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
12193 { 12219 {
12194 requestID = new UUID(transferRequest.TransferInfo.Params, 0); 12220 requestID = new UUID(transferRequest.TransferInfo.Params, 0);
@@ -12205,7 +12231,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12205 return; 12231 return;
12206 12232
12207 // The asset is known to exist and is in our cache, so add it to the AssetRequests list 12233 // The asset is known to exist and is in our cache, so add it to the AssetRequests list
12208 AssetRequestToClient req = new AssetRequestToClient();
12209 req.AssetInf = asset; 12234 req.AssetInf = asset;
12210 req.AssetRequestSource = source; 12235 req.AssetRequestSource = source;
12211 req.IsTextureRequest = false; 12236 req.IsTextureRequest = false;