diff options
author | Tom Grimshaw | 2010-06-27 22:23:01 -0700 |
---|---|---|
committer | Tom Grimshaw | 2010-06-27 22:23:01 -0700 |
commit | 827d9be48f8177b5975df68208a8cf7c730b58f0 (patch) | |
tree | 55e3feb7a689fc08266dc646ebc067ce618b3cb1 /OpenSim | |
parent | Deal with incoming land objects properly so they don't just stack up (diff) | |
download | opensim-SC_OLD-827d9be48f8177b5975df68208a8cf7c730b58f0.zip opensim-SC_OLD-827d9be48f8177b5975df68208a8cf7c730b58f0.tar.gz opensim-SC_OLD-827d9be48f8177b5975df68208a8cf7c730b58f0.tar.bz2 opensim-SC_OLD-827d9be48f8177b5975df68208a8cf7c730b58f0.tar.xz |
Fix the sound issue. It was caused by missing assets; once the client has made one request, it continued to wait for asset before requesting any new ones, until the TransferRequest timed out. Fixed by adding a TransferAbortPacket if the asset cannot be retrieved.
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index f071841..5b5dc1e 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2208,6 +2208,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2208 | OutPacket(sound, ThrottleOutPacketType.Task); | 2208 | OutPacket(sound, ThrottleOutPacketType.Task); |
2209 | } | 2209 | } |
2210 | 2210 | ||
2211 | public void SendTransferAbort(TransferRequestPacket transferRequest) | ||
2212 | { | ||
2213 | TransferAbortPacket abort = (TransferAbortPacket)PacketPool.Instance.GetPacket(PacketType.TransferAbort); | ||
2214 | abort.TransferInfo.TransferID = transferRequest.TransferInfo.TransferID; | ||
2215 | abort.TransferInfo.ChannelType = transferRequest.TransferInfo.ChannelType; | ||
2216 | m_log.Debug("[Assets] Aborting transfer; asset request failed"); | ||
2217 | OutPacket(abort, ThrottleOutPacketType.Task); | ||
2218 | } | ||
2219 | |||
2211 | public void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position, float gain) | 2220 | public void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position, float gain) |
2212 | { | 2221 | { |
2213 | SoundTriggerPacket sound = (SoundTriggerPacket)PacketPool.Instance.GetPacket(PacketType.SoundTrigger); | 2222 | SoundTriggerPacket sound = (SoundTriggerPacket)PacketPool.Instance.GetPacket(PacketType.SoundTrigger); |
@@ -11502,7 +11511,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
11502 | 11511 | ||
11503 | // m_log.DebugFormat("[CLIENT]: {0} requesting asset {1}", Name, requestID); | 11512 | // m_log.DebugFormat("[CLIENT]: {0} requesting asset {1}", Name, requestID); |
11504 | 11513 | ||
11505 | m_assetService.Get(requestID.ToString(), transferRequest, AssetReceived); | 11514 | if (!m_assetService.Get(requestID.ToString(), transferRequest, AssetReceived)) |
11515 | { | ||
11516 | //We need to send a TransferAbort here, so the client doesn't wait forever for the asset, | ||
11517 | //which causes it to not request any more for a while. Which is bad. | ||
11518 | SendTransferAbort(transferRequest); | ||
11519 | } | ||
11506 | } | 11520 | } |
11507 | 11521 | ||
11508 | /// <summary> | 11522 | /// <summary> |