diff options
Diffstat (limited to 'OpenSim/Grid')
-rw-r--r-- | OpenSim/Grid/MessagingServer/Main.cs | 37 | ||||
-rw-r--r-- | OpenSim/Grid/MessagingServer/MessageService.cs | 104 | ||||
-rw-r--r-- | OpenSim/Grid/UserServer/Main.cs | 1 | ||||
-rw-r--r-- | OpenSim/Grid/UserServer/MessageServersConnector.cs | 10 | ||||
-rw-r--r-- | OpenSim/Grid/UserServer/UserLoginService.cs | 9 |
5 files changed, 146 insertions, 15 deletions
diff --git a/OpenSim/Grid/MessagingServer/Main.cs b/OpenSim/Grid/MessagingServer/Main.cs index 6ac70f0..5a383ef 100644 --- a/OpenSim/Grid/MessagingServer/Main.cs +++ b/OpenSim/Grid/MessagingServer/Main.cs | |||
@@ -44,6 +44,7 @@ namespace OpenSim.Grid.MessagingServer | |||
44 | private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | private MessageServerConfig Cfg; | 46 | private MessageServerConfig Cfg; |
47 | private MessageService msgsvc; | ||
47 | 48 | ||
48 | //public UserManager m_userManager; | 49 | //public UserManager m_userManager; |
49 | //public UserLoginService m_loginService; | 50 | //public UserLoginService m_loginService; |
@@ -57,6 +58,8 @@ namespace OpenSim.Grid.MessagingServer | |||
57 | 58 | ||
58 | m_log.Info("Launching MessagingServer..."); | 59 | m_log.Info("Launching MessagingServer..."); |
59 | 60 | ||
61 | |||
62 | |||
60 | OpenMessage_Main messageserver = new OpenMessage_Main(); | 63 | OpenMessage_Main messageserver = new OpenMessage_Main(); |
61 | 64 | ||
62 | messageserver.Startup(); | 65 | messageserver.Startup(); |
@@ -85,23 +88,32 @@ namespace OpenSim.Grid.MessagingServer | |||
85 | 88 | ||
86 | m_log.Info("[REGION]: Starting HTTP process"); | 89 | m_log.Info("[REGION]: Starting HTTP process"); |
87 | BaseHttpServer httpServer = new BaseHttpServer(Cfg.HttpPort); | 90 | BaseHttpServer httpServer = new BaseHttpServer(Cfg.HttpPort); |
91 | |||
92 | msgsvc = new MessageService(Cfg); | ||
88 | 93 | ||
89 | //httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); | 94 | if (msgsvc.registerWithUserServer()) |
95 | { | ||
96 | httpServer.AddXmlRPCHandler("login_to_simulator", msgsvc.UserLoggedOn); | ||
90 | 97 | ||
91 | //httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); | 98 | //httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); |
92 | //httpServer.AddXmlRPCHandler("get_user_by_uuid", m_userManager.XmlRPCGetUserMethodUUID); | 99 | //httpServer.AddXmlRPCHandler("get_user_by_uuid", m_userManager.XmlRPCGetUserMethodUUID); |
93 | //httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", m_userManager.XmlRPCGetAvatarPickerAvatar); | 100 | //httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", m_userManager.XmlRPCGetAvatarPickerAvatar); |
94 | //httpServer.AddXmlRPCHandler("add_new_user_friend", m_userManager.XmlRpcResponseXmlRPCAddUserFriend); | 101 | //httpServer.AddXmlRPCHandler("add_new_user_friend", m_userManager.XmlRpcResponseXmlRPCAddUserFriend); |
95 | //httpServer.AddXmlRPCHandler("remove_user_friend", m_userManager.XmlRpcResponseXmlRPCRemoveUserFriend); | 102 | //httpServer.AddXmlRPCHandler("remove_user_friend", m_userManager.XmlRpcResponseXmlRPCRemoveUserFriend); |
96 | //httpServer.AddXmlRPCHandler("update_user_friend_perms", m_userManager.XmlRpcResponseXmlRPCUpdateUserFriendPerms); | 103 | //httpServer.AddXmlRPCHandler("update_user_friend_perms", m_userManager.XmlRpcResponseXmlRPCUpdateUserFriendPerms); |
97 | //httpServer.AddXmlRPCHandler("get_user_friend_list", m_userManager.XmlRpcResponseXmlRPCGetUserFriendList); | 104 | //httpServer.AddXmlRPCHandler("get_user_friend_list", m_userManager.XmlRpcResponseXmlRPCGetUserFriendList); |
98 | |||
99 | 105 | ||
100 | //httpServer.AddStreamHandler( | 106 | |
107 | //httpServer.AddStreamHandler( | ||
101 | //new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); | 108 | //new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); |
102 | 109 | ||
103 | httpServer.Start(); | 110 | httpServer.Start(); |
104 | m_log.Info("[SERVER]: Messageserver 0.5 - Startup complete"); | 111 | m_log.Info("[SERVER]: Messageserver 0.5 - Startup complete"); |
112 | } | ||
113 | else | ||
114 | { | ||
115 | m_log.Error("[STARTUP]: Unable to connect to User Server"); | ||
116 | } | ||
105 | } | 117 | } |
106 | 118 | ||
107 | public void do_create(string what) | 119 | public void do_create(string what) |
@@ -144,6 +156,7 @@ namespace OpenSim.Grid.MessagingServer | |||
144 | break; | 156 | break; |
145 | 157 | ||
146 | case "shutdown": | 158 | case "shutdown": |
159 | msgsvc.deregisterWithUserServer(); | ||
147 | m_console.Close(); | 160 | m_console.Close(); |
148 | Environment.Exit(0); | 161 | Environment.Exit(0); |
149 | break; | 162 | break; |
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index 059a6b0..42277e2 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs | |||
@@ -333,7 +333,7 @@ namespace OpenSim.Grid.MessagingServer | |||
333 | /// <returns></returns> | 333 | /// <returns></returns> |
334 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request) | 334 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request) |
335 | { | 335 | { |
336 | 336 | m_log.Info("[LOGON]: User logged on, building indexes for user"); | |
337 | Hashtable requestData = (Hashtable)request.Params[0]; | 337 | Hashtable requestData = (Hashtable)request.Params[0]; |
338 | AgentCircuitData agentData = new AgentCircuitData(); | 338 | AgentCircuitData agentData = new AgentCircuitData(); |
339 | agentData.SessionID = new LLUUID((string)requestData["session_id"]); | 339 | agentData.SessionID = new LLUUID((string)requestData["session_id"]); |
@@ -472,6 +472,108 @@ namespace OpenSim.Grid.MessagingServer | |||
472 | 472 | ||
473 | return regionProfile; | 473 | return regionProfile; |
474 | } | 474 | } |
475 | public bool registerWithUserServer () | ||
476 | { | ||
477 | |||
478 | Hashtable UserParams = new Hashtable(); | ||
479 | // Login / Authentication | ||
480 | |||
481 | if (m_cfg.HttpSSL) | ||
482 | { | ||
483 | UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | ||
484 | } | ||
485 | else | ||
486 | { | ||
487 | UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | ||
488 | } | ||
489 | |||
490 | UserParams["recvkey"] = m_cfg.UserRecvKey; | ||
491 | UserParams["sendkey"] = m_cfg.UserRecvKey; | ||
492 | |||
493 | |||
494 | |||
495 | |||
496 | // Package into an XMLRPC Request | ||
497 | ArrayList SendParams = new ArrayList(); | ||
498 | SendParams.Add(UserParams); | ||
499 | |||
500 | // Send Request | ||
501 | XmlRpcRequest UserReq; | ||
502 | XmlRpcResponse UserResp; | ||
503 | try | ||
504 | { | ||
505 | UserReq = new XmlRpcRequest("register_messageserver", SendParams); | ||
506 | UserResp = UserReq.Send(m_cfg.UserServerURL, 16000); | ||
507 | } catch (Exception ex) | ||
508 | { | ||
509 | m_log.Error("Unable to connect to grid. Grid server not running?"); | ||
510 | throw(ex); | ||
511 | } | ||
512 | Hashtable GridRespData = (Hashtable)UserResp.Value; | ||
513 | Hashtable griddatahash = GridRespData; | ||
514 | |||
515 | // Process Response | ||
516 | if (GridRespData.ContainsKey("responsestring")) | ||
517 | { | ||
518 | return true; | ||
519 | } | ||
520 | else | ||
521 | { | ||
522 | return false; | ||
523 | } | ||
524 | |||
525 | |||
526 | } | ||
527 | public bool deregisterWithUserServer() | ||
528 | { | ||
529 | |||
530 | Hashtable UserParams = new Hashtable(); | ||
531 | // Login / Authentication | ||
532 | |||
533 | if (m_cfg.HttpSSL) | ||
534 | { | ||
535 | UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | ||
536 | } | ||
537 | else | ||
538 | { | ||
539 | UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | ||
540 | } | ||
541 | |||
542 | UserParams["recvkey"] = m_cfg.UserRecvKey; | ||
543 | UserParams["sendkey"] = m_cfg.UserRecvKey; | ||
544 | |||
545 | // Package into an XMLRPC Request | ||
546 | ArrayList SendParams = new ArrayList(); | ||
547 | SendParams.Add(UserParams); | ||
548 | |||
549 | // Send Request | ||
550 | XmlRpcRequest UserReq; | ||
551 | XmlRpcResponse UserResp; | ||
552 | try | ||
553 | { | ||
554 | UserReq = new XmlRpcRequest("deregister_messageserver", SendParams); | ||
555 | UserResp = UserReq.Send(m_cfg.UserServerURL, 16000); | ||
556 | } | ||
557 | catch (Exception ex) | ||
558 | { | ||
559 | m_log.Error("Unable to connect to grid. Grid server not running?"); | ||
560 | throw (ex); | ||
561 | } | ||
562 | Hashtable UserRespData = (Hashtable)UserResp.Value; | ||
563 | Hashtable userdatahash = UserRespData; | ||
564 | |||
565 | // Process Response | ||
566 | if (UserRespData.ContainsKey("responsestring")) | ||
567 | { | ||
568 | return true; | ||
569 | } | ||
570 | else | ||
571 | { | ||
572 | return false; | ||
573 | } | ||
574 | |||
575 | |||
576 | } | ||
475 | #endregion | 577 | #endregion |
476 | } | 578 | } |
477 | 579 | ||
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 3500665..3a3b8b6 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs | |||
@@ -227,6 +227,7 @@ namespace OpenSim.Grid.UserServer | |||
227 | 227 | ||
228 | public void NotifyMessageServersUserLoggedInToLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, ulong regionhandle, LLVector3 Position) | 228 | public void NotifyMessageServersUserLoggedInToLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, ulong regionhandle, LLVector3 Position) |
229 | { | 229 | { |
230 | |||
230 | m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, Position); | 231 | m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, Position); |
231 | } | 232 | } |
232 | 233 | ||
diff --git a/OpenSim/Grid/UserServer/MessageServersConnector.cs b/OpenSim/Grid/UserServer/MessageServersConnector.cs index 251644b..6535247 100644 --- a/OpenSim/Grid/UserServer/MessageServersConnector.cs +++ b/OpenSim/Grid/UserServer/MessageServersConnector.cs | |||
@@ -119,7 +119,7 @@ namespace OpenSim.Grid.UserServer | |||
119 | 119 | ||
120 | if (requestData.Contains("uri")) | 120 | if (requestData.Contains("uri")) |
121 | { | 121 | { |
122 | string URI = (string)requestData["URI"]; | 122 | string URI = (string)requestData["uri"]; |
123 | 123 | ||
124 | DeRegisterMessageServer(URI); | 124 | DeRegisterMessageServer(URI); |
125 | responseData["responsestring"] = "TRUE"; | 125 | responseData["responsestring"] = "TRUE"; |
@@ -153,6 +153,14 @@ namespace OpenSim.Grid.UserServer | |||
153 | public void TellMessageServersAboutUser(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, ulong regionhandle, LLVector3 Position) | 153 | public void TellMessageServersAboutUser(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, ulong regionhandle, LLVector3 Position) |
154 | { | 154 | { |
155 | // Loop over registered Message Servers ( AND THERE WILL BE MORE THEN ONE :D ) | 155 | // Loop over registered Message Servers ( AND THERE WILL BE MORE THEN ONE :D ) |
156 | if (MessageServers.Count > 0) | ||
157 | { | ||
158 | m_log.Info("[MSGCONNECTOR]: Sending login notice to registered message servers"); | ||
159 | } | ||
160 | else | ||
161 | { | ||
162 | m_log.Info("[MSGCONNECTOR]: No Message Servers registered, ignoring"); | ||
163 | } | ||
156 | foreach (MessageServerInfo serv in MessageServers.Values) | 164 | foreach (MessageServerInfo serv in MessageServers.Values) |
157 | { | 165 | { |
158 | NotifyMessageServerAboutUser(serv, agentID, sessionID, RegionID, regionhandle, Position); | 166 | NotifyMessageServerAboutUser(serv, agentID, sessionID, RegionID, regionhandle, Position); |
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 80899e8..a82b978 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -144,7 +144,13 @@ namespace OpenSim.Grid.UserServer | |||
144 | m_log.ErrorFormat( | 144 | m_log.ErrorFormat( |
145 | "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}", | 145 | "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}", |
146 | SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString); | 146 | SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString); |
147 | } | 147 | } |
148 | handler001 = OnUserLoggedInAtLocation; | ||
149 | if (handler001 != null) | ||
150 | { | ||
151 | m_log.Info("[LOGIN]: Letting other objects know about login"); | ||
152 | handler001(theUser.UUID, theUser.currentAgent.sessionID, theUser.currentAgent.currentRegion, theUser.currentAgent.currentHandle, theUser.currentAgent.currentPos); | ||
153 | } | ||
148 | } | 154 | } |
149 | catch (Exception) | 155 | catch (Exception) |
150 | { | 156 | { |
@@ -219,6 +225,7 @@ namespace OpenSim.Grid.UserServer | |||
219 | handler001 = OnUserLoggedInAtLocation; | 225 | handler001 = OnUserLoggedInAtLocation; |
220 | if (handler001 != null) | 226 | if (handler001 != null) |
221 | { | 227 | { |
228 | m_log.Info("[LOGIN]: Letting other objects know about login"); | ||
222 | handler001(theUser.UUID, theUser.currentAgent.sessionID, theUser.currentAgent.currentRegion, theUser.currentAgent.currentHandle, theUser.currentAgent.currentPos); | 229 | handler001(theUser.UUID, theUser.currentAgent.sessionID, theUser.currentAgent.currentRegion, theUser.currentAgent.currentHandle, theUser.currentAgent.currentPos); |
223 | } | 230 | } |
224 | } | 231 | } |