diff options
author | Justin Clark-Casey (justincc) | 2012-06-12 02:16:36 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-12 02:16:36 +0100 |
commit | b099f26376a7d671eeb9113dd7611cfcb0e57de0 (patch) | |
tree | 85e4f2bfb41e2f8b811a0acf6ba7d849e24918c7 /OpenSim/Framework | |
parent | If the simulator closes a root agent due to ack timeout, then send the client... (diff) | |
download | opensim-SC_OLD-b099f26376a7d671eeb9113dd7611cfcb0e57de0.zip opensim-SC_OLD-b099f26376a7d671eeb9113dd7611cfcb0e57de0.tar.gz opensim-SC_OLD-b099f26376a7d671eeb9113dd7611cfcb0e57de0.tar.bz2 opensim-SC_OLD-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.cs | 9 |
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 | ||