diff options
author | Mike Rieker | 2010-07-06 02:23:10 +0000 |
---|---|---|
committer | Mike Rieker | 2010-07-06 02:23:10 +0000 |
commit | 6e7f1a3ac11b889175c87f59a3c5361c704363a6 (patch) | |
tree | 2ed5bebf54db3adc420e1510045b84b880ecb157 /OpenSim/Region/ClientStack | |
parent | rewrote hanging llParseStringKeepNulls() (diff) | |
parent | Undo fix is now complete. This commit repairs the special case of the root pr... (diff) | |
download | opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.zip opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.gz opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.bz2 opensim-SC-6e7f1a3ac11b889175c87f59a3c5361c704363a6.tar.xz |
Merge branch 'careminster-presence-refactor' of www.3dhosting.de:/var/git/careminster into careminster-presence-refactor
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 24 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 11 |
2 files changed, 29 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index f071841..4dfd5d1 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); |
@@ -6307,8 +6316,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6307 | if (handlerObjectDuplicate != null) | 6316 | if (handlerObjectDuplicate != null) |
6308 | { | 6317 | { |
6309 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, | 6318 | handlerObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, |
6310 | dupe.SharedData.DuplicateFlags, AgentandGroupData.AgentID, | 6319 | dupe.SharedData.DuplicateFlags, AgentId, |
6311 | AgentandGroupData.GroupID); | 6320 | m_activeGroupID); |
6312 | } | 6321 | } |
6313 | } | 6322 | } |
6314 | 6323 | ||
@@ -6898,7 +6907,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6898 | if (handlerObjectDuplicateOnRay != null) | 6907 | if (handlerObjectDuplicateOnRay != null) |
6899 | { | 6908 | { |
6900 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, | 6909 | handlerObjectDuplicateOnRay(dupeOnRay.ObjectData[i].ObjectLocalID, dupeOnRay.AgentData.DuplicateFlags, |
6901 | dupeOnRay.AgentData.AgentID, dupeOnRay.AgentData.GroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, | 6910 | AgentId, m_activeGroupID, dupeOnRay.AgentData.RayTargetID, dupeOnRay.AgentData.RayEnd, |
6902 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, | 6911 | dupeOnRay.AgentData.RayStart, dupeOnRay.AgentData.BypassRaycast, dupeOnRay.AgentData.RayEndIsIntersection, |
6903 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); | 6912 | dupeOnRay.AgentData.CopyCenters, dupeOnRay.AgentData.CopyRotates); |
6904 | } | 6913 | } |
@@ -11502,7 +11511,10 @@ 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 | ||
11514 | |||
11515 | //Note, the bool returned from the below function is useless since it is always false. | ||
11505 | m_assetService.Get(requestID.ToString(), transferRequest, AssetReceived); | 11516 | m_assetService.Get(requestID.ToString(), transferRequest, AssetReceived); |
11517 | |||
11506 | } | 11518 | } |
11507 | 11519 | ||
11508 | /// <summary> | 11520 | /// <summary> |
@@ -11551,8 +11563,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
11551 | } | 11563 | } |
11552 | 11564 | ||
11553 | //m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID); | 11565 | //m_log.DebugFormat("[ASSET CACHE]: Asset transfer request for asset which is {0} already known to be missing. Dropping", requestID); |
11554 | 11566 | ||
11555 | // FIXME: We never tell the client about assets which do not exist when requested by this transfer mechanism, which can't be right. | 11567 | //We need to send a TransferAbort here, so the client doesn't wait forever for the asset, |
11568 | //which causes it to not request any more for a while. Which is bad. | ||
11569 | SendTransferAbort(transferRequest); | ||
11556 | return; | 11570 | return; |
11557 | } | 11571 | } |
11558 | 11572 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index cda461c..f2bcc0b 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -900,7 +900,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
900 | 900 | ||
901 | // Start the IClientAPI | 901 | // Start the IClientAPI |
902 | // Spin it off so that it doesn't clog up the LLUDPServer | 902 | // Spin it off so that it doesn't clog up the LLUDPServer |
903 | Util.FireAndForget(delegate(object o) { client.Start(); }); | 903 | //Util.FireAndForget(delegate(object o) { client.Start(); }); |
904 | |||
905 | // NOTE: DO NOT CALL THIS ASYNCHRONOUSLY!!!!! | ||
906 | // This method will ultimately cause the modules to hook | ||
907 | // client events in OnNewClient. If they can't do this | ||
908 | // before further packets are processed, packets WILL BE LOST. | ||
909 | // This includes the all-important EconomyDataRequest! | ||
910 | // So using FireAndForget here WILL screw up money. Badly. | ||
911 | // You have been warned! | ||
912 | client.Start(); | ||
904 | } | 913 | } |
905 | else | 914 | else |
906 | { | 915 | { |