From 08d5d10d62df2c1c418e7a39cadb6662ea66b228 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 11 Apr 2007 14:14:19 +0000 Subject: * Started on converting UserHTTPServer to BaseHttpServer * Added a 'param' param to the RestMethod * Added RestHandlerEntry to store more info about the 'rest' handler --- OpenGridServices.GridServer/GridHttp.cs | 13 +- OpenGridServices.GridServer/Main.cs | 1 + OpenGridServices.UserServer/Main.cs | 6 + OpenGridServices.UserServer/UserHttp.cs | 20 +-- OpenSim.Framework/UserProfileManager.cs | 16 ++ OpenSim.RegionServer/CAPS/AdminWebFront.cs | 26 ++-- OpenSim.RegionServer/OpenSimMain.cs | 2 +- OpenSim.Servers/BaseHttpServer.cs | 36 ++++- OpenSim.Servers/IRestHandler.cs | 2 +- OpenSim.sln | 228 ++++++++++++----------------- 10 files changed, 178 insertions(+), 172 deletions(-) diff --git a/OpenGridServices.GridServer/GridHttp.cs b/OpenGridServices.GridServer/GridHttp.cs index 5f8bd56..9e9246d 100644 --- a/OpenGridServices.GridServer/GridHttp.cs +++ b/OpenGridServices.GridServer/GridHttp.cs @@ -49,12 +49,17 @@ namespace OpenGridServices.GridServer public HttpListener Listener; public GridHTTPServer() : base( 8001 ) { - MainConsole.Instance.WriteLine("Starting up HTTP Server"); - HTTPD = new Thread(new ThreadStart(StartHTTP)); - HTTPD.Start(); + Start(); } - public void StartHTTP() { + public void Start() + { + MainConsole.Instance.WriteLine("Starting up HTTP Server"); + HTTPD = new Thread(new ThreadStart(StartHTTP)); + HTTPD.Start(); + } + + public void StartHTTP() { MainConsole.Instance.WriteLine("GridHttp.cs:StartHTTP() - Spawned main thread OK"); Listener = new HttpListener(); diff --git a/OpenGridServices.GridServer/Main.cs b/OpenGridServices.GridServer/Main.cs index 192b10c..8c83bbf 100644 --- a/OpenGridServices.GridServer/Main.cs +++ b/OpenGridServices.GridServer/Main.cs @@ -105,6 +105,7 @@ namespace OpenGridServices.GridServer m_console.WriteLine("Main.cs:Startup() - Starting HTTP process"); _httpd = new GridHTTPServer(); + _httpd.Start(); m_console.WriteLine("Main.cs:Startup() - Starting sim status checker"); SimCheckTimer = new Timer(); diff --git a/OpenGridServices.UserServer/Main.cs b/OpenGridServices.UserServer/Main.cs index 9c128d3..9132a54 100644 --- a/OpenGridServices.UserServer/Main.cs +++ b/OpenGridServices.UserServer/Main.cs @@ -97,6 +97,12 @@ namespace OpenGridServices.UserServer MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process"); _httpd = new UserHTTPServer(); + + _httpd.AddXmlRPCHandler("login_to_simulator", _profilemanager.XmlRpcLoginMethod); + _httpd.AddRestHandler( "DELETE", "/usersessions/", _profilemanager.RestDeleteUserSessionMethod ); + + _httpd.Start(); + } diff --git a/OpenGridServices.UserServer/UserHttp.cs b/OpenGridServices.UserServer/UserHttp.cs index e1385f7..191fccb 100644 --- a/OpenGridServices.UserServer/UserHttp.cs +++ b/OpenGridServices.UserServer/UserHttp.cs @@ -52,6 +52,10 @@ namespace OpenGridServices.UserServer public UserHTTPServer() : base( 8002 ) { + } + + public void Start() + { MainConsole.Instance.WriteLine("Starting up HTTP Server"); HTTPD = new Thread(new ThreadStart(StartHTTP)); HTTPD.Start(); @@ -89,21 +93,13 @@ namespace OpenGridServices.UserServer switch (req_type) { case "usersessions": - LLUUID sessionid = new LLUUID(rest_params[2]); // get usersessions/sessionid + string param = rest_params[2]; + string result = ""; if (www_req.HttpMethod == "DELETE") { - foreach (libsecondlife.LLUUID UUID in OpenUser_Main.userserver._profilemanager.UserProfiles.Keys) - { - if (OpenUser_Main.userserver._profilemanager.UserProfiles[UUID].CurrentSessionID == sessionid) - { - OpenUser_Main.userserver._profilemanager.UserProfiles[UUID].CurrentSessionID = null; - OpenUser_Main.userserver._profilemanager.UserProfiles[UUID].CurrentSecureSessionID = null; - OpenUser_Main.userserver._profilemanager.UserProfiles[UUID].Circuits.Clear(); - } - } - + result = OpenUser_Main.userserver._profilemanager.RestDeleteUserSessionMethod( null, null, param ); } - return "OK"; + return result; } return ""; diff --git a/OpenSim.Framework/UserProfileManager.cs b/OpenSim.Framework/UserProfileManager.cs index bf11910..7c4fb6f 100644 --- a/OpenSim.Framework/UserProfileManager.cs +++ b/OpenSim.Framework/UserProfileManager.cs @@ -48,6 +48,22 @@ namespace OpenSim.Framework.User return ""; } + public string RestDeleteUserSessionMethod( string request, string path, string param ) + { + LLUUID sessionid = new LLUUID(param); // get usersessions/sessionid + foreach (libsecondlife.LLUUID UUID in UserProfiles.Keys) + { + if ( UserProfiles[UUID].CurrentSessionID == sessionid) + { + UserProfiles[UUID].CurrentSessionID = null; + UserProfiles[UUID].CurrentSecureSessionID = null; + UserProfiles[UUID].Circuits.Clear(); + } + } + + return "OK"; + } + public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) { XmlRpcResponse response = new XmlRpcResponse(); diff --git a/OpenSim.RegionServer/CAPS/AdminWebFront.cs b/OpenSim.RegionServer/CAPS/AdminWebFront.cs index d4519e8..743d1a9 100644 --- a/OpenSim.RegionServer/CAPS/AdminWebFront.cs +++ b/OpenSim.RegionServer/CAPS/AdminWebFront.cs @@ -48,7 +48,7 @@ namespace OpenSim.CAPS server.AddRestHandler("POST", "/Admin/Login", PostLogin ); } - private string GetWelcomePage(string request, string path) + private string GetWelcomePage(string request, string path, string param) { string responseString; responseString = "Welcome to the OpenSim Admin Page"; @@ -56,7 +56,7 @@ namespace OpenSim.CAPS return responseString; } - private string PostLogin(string requestBody, string path) + private string PostLogin(string requestBody, string path, string param) { string responseString; // Console.WriteLine(requestBody); @@ -73,7 +73,7 @@ namespace OpenSim.CAPS return responseString; } - private string PostNewAccount(string requestBody, string path) + private string PostNewAccount(string requestBody, string path, string param) { string responseString; string firstName = ""; @@ -122,7 +122,7 @@ namespace OpenSim.CAPS return responseString; } - private string GetConnectedClientsPage(string request, string path) + private string GetConnectedClientsPage(string request, string path, string param) { string responseString; responseString = "

Listing connected Clients

"; @@ -140,7 +140,7 @@ namespace OpenSim.CAPS return responseString; } - private string AddTestScript(string request, string path) + private string AddTestScript(string request, string path, string param) { int index = path.LastIndexOf('/'); @@ -159,13 +159,13 @@ namespace OpenSim.CAPS return String.Format("Couldn't parse [{0}]", lluidStr ); } } - - private string GetScriptsPage(string request, string path) + + private string GetScriptsPage(string request, string path, string param) { return String.Empty; } - - private string GetEntitiesPage(string request, string path) + + private string GetEntitiesPage(string request, string path, string param) { string responseString; responseString = "

Listing current entities