aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-04-06 02:05:19 +0000
committerTeravus Ovares2008-04-06 02:05:19 +0000
commit0340531ff0bfe01334c030b15b6c3b118712703e (patch)
tree21162945d0689f9bda711c850945298833a9b23d
parentUpdate Mac OS X ODE binary to opensim-libs r41. (diff)
downloadopensim-SC-0340531ff0bfe01334c030b15b6c3b118712703e.zip
opensim-SC-0340531ff0bfe01334c030b15b6c3b118712703e.tar.gz
opensim-SC-0340531ff0bfe01334c030b15b6c3b118712703e.tar.bz2
opensim-SC-0340531ff0bfe01334c030b15b6c3b118712703e.tar.xz
* Implemented AgentPause and AgentResume. AgentPause extends the timeout for a client at the server by 3x. AgentResume restores the timeout to the normal amount.
* The linden client still doesn't like it when you have an image select box open for more then 100 or so seconds.
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs29
1 files changed, 22 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index e4f28db..a67c247 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -73,6 +73,8 @@ namespace OpenSim.Region.ClientStack
73 private int m_cachedTextureSerial = 0; 73 private int m_cachedTextureSerial = 0;
74 private Timer m_clientPingTimer; 74 private Timer m_clientPingTimer;
75 75
76 private bool m_clientBlocked = false;
77
76 private int m_packetsReceived = 0; 78 private int m_packetsReceived = 0;
77 private int m_lastPacketsReceivedSentToScene = 0; 79 private int m_lastPacketsReceivedSentToScene = 0;
78 private int m_unAckedBytes = 0; 80 private int m_unAckedBytes = 0;
@@ -569,8 +571,9 @@ namespace OpenSim.Region.ClientStack
569 if (m_packetsReceived == m_lastPacketsReceived) 571 if (m_packetsReceived == m_lastPacketsReceived)
570 { 572 {
571 m_probesWithNoIngressPackets++; 573 m_probesWithNoIngressPackets++;
572 if (m_probesWithNoIngressPackets > 30) 574 if ((m_probesWithNoIngressPackets > 30 && !m_clientBlocked) || (m_probesWithNoIngressPackets > 90 && m_clientBlocked))
573 { 575 {
576
574 if (OnConnectionClosed != null) 577 if (OnConnectionClosed != null)
575 { 578 {
576 OnConnectionClosed(this); 579 OnConnectionClosed(this);
@@ -3336,6 +3339,18 @@ namespace OpenSim.Region.ClientStack
3336 m_packetQueue.SetThrottleFromClient(atpack.Throttle.Throttles); 3339 m_packetQueue.SetThrottleFromClient(atpack.Throttle.Throttles);
3337 break; 3340 break;
3338 3341
3342 case PacketType.AgentPause:
3343 m_probesWithNoIngressPackets = 0;
3344 m_clientBlocked = true;
3345 break;
3346
3347 case PacketType.AgentResume:
3348 m_probesWithNoIngressPackets = 0;
3349 m_clientBlocked = false;
3350 SendStartPingCheck(0);
3351
3352 break;
3353
3339 #endregion 3354 #endregion
3340 3355
3341 #region Objects/m_sceneObjects 3356 #region Objects/m_sceneObjects
@@ -4316,14 +4331,14 @@ namespace OpenSim.Region.ClientStack
4316 // TODO: handle this packet 4331 // TODO: handle this packet
4317 m_log.Warn("[CLIENT]: unhandled MapItemRequest packet"); 4332 m_log.Warn("[CLIENT]: unhandled MapItemRequest packet");
4318 break; 4333 break;
4319 case PacketType.AgentResume: 4334 //case PacketType.AgentResume:
4320 // TODO: handle this packet 4335 // TODO: handle this packet
4321 m_log.Warn("[CLIENT]: unhandled AgentResume packet"); 4336 //m_log.Warn("[CLIENT]: unhandled AgentResume packet");
4322 break; 4337 //break;
4323 case PacketType.AgentPause: 4338 //case PacketType.AgentPause:
4324 // TODO: handle this packet 4339 // TODO: handle this packet
4325 m_log.Warn("[CLIENT]: unhandled AgentPause packet"); 4340 //m_log.Warn("[CLIENT]: unhandled AgentPause packet");
4326 break; 4341 //break;
4327 case PacketType.TransferAbort: 4342 case PacketType.TransferAbort:
4328 // TODO: handle this packet 4343 // TODO: handle this packet
4329 m_log.Warn("[CLIENT]: unhandled TransferAbort packet"); 4344 m_log.Warn("[CLIENT]: unhandled TransferAbort packet");