aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-12 02:16:36 +0100
committerJustin Clark-Casey (justincc)2012-06-12 02:16:36 +0100
commitb099f26376a7d671eeb9113dd7611cfcb0e57de0 (patch)
tree85e4f2bfb41e2f8b811a0acf6ba7d849e24918c7 /OpenSim/Framework
parentIf the simulator closes a root agent due to ack timeout, then send the client... (diff)
downloadopensim-SC-b099f26376a7d671eeb9113dd7611cfcb0e57de0.zip
opensim-SC-b099f26376a7d671eeb9113dd7611cfcb0e57de0.tar.gz
opensim-SC-b099f26376a7d671eeb9113dd7611cfcb0e57de0.tar.bz2
opensim-SC-b099f26376a7d671eeb9113dd7611cfcb0e57de0.tar.xz
Set IClientAPI.IsActive = false early on client removal due to ack timeout rather than using IsLoggingOut flag.
IsActive is more appropriate since unack timeout is not due to voluntary logout. This is in line with operations such as manual kick that do not set the IsLoggingOut flag. It's also slightly better race-wise since it reduces the chance of this operation clashing with another reason for client deactivation (e.g. manual kick).
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/IClientAPI.cs9
1 files changed, 3 insertions, 6 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index f8b6a84..2ea6de5 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -741,22 +741,19 @@ namespace OpenSim.Framework
741 string Name { get; } 741 string Name { get; }
742 742
743 /// <summary> 743 /// <summary>
744 /// True if the client is active (sending and receiving new UDP messages). False if the client is closing. 744 /// True if the client is active (sending and receiving new UDP messages). False if the client is being closed.
745 /// </summary> 745 /// </summary>
746 bool IsActive { get; set; } 746 bool IsActive { get; set; }
747 747
748 /// <summary> 748 /// <summary>
749 /// Set if the client is closing due to a logout request or because of too much time since last ack. 749 /// Set if the client is closing due to a logout request
750 /// </summary> 750 /// </summary>
751 /// <remarks> 751 /// <remarks>
752 /// Do not use this flag if you want to know if the client is closing, since it will not be set in other 752 /// Do not use this flag if you want to know if the client is closing, since it will not be set in other
753 /// circumstances (e.g. if a child agent is closed or the agent is kicked off the simulator). Use IsActive 753 /// circumstances (e.g. if a child agent is closed or the agent is kicked off the simulator). Use IsActive
754 /// instead. 754 /// instead with a IClientAPI.SceneAgent.IsChildAgent check if necessary.
755 /// 755 ///
756 /// Only set for root agents. 756 /// Only set for root agents.
757 ///
758 /// TODO: Too much time since last ack should probably be a separate property, or possibly part of a state
759 /// machine.
760 /// </remarks> 757 /// </remarks>
761 bool IsLoggingOut { get; set; } 758 bool IsLoggingOut { get; set; }
762 759