aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-13 17:33:45 -0700
committerJohn Hurliman2009-10-13 17:33:45 -0700
commitdc11643c007adf7a640ec4fbabe25995352aaa18 (patch)
tree108b5f7234756c5395d4ca518cfeb03454f62ace /OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
parent* Fixed a bug where clients were being added to ClientManager twice (diff)
downloadopensim-SC-dc11643c007adf7a640ec4fbabe25995352aaa18.zip
opensim-SC-dc11643c007adf7a640ec4fbabe25995352aaa18.tar.gz
opensim-SC-dc11643c007adf7a640ec4fbabe25995352aaa18.tar.bz2
opensim-SC-dc11643c007adf7a640ec4fbabe25995352aaa18.tar.xz
* Consolidated adding / removing ClientManager IClientAPIs to two places in Scene
* Added some missing implementations of IClientAPI.RemoteEndPoint * Added a ClientManager.Remove(UUID) overload * Removed a reference to a missing project from prebuild.xml
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs61
1 files changed, 2 insertions, 59 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index aecb362..0acf6e8 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -324,6 +324,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
324 #region Properties 324 #region Properties
325 325
326 public LLUDPClient UDPClient { get { return m_udpClient; } } 326 public LLUDPClient UDPClient { get { return m_udpClient; } }
327 public IPEndPoint RemoteEndPoint { get { return m_udpClient.RemoteEndPoint; } }
327 public UUID SecureSessionId { get { return m_secureSessionId; } } 328 public UUID SecureSessionId { get { return m_secureSessionId; } }
328 public IScene Scene { get { return m_scene; } } 329 public IScene Scene { get { return m_scene; } }
329 public UUID SessionId { get { return m_sessionId; } } 330 public UUID SessionId { get { return m_sessionId; } }
@@ -431,7 +432,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
431 432
432 // Remove ourselves from the scene 433 // Remove ourselves from the scene
433 m_scene.RemoveClient(AgentId); 434 m_scene.RemoveClient(AgentId);
434 m_scene.ClientManager.Remove(this);
435 435
436 //m_log.InfoFormat("[CLIENTVIEW] Memory pre GC {0}", System.GC.GetTotalMemory(false)); 436 //m_log.InfoFormat("[CLIENTVIEW] Memory pre GC {0}", System.GC.GetTotalMemory(false));
437 //GC.Collect(); 437 //GC.Collect();
@@ -586,11 +586,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
586 586
587 # region Setup 587 # region Setup
588 588
589 /// <summary> 589 public virtual void Start()
590 /// Starts up the timers to check the client and resend unacked packets
591 /// Adds the client to the OpenSim.Region.Framework.Scenes.Scene
592 /// </summary>
593 protected virtual void InitNewClient()
594 { 590 {
595 m_avatarTerseUpdateTimer = new Timer(m_avatarTerseUpdateRate); 591 m_avatarTerseUpdateTimer = new Timer(m_avatarTerseUpdateRate);
596 m_avatarTerseUpdateTimer.Elapsed += new ElapsedEventHandler(ProcessAvatarTerseUpdates); 592 m_avatarTerseUpdateTimer.Elapsed += new ElapsedEventHandler(ProcessAvatarTerseUpdates);
@@ -609,59 +605,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
609 RefreshGroupMembership(); 605 RefreshGroupMembership();
610 } 606 }
611 607
612 public virtual void Start()
613 {
614 // This sets up all the timers
615 InitNewClient();
616 }
617
618 /// <summary>
619 /// Run a user session. This method lies at the base of the entire client thread.
620 /// </summary>
621 protected void RunUserSession()
622 {
623 try
624 {
625
626 }
627 catch (Exception e)
628 {
629 if (e is ThreadAbortException)
630 throw;
631
632 if (StatsManager.SimExtraStats != null)
633 StatsManager.SimExtraStats.AddAbnormalClientThreadTermination();
634
635 // Don't let a failure in an individual client thread crash the whole sim.
636 m_log.ErrorFormat(
637 "[CLIENT]: Client thread for {0} {1} crashed. Logging them out.", Name, AgentId);
638 m_log.Error(e.ToString());
639
640 try
641 {
642 // Make an attempt to alert the user that their session has crashed
643 AgentAlertMessagePacket packet
644 = BuildAgentAlertPacket(
645 "Unfortunately the session for this client on the server has crashed.\n"
646 + "Any further actions taken will not be processed.\n"
647 + "Please relog", true);
648
649 OutPacket(packet, ThrottleOutPacketType.Unknown);
650
651 // There may be a better way to do this. Perhaps kick? Not sure this propogates notifications to
652 // listeners yet, though.
653 Logout(this);
654 }
655 catch (Exception e2)
656 {
657 if (e2 is ThreadAbortException)
658 throw;
659
660 m_log.ErrorFormat("[CLIENT]: Further exception thrown on forced session logout. {0}", e2);
661 }
662 }
663 }
664
665 # endregion 608 # endregion
666 609
667 public void ActivateGesture(UUID assetId, UUID gestureId) 610 public void ActivateGesture(UUID assetId, UUID gestureId)