aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-14 01:38:41 +0100
committerJustin Clark-Casey (justincc)2012-06-14 01:38:41 +0100
commit0d2243a3934ab4001637d25ddf0a08d479f4f365 (patch)
treecc8305b0f185d674b44af330de632d228b135aa5 /OpenSim/Region/ClientStack/Linden/UDP
parentFix a race condition where an object update for a hud could be sent to non-ow... (diff)
parentFix not sending TransferInfo when an asset is not found. This clogs (diff)
downloadopensim-SC_OLD-0d2243a3934ab4001637d25ddf0a08d479f4f365.zip
opensim-SC_OLD-0d2243a3934ab4001637d25ddf0a08d479f4f365.tar.gz
opensim-SC_OLD-0d2243a3934ab4001637d25ddf0a08d479f4f365.tar.bz2
opensim-SC_OLD-0d2243a3934ab4001637d25ddf0a08d479f4f365.tar.xz
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-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 83e49f3..9f32c33 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
@@ -12001,14 +12014,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12001 /// <param name="asset"></param> 12014 /// <param name="asset"></param>
12002 protected void AssetReceived(string id, Object sender, AssetBase asset) 12015 protected void AssetReceived(string id, Object sender, AssetBase asset)
12003 { 12016 {
12004 if (asset == null)
12005 return;
12006
12007 TransferRequestPacket transferRequest = (TransferRequestPacket)sender; 12017 TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
12008 12018
12009 UUID requestID = UUID.Zero; 12019 UUID requestID = UUID.Zero;
12010 byte source = (byte)SourceType.Asset; 12020 byte source = (byte)SourceType.Asset;
12011 12021
12022 AssetRequestToClient req = new AssetRequestToClient();
12023
12024 if (asset == null)
12025 {
12026 req.AssetInf = null;
12027 req.AssetRequestSource = source;
12028 req.IsTextureRequest = false;
12029 req.NumPackets = 0;
12030 req.Params = transferRequest.TransferInfo.Params;
12031 req.RequestAssetID = requestID;
12032 req.TransferRequestID = transferRequest.TransferInfo.TransferID;
12033
12034 SendAssetNotFound(req);
12035 return;
12036 }
12037
12012 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset) 12038 if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
12013 { 12039 {
12014 requestID = new UUID(transferRequest.TransferInfo.Params, 0); 12040 requestID = new UUID(transferRequest.TransferInfo.Params, 0);
@@ -12025,7 +12051,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
12025 return; 12051 return;
12026 12052
12027 // The asset is known to exist and is in our cache, so add it to the AssetRequests list 12053 // The asset is known to exist and is in our cache, so add it to the AssetRequests list
12028 AssetRequestToClient req = new AssetRequestToClient();
12029 req.AssetInf = asset; 12054 req.AssetInf = asset;
12030 req.AssetRequestSource = source; 12055 req.AssetRequestSource = source;
12031 req.IsTextureRequest = false; 12056 req.IsTextureRequest = false;