diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-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 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; |