diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
4 files changed, 17 insertions, 21 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 0a865ab..6428b86 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -6600,19 +6600,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6600 | #endregion | 6600 | #endregion |
6601 | 6601 | ||
6602 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; | 6602 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; |
6603 | if (handlerAgentRequestSit != null) | ||
6604 | if (!(agentRequestSit.AgentData == null | ||
6605 | || agentRequestSit.TargetObject == null | ||
6606 | || agentRequestSit.TargetObject.TargetID == null | ||
6607 | || agentRequestSit.TargetObject.Offset == null)) | ||
6608 | { | ||
6609 | var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID); | ||
6610 | if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting | ||
6611 | return true; | ||
6612 | 6603 | ||
6613 | handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, | 6604 | if (handlerAgentRequestSit != null) |
6614 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | 6605 | handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, |
6615 | } | 6606 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); |
6616 | } | 6607 | } |
6617 | return true; | 6608 | return true; |
6618 | } | 6609 | } |
@@ -12267,11 +12258,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12267 | if (logPacket) | 12258 | if (logPacket) |
12268 | m_log.DebugFormat( | 12259 | m_log.DebugFormat( |
12269 | "[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}", | 12260 | "[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}", |
12270 | Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type); | 12261 | Name, SceneAgent.IsChildAgent ? "child" : "root ", Scene.Name, packet.Type); |
12271 | } | 12262 | } |
12272 | 12263 | ||
12273 | if (!ProcessPacketMethod(packet)) | 12264 | if (!ProcessPacketMethod(packet)) |
12274 | m_log.Warn("[CLIENT]: unhandled packet " + packet.Type); | 12265 | m_log.WarnFormat( |
12266 | "[CLIENT]: Unhandled packet {0} from {1} ({2}) in {3}. Ignoring.", | ||
12267 | packet.Type, Name, SceneAgent.IsChildAgent ? "child" : "root ", Scene.Name); | ||
12275 | } | 12268 | } |
12276 | 12269 | ||
12277 | private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket) | 12270 | private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket) |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs index 2aeb4cc..7035e38 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs | |||
@@ -204,9 +204,12 @@ namespace OpenMetaverse | |||
204 | { | 204 | { |
205 | UDPPacketBuffer buf; | 205 | UDPPacketBuffer buf; |
206 | 206 | ||
207 | if (UsePools) | 207 | // FIXME: Disabled for now as this causes issues with reused packet objects interfering with each other |
208 | buf = Pool.GetObject(); | 208 | // on Windows with m_asyncPacketHandling = true, though this has not been seen on Linux. |
209 | else | 209 | // Possibly some unexpected issue with fetching UDP data concurrently with multiple threads. Requires more investigation. |
210 | // if (UsePools) | ||
211 | // buf = Pool.GetObject(); | ||
212 | // else | ||
210 | buf = new UDPPacketBuffer(); | 213 | buf = new UDPPacketBuffer(); |
211 | 214 | ||
212 | if (IsRunningInbound) | 215 | if (IsRunningInbound) |
@@ -287,8 +290,8 @@ namespace OpenMetaverse | |||
287 | catch (ObjectDisposedException) { } | 290 | catch (ObjectDisposedException) { } |
288 | finally | 291 | finally |
289 | { | 292 | { |
290 | if (UsePools) | 293 | // if (UsePools) |
291 | Pool.ReturnObject(buffer); | 294 | // Pool.ReturnObject(buffer); |
292 | 295 | ||
293 | // Synchronous mode waits until the packet callback completes | 296 | // Synchronous mode waits until the packet callback completes |
294 | // before starting the receive to fetch another packet | 297 | // before starting the receive to fetch another packet |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs index 5fcf376..7d9f581 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs | |||
@@ -43,7 +43,7 @@ using OpenSim.Tests.Common.Mock; | |||
43 | namespace OpenSim.Region.ClientStack.LindenUDP.Tests | 43 | namespace OpenSim.Region.ClientStack.LindenUDP.Tests |
44 | { | 44 | { |
45 | [TestFixture] | 45 | [TestFixture] |
46 | public class LLImageManagerTests | 46 | public class LLImageManagerTests : OpenSimTestCase |
47 | { | 47 | { |
48 | private AssetBase m_testImageAsset; | 48 | private AssetBase m_testImageAsset; |
49 | private Scene scene; | 49 | private Scene scene; |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs index 0f88ec6..5f73a94 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests | |||
39 | /// Tests for the LL packet handler | 39 | /// Tests for the LL packet handler |
40 | /// </summary> | 40 | /// </summary> |
41 | [TestFixture] | 41 | [TestFixture] |
42 | public class PacketHandlerTests | 42 | public class PacketHandlerTests : OpenSimTestCase |
43 | { | 43 | { |
44 | // [Test] | 44 | // [Test] |
45 | // /// <summary> | 45 | // /// <summary> |