aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorMelanie2012-06-06 20:35:00 +0200
committerMelanie2012-06-07 19:51:32 +0200
commit095dbf0ece0aab1812d04695a17bff86720ab6ac (patch)
tree8aae4ee320cfc4a744c7776889961117089b902f /OpenSim/Region/ClientStack
parentAdd collision sounds to the asset set (diff)
downloadopensim-SC-095dbf0ece0aab1812d04695a17bff86720ab6ac.zip
opensim-SC-095dbf0ece0aab1812d04695a17bff86720ab6ac.tar.gz
opensim-SC-095dbf0ece0aab1812d04695a17bff86720ab6ac.tar.bz2
opensim-SC-095dbf0ece0aab1812d04695a17bff86720ab6ac.tar.xz
Fix not sending TransferInfo when an asset is not found. This clogs
up the sound pipeline in the viewer.
Diffstat (limited to '')
-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 77dbca7..5a87958 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
@@ -12178,14 +12191,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12178 /// <param name="asset"></param> 12191 /// <param name="asset"></param>
12179 protected void AssetReceived(string id, Object sender, AssetBase asset) 12192 protected void AssetReceived(string id, Object sender, AssetBase asset)
12180 { 12193 {
12181 if (asset == null)
12182 return;
12183
12184 TransferRequestPacket transferRequest = (TransferRequestPacket)sender; 12194 TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
12185 12195
12186 UUID requestID = UUID.Zero; 12196 UUID requestID = UUID.Zero;
12187 byte source = (byte)SourceType.Asset; 12197 byte source = (byte)SourceType.Asset;
12188 12198
12199 AssetRequestToClient req = new AssetRequestToClient();
12200
12201 if (asset == null)
12202 {
12203 req.AssetInf = null;
12204 req.AssetRequestSource = source;
12205 req.IsTextureRequest = false;
12206 req.NumPackets = 0;
12207 req.Params = transferRequest.TransferInfo.Params;
12208 req.RequestAssetID = requestID;
12209 req.TransferRequestID = transferRequest.TransferInfo.TransferID;
12210
12211 SendAssetNotFound(req);
12212 return;
12213 }
12214
12189 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset) 12215 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
12190 { 12216 {
12191 requestID = new UUID(transferRequest.TransferInfo.Params, 0); 12217 requestID = new UUID(transferRequest.TransferInfo.Params, 0);
@@ -12202,7 +12228,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12202 return; 12228 return;
12203 12229
12204 // The asset is known to exist and is in our cache, so add it to the AssetRequests list 12230 // The asset is known to exist and is in our cache, so add it to the AssetRequests list
12205 AssetRequestToClient req = new AssetRequestToClient();
12206 req.AssetInf = asset; 12231 req.AssetInf = asset;
12207 req.AssetRequestSource = source; 12232 req.AssetRequestSource = source;
12208 req.IsTextureRequest = false; 12233 req.IsTextureRequest = false;