diff --git a/OpenGridServices.GridServer/GridHttp.cs b/OpenGridServices.GridServer/GridHttp.cs index 5f8bd56b5a..9e9246d148 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 192b10c0b8..8c83bbf232 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 9c128d3804..9132a54106 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 e1385f78f7..191fccbf2c 100644 --- a/OpenGridServices.UserServer/UserHttp.cs +++ b/OpenGridServices.UserServer/UserHttp.cs @@ -51,6 +51,10 @@ namespace OpenGridServices.UserServer public HttpListener Listener; public UserHTTPServer() : base( 8002 ) + { + } + + public void Start() { MainConsole.Instance.WriteLine("Starting up HTTP Server"); HTTPD = new Thread(new ThreadStart(StartHTTP)); @@ -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 bf11910b00..7c4fb6f194 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 d4519e82e2..743d1a9457 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