diff options
author | Melanie Thielker | 2008-11-23 05:16:07 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-11-23 05:16:07 +0000 |
commit | cbd02218704287640ba5c7b564440a6590e038cf (patch) | |
tree | e600fd4868bce3e3d007d6d1894dd814d948692a /OpenSim/Grid/UserServer/Main.cs | |
parent | Mantis#2660. Thank you kindly, Ruud Lathrop for a patch that: (diff) | |
download | opensim-SC_OLD-cbd02218704287640ba5c7b564440a6590e038cf.zip opensim-SC_OLD-cbd02218704287640ba5c7b564440a6590e038cf.tar.gz opensim-SC_OLD-cbd02218704287640ba5c7b564440a6590e038cf.tar.bz2 opensim-SC_OLD-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 'OpenSim/Grid/UserServer/Main.cs')
-rw-r--r-- | OpenSim/Grid/UserServer/Main.cs | 29 |
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 | } |