Fix not sending TransferInfo when an asset is not found. This clogs
up the sound pipeline in the viewer.avinationmerge
parent
c0b21d92c2
commit
34cb8a2ab3
|
@ -2777,6 +2777,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendAssetNotFound(AssetRequestToClient req)
|
||||||
|
{
|
||||||
|
TransferInfoPacket Transfer = new TransferInfoPacket();
|
||||||
|
Transfer.TransferInfo.ChannelType = 2;
|
||||||
|
Transfer.TransferInfo.Status = -2;
|
||||||
|
Transfer.TransferInfo.TargetType = 0;
|
||||||
|
Transfer.TransferInfo.Params = req.Params;
|
||||||
|
Transfer.TransferInfo.Size = 0;
|
||||||
|
Transfer.TransferInfo.TransferID = req.TransferRequestID;
|
||||||
|
Transfer.Header.Zerocoded = true;
|
||||||
|
OutPacket(Transfer, ThrottleOutPacketType.Asset);
|
||||||
|
}
|
||||||
|
|
||||||
public void SendTexture(AssetBase TextureAsset)
|
public void SendTexture(AssetBase TextureAsset)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -12181,14 +12194,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
/// <param name="asset"></param>
|
/// <param name="asset"></param>
|
||||||
protected void AssetReceived(string id, Object sender, AssetBase asset)
|
protected void AssetReceived(string id, Object sender, AssetBase asset)
|
||||||
{
|
{
|
||||||
if (asset == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
|
TransferRequestPacket transferRequest = (TransferRequestPacket)sender;
|
||||||
|
|
||||||
UUID requestID = UUID.Zero;
|
UUID requestID = UUID.Zero;
|
||||||
byte source = (byte)SourceType.Asset;
|
byte source = (byte)SourceType.Asset;
|
||||||
|
|
||||||
|
AssetRequestToClient req = new AssetRequestToClient();
|
||||||
|
|
||||||
|
if (asset == null)
|
||||||
|
{
|
||||||
|
req.AssetInf = null;
|
||||||
|
req.AssetRequestSource = source;
|
||||||
|
req.IsTextureRequest = false;
|
||||||
|
req.NumPackets = 0;
|
||||||
|
req.Params = transferRequest.TransferInfo.Params;
|
||||||
|
req.RequestAssetID = requestID;
|
||||||
|
req.TransferRequestID = transferRequest.TransferInfo.TransferID;
|
||||||
|
|
||||||
|
SendAssetNotFound(req);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
|
if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset)
|
||||||
{
|
{
|
||||||
requestID = new UUID(transferRequest.TransferInfo.Params, 0);
|
requestID = new UUID(transferRequest.TransferInfo.Params, 0);
|
||||||
|
@ -12205,7 +12231,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// The asset is known to exist and is in our cache, so add it to the AssetRequests list
|
// The asset is known to exist and is in our cache, so add it to the AssetRequests list
|
||||||
AssetRequestToClient req = new AssetRequestToClient();
|
|
||||||
req.AssetInf = asset;
|
req.AssetInf = asset;
|
||||||
req.AssetRequestSource = source;
|
req.AssetRequestSource = source;
|
||||||
req.IsTextureRequest = false;
|
req.IsTextureRequest = false;
|
||||||
|
|
Loading…
Reference in New Issue