aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/MessagingServer
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Grid/MessagingServer')
-rw-r--r--OpenSim/Grid/MessagingServer/Main.cs4
-rw-r--r--OpenSim/Grid/MessagingServer/MessageService.cs77
2 files changed, 74 insertions, 7 deletions
diff --git a/OpenSim/Grid/MessagingServer/Main.cs b/OpenSim/Grid/MessagingServer/Main.cs
index 8472571..5568f73 100644
--- a/OpenSim/Grid/MessagingServer/Main.cs
+++ b/OpenSim/Grid/MessagingServer/Main.cs
@@ -88,6 +88,10 @@ namespace OpenSim.Grid.MessagingServer
88 m_httpServer.AddXmlRPCHandler("login_to_simulator", msgsvc.UserLoggedOn); 88 m_httpServer.AddXmlRPCHandler("login_to_simulator", msgsvc.UserLoggedOn);
89 m_httpServer.AddXmlRPCHandler("logout_of_simulator", msgsvc.UserLoggedOff); 89 m_httpServer.AddXmlRPCHandler("logout_of_simulator", msgsvc.UserLoggedOff);
90 m_httpServer.AddXmlRPCHandler("get_presence_info_bulk", msgsvc.GetPresenceInfoBulk); 90 m_httpServer.AddXmlRPCHandler("get_presence_info_bulk", msgsvc.GetPresenceInfoBulk);
91 m_httpServer.AddXmlRPCHandler("region_startup", msgsvc.RegionStartup);
92 m_httpServer.AddXmlRPCHandler("region_shutdown", msgsvc.RegionShutdown);
93 m_httpServer.AddXmlRPCHandler("agent_location", msgsvc.AgentLocation);
94 m_httpServer.AddXmlRPCHandler("agent_leaving", msgsvc.AgentLeaving);
91 95
92 m_httpServer.Start(); 96 m_httpServer.Start();
93 m_log.Info("[SERVER]: Userserver registration was successful"); 97 m_log.Info("[SERVER]: Userserver registration was successful");
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs
index 66916b6..a4e54c7 100644
--- a/OpenSim/Grid/MessagingServer/MessageService.cs
+++ b/OpenSim/Grid/MessagingServer/MessageService.cs
@@ -558,24 +558,30 @@ namespace OpenSim.Grid.MessagingServer
558 558
559 public bool deregisterWithUserServer() 559 public bool deregisterWithUserServer()
560 { 560 {
561 Hashtable UserParams = new Hashtable(); 561 Hashtable request = new Hashtable();
562
563 return SendToUserServer(request, "deregister_messageserver");
564 }
565
566 public bool SendToUserServer(Hashtable request, string method)
567 {
562 // Login / Authentication 568 // Login / Authentication
563 569
564 if (m_cfg.HttpSSL) 570 if (m_cfg.HttpSSL)
565 { 571 {
566 UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; 572 request["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
567 } 573 }
568 else 574 else
569 { 575 {
570 UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; 576 request["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
571 } 577 }
572 578
573 UserParams["recvkey"] = m_cfg.UserRecvKey; 579 request["recvkey"] = m_cfg.UserRecvKey;
574 UserParams["sendkey"] = m_cfg.UserRecvKey; 580 request["sendkey"] = m_cfg.UserRecvKey;
575 581
576 // Package into an XMLRPC Request 582 // Package into an XMLRPC Request
577 ArrayList SendParams = new ArrayList(); 583 ArrayList SendParams = new ArrayList();
578 SendParams.Add(UserParams); 584 SendParams.Add(request);
579 585
580 bool success = true; 586 bool success = true;
581 string[] servers = m_cfg.UserServerURL.Split(' '); 587 string[] servers = m_cfg.UserServerURL.Split(' ');
@@ -585,7 +591,7 @@ namespace OpenSim.Grid.MessagingServer
585 { 591 {
586 try 592 try
587 { 593 {
588 XmlRpcRequest UserReq = new XmlRpcRequest("deregister_messageserver", SendParams); 594 XmlRpcRequest UserReq = new XmlRpcRequest(method, SendParams);
589 XmlRpcResponse UserResp = UserReq.Send(m_cfg.UserServerURL, 16000); 595 XmlRpcResponse UserResp = UserReq.Send(m_cfg.UserServerURL, 16000);
590 // Process Response 596 // Process Response
591 Hashtable UserRespData = (Hashtable)UserResp.Value; 597 Hashtable UserRespData = (Hashtable)UserResp.Value;
@@ -603,5 +609,62 @@ namespace OpenSim.Grid.MessagingServer
603 } 609 }
604 610
605 #endregion 611 #endregion
612
613 public XmlRpcResponse RegionStartup(XmlRpcRequest request)
614 {
615 Hashtable requestData = (Hashtable)request.Params[0];
616 Hashtable result = new Hashtable();
617 result["success"] = "FALSE";
618
619 if(SendToUserServer(requestData, "region_startup"))
620 result["success"] = "TRUE";
621
622 XmlRpcResponse response = new XmlRpcResponse();
623 response.Value = result;
624 return response;
625 }
626
627 public XmlRpcResponse RegionShutdown(XmlRpcRequest request)
628 {
629 Hashtable requestData = (Hashtable)request.Params[0];
630 Hashtable result = new Hashtable();
631 result["success"] = "FALSE";
632
633 if(SendToUserServer(requestData, "region_shutdown"))
634 result["success"] = "TRUE";
635
636 XmlRpcResponse response = new XmlRpcResponse();
637 response.Value = result;
638 return response;
639 }
640
641 public XmlRpcResponse AgentLocation(XmlRpcRequest request)
642 {
643 Hashtable requestData = (Hashtable)request.Params[0];
644 Hashtable result = new Hashtable();
645 result["success"] = "FALSE";
646
647 if(SendToUserServer(requestData, "agent_location"))
648 result["success"] = "TRUE";
649
650
651 XmlRpcResponse response = new XmlRpcResponse();
652 response.Value = result;
653 return response;
654 }
655
656 public XmlRpcResponse AgentLeaving(XmlRpcRequest request)
657 {
658 Hashtable requestData = (Hashtable)request.Params[0];
659 Hashtable result = new Hashtable();
660 result["success"] = "FALSE";
661
662 if(SendToUserServer(requestData, "agent_leaving"))
663 result["success"] = "TRUE";
664
665 XmlRpcResponse response = new XmlRpcResponse();
666 response.Value = result;
667 return response;
668 }
606 } 669 }
607} 670}