diff options
author | Melanie Thielker | 2008-11-23 06:44:43 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-11-23 06:44:43 +0000 |
commit | ed300f21f0256e4990a91fec79927b723223fa98 (patch) | |
tree | 392abaa1b95eaf07b1129c275060028c821c3279 /OpenSim/Grid/MessagingServer/MessageService.cs | |
parent | Plumb in the presence notifications and region shutdown/restart messages (diff) | |
download | opensim-SC-ed300f21f0256e4990a91fec79927b723223fa98.zip opensim-SC-ed300f21f0256e4990a91fec79927b723223fa98.tar.gz opensim-SC-ed300f21f0256e4990a91fec79927b723223fa98.tar.bz2 opensim-SC-ed300f21f0256e4990a91fec79927b723223fa98.tar.xz |
05:24:49 - [PRESENCE]: Logging off 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb because the region they were in has gone
Or, in other words, a region crash/restart no longer messes up presence.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Grid/MessagingServer/MessageService.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index a4e54c7..a8ee9d5 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs | |||
@@ -666,5 +666,35 @@ namespace OpenSim.Grid.MessagingServer | |||
666 | response.Value = result; | 666 | response.Value = result; |
667 | return response; | 667 | return response; |
668 | } | 668 | } |
669 | |||
670 | public XmlRpcResponse ProcessRegionShutdown(XmlRpcRequest request) | ||
671 | { | ||
672 | Hashtable requestData = (Hashtable)request.Params[0]; | ||
673 | Hashtable result = new Hashtable(); | ||
674 | result["success"] = "FALSE"; | ||
675 | |||
676 | UUID regionID; | ||
677 | if (UUID.TryParse((string)requestData["regionid"], out regionID)) | ||
678 | { | ||
679 | m_log.DebugFormat("[PRESENCE] Processing region restart for {0}", regionID); | ||
680 | result["success"] = "TRUE"; | ||
681 | |||
682 | foreach (UserPresenceData up in m_presences.Values) | ||
683 | { | ||
684 | if(up.regionData.UUID == regionID) | ||
685 | { | ||
686 | if (up.OnlineYN) | ||
687 | { | ||
688 | m_log.DebugFormat("[PRESENCE] Logging off {0} because the region they were in has gone", up.agentData.AgentID); | ||
689 | ProcessLogOff(up.agentData.AgentID); | ||
690 | } | ||
691 | } | ||
692 | } | ||
693 | } | ||
694 | |||
695 | XmlRpcResponse response = new XmlRpcResponse(); | ||
696 | response.Value = result; | ||
697 | return response; | ||
698 | } | ||
669 | } | 699 | } |
670 | } | 700 | } |