aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/MessagingServer/MessageService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/MessagingServer/MessageService.cs')
-rw-r--r--OpenSim/Grid/MessagingServer/MessageService.cs30
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}