From 1a28ef6292a152a69d0f53803daacc7dad522cea Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 11 Apr 2007 20:07:58 +0000 Subject: * Replaced GridHTTPServer and UserHTTPServer with BaseHttpServer * Now dumping default value in config. * --- OpenGridServices.UserServer/Main.cs | 206 ++++++++++----------- .../OpenGridServices.UserServer.csproj | 3 - .../OpenGridServices.UserServer.exe.build | 1 - OpenGridServices.UserServer/UserHttp.cs | 154 --------------- 4 files changed, 103 insertions(+), 261 deletions(-) delete mode 100644 OpenGridServices.UserServer/UserHttp.cs (limited to 'OpenGridServices.UserServer') diff --git a/OpenGridServices.UserServer/Main.cs b/OpenGridServices.UserServer/Main.cs index 9132a54..c348a74 100644 --- a/OpenGridServices.UserServer/Main.cs +++ b/OpenGridServices.UserServer/Main.cs @@ -39,126 +39,126 @@ using OpenSim.Framework.Sims; using OpenSim.Framework.Inventory; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Console; +using OpenSim.Servers; namespace OpenGridServices.UserServer { - /// - /// - public class OpenUser_Main : conscmd_callback - { - private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll"; - private UserConfig Cfg; - - public static OpenUser_Main userserver; - - public UserHTTPServer _httpd; - public UserProfileManager _profilemanager; - - public Dictionary UserSessions = new Dictionary(); - - ConsoleBase m_console; - - [STAThread] - public static void Main( string[] args ) - { - Console.WriteLine("Starting...\n"); - - userserver = new OpenUser_Main(); - userserver.Startup(); - - userserver.Work(); - } - - private OpenUser_Main() - { - m_console = new ConsoleBase("opengrid-userserver-console.log", "OpenUser", this); - MainConsole.Instance = m_console; + /// + /// + public class OpenUser_Main : BaseServer, conscmd_callback + { + private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll"; + private UserConfig Cfg; + + private UserProfileManager m_userProfileManager; + + public Dictionary UserSessions = new Dictionary(); + + ConsoleBase m_console; + + [STAThread] + public static void Main(string[] args) + { + Console.WriteLine("Starting...\n"); + + OpenUser_Main userserver = new OpenUser_Main(); + userserver.Startup(); + userserver.Work(); + } + + private OpenUser_Main() + { + m_console = new ConsoleBase("opengrid-userserver-console.log", "OpenUser", this); + MainConsole.Instance = m_console; + } + + private void Work() + { + m_console.WriteLine("\nEnter help for a list of commands\n"); + + while (true) + { + m_console.MainConsolePrompt(); + } + } + + public void Startup() + { + MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); + Cfg = this.LoadConfigDll(this.ConfigDll); + Cfg.InitConfig(); + + MainConsole.Instance.WriteLine("Main.cs:Startup() - Creating user profile manager"); + m_userProfileManager = new UserProfileManager(); + m_userProfileManager.InitUserProfiles(); + m_userProfileManager.SetKeys(Cfg.GridSendKey, Cfg.GridRecvKey, Cfg.GridServerURL, Cfg.DefaultStartupMsg); + + MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process"); + BaseHttpServer httpServer = new BaseHttpServer(8002); + + httpServer.AddXmlRPCHandler("login_to_simulator", m_userProfileManager.XmlRpcLoginMethod); + httpServer.AddRestHandler("DELETE", "/usersessions/", m_userProfileManager.RestDeleteUserSessionMethod); + + // I guess that this was never used? + //Listener.Prefixes.Add("http://+:8002/userserver/"); + + httpServer.Start(); + } + + + public void do_create(string what) + { + switch (what) + { + case "user": + m_console.WriteLine("Creating new user profile"); + string tempfirstname; + string templastname; + string tempMD5Passwd; + + tempfirstname = m_console.CmdPrompt("First name"); + templastname = m_console.CmdPrompt("Last name"); + tempMD5Passwd = m_console.PasswdPrompt("Password"); + + System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider(); + byte[] bs = System.Text.Encoding.UTF8.GetBytes(tempMD5Passwd); + bs = x.ComputeHash(bs); + System.Text.StringBuilder s = new System.Text.StringBuilder(); + foreach (byte b in bs) + { + s.Append(b.ToString("x2").ToLower()); + } + tempMD5Passwd = s.ToString(); + + UserProfile newuser = m_userProfileManager.CreateNewProfile(tempfirstname, templastname, tempMD5Passwd); + newuser.homelookat = new LLVector3(-0.57343f, -0.819255f, 0f); + newuser.homepos = new LLVector3(128f, 128f, 23f); + m_userProfileManager.SaveUserProfiles(); + break; } - - private void Work() - { - m_console.WriteLine("\nEnter help for a list of commands\n"); - - while (true) - { - m_console.MainConsolePrompt(); - } - } - - public void Startup() { - MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); - Cfg = this.LoadConfigDll(this.ConfigDll); - Cfg.InitConfig(); - - MainConsole.Instance.WriteLine("Main.cs:Startup() - Creating user profile manager"); - _profilemanager = new UserProfileManager(); - _profilemanager.InitUserProfiles(); - _profilemanager.SetKeys(Cfg.GridSendKey, Cfg.GridRecvKey, Cfg.GridServerURL, Cfg.DefaultStartupMsg); - - 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(); - - } - - - public void do_create(string what) - { - switch(what) - { - case "user": - m_console.WriteLine("Creating new user profile"); - string tempfirstname; - string templastname; - string tempMD5Passwd; - - tempfirstname=m_console.CmdPrompt("First name: "); - templastname=m_console.CmdPrompt("Last name: "); - tempMD5Passwd=m_console.PasswdPrompt("Password: "); - - System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider(); - byte[] bs = System.Text.Encoding.UTF8.GetBytes(tempMD5Passwd); - bs = x.ComputeHash(bs); - System.Text.StringBuilder s = new System.Text.StringBuilder(); - foreach (byte b in bs) - { - s.Append(b.ToString("x2").ToLower()); - } - tempMD5Passwd = s.ToString(); - - UserProfile newuser=_profilemanager.CreateNewProfile(tempfirstname,templastname,tempMD5Passwd); - newuser.homelookat = new LLVector3(-0.57343f, -0.819255f, 0f); - newuser.homepos = new LLVector3(128f,128f,23f); - _profilemanager.SaveUserProfiles(); - break; - } - } - + } + public void RunCmd(string cmd, string[] cmdparams) { switch (cmd) { case "help": m_console.WriteLine("create user - create a new user"); - m_console.WriteLine("shutdown - shutdown the grid (USE CAUTION!)"); + m_console.WriteLine("shutdown - shutdown the grid (USE CAUTION!)"); break; case "create": - do_create(cmdparams[0]); - break; + do_create(cmdparams[0]); + break; - case "shutdown": + case "shutdown": m_console.Close(); - Environment.Exit(0); + Environment.Exit(0); break; } } - private UserConfig LoadConfigDll(string dllName) + private UserConfig LoadConfigDll(string dllName) { Assembly pluginAssembly = Assembly.LoadFrom(dllName); UserConfig config = null; @@ -185,9 +185,9 @@ namespace OpenGridServices.UserServer pluginAssembly = null; return config; } - + public void Show(string ShowWhat) { } - } + } } diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj index a9b7185..fcf6362 100644 --- a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj +++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj @@ -103,9 +103,6 @@ Code - - Code - Code diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build index a4bccb8..6319d9e 100644 --- a/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build +++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build @@ -12,7 +12,6 @@ - diff --git a/OpenGridServices.UserServer/UserHttp.cs b/OpenGridServices.UserServer/UserHttp.cs deleted file mode 100644 index 191fccb..0000000 --- a/OpenGridServices.UserServer/UserHttp.cs +++ /dev/null @@ -1,154 +0,0 @@ -/* -Copyright (c) OpenGrid project, http://osgrid.org/ - - -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -using System; -using System.Text; -using Nwc.XmlRpc; -using System.Threading; -using System.Text.RegularExpressions; -using System.Net; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using libsecondlife; -using OpenSim.Framework.User; -using OpenSim.Framework.Sims; -using OpenSim.Framework.Inventory; -using OpenSim.Framework.Console; -using OpenSim.Servers; - -namespace OpenGridServices.UserServer -{ - public class UserHTTPServer : BaseHttpServer - { - public Thread HTTPD; - public HttpListener Listener; - - public UserHTTPServer() : base( 8002 ) - { - } - - public void Start() - { - MainConsole.Instance.WriteLine("Starting up HTTP Server"); - HTTPD = new Thread(new ThreadStart(StartHTTP)); - HTTPD.Start(); - } - - public void StartHTTP() - { - MainConsole.Instance.WriteLine("UserHttp.cs:StartHTTP() - Spawned main thread OK"); - Listener = new HttpListener(); - - Listener.Prefixes.Add("http://+:8002/userserver/"); - Listener.Prefixes.Add("http://+:8002/usersessions/"); - Listener.Start(); - - HttpListenerContext context; - while (true) - { - context = Listener.GetContext(); - ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context); - } - } - - static string ParseXMLRPC(string requestBody) - { - return OpenUser_Main.userserver._profilemanager.ParseXMLRPC(requestBody); - } - - static string ParseREST(HttpListenerRequest www_req) - { - Console.WriteLine("INCOMING REST - " + www_req.RawUrl); - - char[] splitter = { '/' }; - string[] rest_params = www_req.RawUrl.Split(splitter); - string req_type = rest_params[1]; // First part of the URL is the type of request - usersessions/userprofiles/inventory/blabla - switch (req_type) - { - case "usersessions": - string param = rest_params[2]; - string result = ""; - if (www_req.HttpMethod == "DELETE") - { - result = OpenUser_Main.userserver._profilemanager.RestDeleteUserSessionMethod( null, null, param ); - } - return result; - } - - return ""; - } - - - static void HandleRequest(Object stateinfo) - { - HttpListenerContext context = (HttpListenerContext)stateinfo; - - HttpListenerRequest request = context.Request; - HttpListenerResponse response = context.Response; - - response.KeepAlive = false; - response.SendChunked = false; - - System.IO.Stream body = request.InputStream; - System.Text.Encoding encoding = System.Text.Encoding.UTF8; - System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding); - - string requestBody = reader.ReadToEnd(); - body.Close(); - reader.Close(); - - string responseString = ""; - switch (request.ContentType) - { - case "text/xml": - // must be XML-RPC, so pass to the XML-RPC parser - - responseString = ParseXMLRPC(requestBody); - response.AddHeader("Content-type", "text/xml"); - break; - - case "text/plaintext": - responseString = ParseREST(request); - response.AddHeader("Content-type", "text/plaintext"); - break; - } - - - byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); - System.IO.Stream output = response.OutputStream; - response.SendChunked = false; - response.ContentLength64 = buffer.Length; - output.Write(buffer, 0, buffer.Length); - output.Close(); - } - } - - -} -- cgit v1.1