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