diff options
author | Justin Clark-Casey (justincc) | 2012-06-14 01:38:41 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-14 01:38:41 +0100 |
commit | 0d2243a3934ab4001637d25ddf0a08d479f4f365 (patch) | |
tree | cc8305b0f185d674b44af330de632d228b135aa5 /OpenSim/Region/ClientStack | |
parent | Fix a race condition where an object update for a hud could be sent to non-ow... (diff) | |
parent | Fix not sending TransferInfo when an asset is not found. This clogs (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 33 |
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; |