aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/UserServer/Main.cs
diff options
context:
space:
mode:
authorMelanie Thielker2008-11-23 05:16:07 +0000
committerMelanie Thielker2008-11-23 05:16:07 +0000
commitcbd02218704287640ba5c7b564440a6590e038cf (patch)
treee600fd4868bce3e3d007d6d1894dd814d948692a /OpenSim/Grid/UserServer/Main.cs
parentMantis#2660. Thank you kindly, Ruud Lathrop for a patch that: (diff)
downloadopensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.zip
opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.gz
opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.bz2
opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.xz
Plumb in the presence notifications and region shutdown/restart messages
from the presence module to the message server, through the user server and on into the database. This should fix the "Already logged in" issue that grids see after a sim crashes, or a user crashes out of a sim. Not yet a 100% solution for friends, but getting there.
Diffstat (limited to '')
-rw-r--r--OpenSim/Grid/UserServer/Main.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
index eb47259..f894ca0 100644
--- a/OpenSim/Grid/UserServer/Main.cs
+++ b/OpenSim/Grid/UserServer/Main.cs
@@ -110,6 +110,11 @@ namespace OpenSim.Grid.UserServer
110 m_loginService.OnUserLoggedInAtLocation += NotifyMessageServersUserLoggedInToLocation; 110 m_loginService.OnUserLoggedInAtLocation += NotifyMessageServersUserLoggedInToLocation;
111 m_userManager.OnLogOffUser += NotifyMessageServersUserLoggOff; 111 m_userManager.OnLogOffUser += NotifyMessageServersUserLoggOff;
112 112
113 m_messagesService.OnAgentLocation += HandleAgentLocation;
114 m_messagesService.OnAgentLeaving += HandleAgentLeaving;
115 m_messagesService.OnRegionStartup += HandleRegionStartup;
116 m_messagesService.OnRegionShutdown += HandleRegionShutdown;
117
113 m_log.Info("[REGION]: Starting HTTP process"); 118 m_log.Info("[REGION]: Starting HTTP process");
114 119
115 m_httpServer = new BaseHttpServer(Cfg.HttpPort); 120 m_httpServer = new BaseHttpServer(Cfg.HttpPort);
@@ -147,6 +152,10 @@ namespace OpenSim.Grid.UserServer
147 m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", m_userManager.XmlRPCGetAgentMethodUUID); 152 m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", m_userManager.XmlRPCGetAgentMethodUUID);
148 m_httpServer.AddXmlRPCHandler("check_auth_session", m_userManager.XmlRPCCheckAuthSession); 153 m_httpServer.AddXmlRPCHandler("check_auth_session", m_userManager.XmlRPCCheckAuthSession);
149 m_httpServer.AddXmlRPCHandler("set_login_params", m_loginService.XmlRPCSetLoginParams); 154 m_httpServer.AddXmlRPCHandler("set_login_params", m_loginService.XmlRPCSetLoginParams);
155 m_httpServer.AddXmlRPCHandler("region_startup", m_messagesService.RegionStartup);
156 m_httpServer.AddXmlRPCHandler("region_shutdown", m_messagesService.RegionShutdown);
157 m_httpServer.AddXmlRPCHandler("agent_location", m_messagesService.AgentLocation);
158 m_httpServer.AddXmlRPCHandler("agent_leaving", m_messagesService.AgentLeaving);
150 // Message Server ---> User Server 159 // Message Server ---> User Server
151 m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer); 160 m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer);
152 m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion); 161 m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion);
@@ -442,5 +451,25 @@ namespace OpenSim.Grid.UserServer
442 m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, positionX, 451 m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, positionX,
443 positionY, positionZ, firstname, lastname); 452 positionY, positionZ, firstname, lastname);
444 } 453 }
454
455 public void HandleAgentLocation(UUID agentID, UUID regionID, ulong regionHandle)
456 {
457 m_userManager.HandleAgentLocation(agentID, regionID, regionHandle);
458 }
459
460 public void HandleAgentLeaving(UUID agentID, UUID regionID, ulong regionHandle)
461 {
462 m_userManager.HandleAgentLeaving(agentID, regionID, regionHandle);
463 }
464
465 public void HandleRegionStartup(UUID regionID)
466 {
467 m_userManager.HandleRegionStartup(regionID);
468 }
469
470 public void HandleRegionShutdown(UUID regionID)
471 {
472 m_userManager.HandleRegionShutdown(regionID);
473 }
445 } 474 }
446} 475}