diff options
Diffstat (limited to 'OpenSim/Region')
-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 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; |