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 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; |