diff --git a/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build b/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build
new file mode 100644
index 0000000000..2e6ec3e559
--- /dev/null
+++ b/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenGridServices.ServerConsole/Properties/AssemblyInfo.cs b/OpenGridServices.ServerConsole/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..0028e2a34f
--- /dev/null
+++ b/OpenGridServices.ServerConsole/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ServerConsole")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ServerConsole")]
+[assembly: AssemblyCopyright("Copyright © 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c4d85def-4c2e-449d-bf4a-449b8cf03736")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenGridServices.ServerConsole/ServerConsole.cs b/OpenGridServices.ServerConsole/ServerConsole.cs
new file mode 100644
index 0000000000..d50a7e2b56
--- /dev/null
+++ b/OpenGridServices.ServerConsole/ServerConsole.cs
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) OpenSim project, http://sim.opensecondlife.org/
+*
+* 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;
+
+namespace ServerConsole
+{
+ public class MainConsole {
+
+ private static ConsoleBase instance;
+
+ public static ConsoleBase Instance
+ {
+ get
+ {
+ return instance;
+ }
+ set
+ {
+ instance = value;
+ }
+ }
+
+ public MainConsole()
+ {
+
+ }
+ }
+
+ public abstract class conscmd_callback {
+ public abstract void RunCmd(string cmd, string[] cmdparams);
+ public abstract void Show(string ShowWhat);
+ }
+
+ public abstract class ConsoleBase
+ {
+
+ public enum ConsoleType {
+ Local, // Use stdio
+ TCP, // Use TCP/telnet
+ SimChat // Use in-world chat (for gods)
+ }
+
+ public abstract void Close();
+
+ // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here
+ public abstract void WriteLine(string Line) ;
+
+ public abstract string ReadLine();
+
+ public abstract int Read() ;
+
+ public abstract void Write(string Line) ;
+
+ public abstract string PasswdPrompt(string prompt);
+
+ // Displays a command prompt and waits for the user to enter a string, then returns that string
+ public abstract string CmdPrompt(string prompt) ;
+
+ // Displays a command prompt and returns a default value if the user simply presses enter
+ public abstract string CmdPrompt(string prompt, string defaultresponse);
+
+ // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
+ public abstract string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB) ;
+
+ // Runs a command with a number of parameters
+ public abstract Object RunCmd(string Cmd, string[] cmdparams) ;
+
+ // Shows data about something
+ public abstract void ShowCommands(string ShowWhat) ;
+
+ // Displays a prompt to the user and then runs the command they entered
+ public abstract void MainConsolePrompt() ;
+ }
+}
diff --git a/OpenGridServices.ServerConsole/ServerConsole.csproj b/OpenGridServices.ServerConsole/ServerConsole.csproj
new file mode 100644
index 0000000000..d23ca524e1
--- /dev/null
+++ b/OpenGridServices.ServerConsole/ServerConsole.csproj
@@ -0,0 +1,40 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {7667E6E2-F227-41A2-B1B2-315613E1BAFC}
+ Library
+ Properties
+ ServerConsole
+ ServerConsole
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\common\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OpenGridServices.ServerConsole/default.build b/OpenGridServices.ServerConsole/default.build
new file mode 100644
index 0000000000..64a4f04ed7
--- /dev/null
+++ b/OpenGridServices.ServerConsole/default.build
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenGridServices.UserServer/ConsoleCmds.cs b/OpenGridServices.UserServer/ConsoleCmds.cs
new file mode 100644
index 0000000000..f2568fc15c
--- /dev/null
+++ b/OpenGridServices.UserServer/ConsoleCmds.cs
@@ -0,0 +1,57 @@
+/*
+Copyright (c) OpenSim 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 ServerConsole;
+
+namespace OpenGridServices
+{
+
+ public class UserConsole : conscmd_callback {
+ public UserConsole() { }
+
+ public override void RunCmd(string cmd, string[] cmdparams) {
+ switch(cmd) {
+ case "help":
+ ServerConsole.MainConsole.Instance.WriteLine("shutdown - shutdown the user server (USE CAUTION!)"
+);
+ break;
+
+ case "shutdown":
+ ServerConsole.MainConsole.Instance.Close();
+ Environment.Exit(0);
+ break;
+ }
+ }
+
+ public override void Show(string ShowWhat) {
+ }
+ }
+}
diff --git a/OpenGridServices.UserServer/Main.cs b/OpenGridServices.UserServer/Main.cs
new file mode 100644
index 0000000000..d27f34e8ce
--- /dev/null
+++ b/OpenGridServices.UserServer/Main.cs
@@ -0,0 +1,259 @@
+/*
+Copyright (c) OpenSim 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.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using libsecondlife;
+using ServerConsole;
+using OpenSim.Framework.User;
+using OpenSim.Framework.Sims;
+using OpenSim.Framework.Inventory;
+
+namespace OpenGridServices
+{
+ ///
+ ///
+ public class OpenUser_Main
+ {
+
+ public static OpenUser_Main userserver;
+
+ public UserHTTPServer _httpd;
+ public UserProfileManager _profilemanager;
+ public UserProfile GridGod;
+ public string DefaultStartupMsg;
+ public string GridURL;
+ public string GridSendKey;
+ public string GridRecvKey;
+
+ public Dictionary UserSessions = new Dictionary();
+
+ [STAThread]
+ public static void Main( string[] args )
+ {
+ Console.WriteLine("Starting...\n");
+ ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local, "", 0, "opengrid-console.log", "OpenUser", new UserConsole());
+
+ userserver = new OpenUser_Main();
+ userserver.Startup();
+
+ ServerConsole.MainConsole.Instance.WriteLine("\nEnter help for a list of commands\n");
+
+ while(true) {
+ ServerConsole.MainConsole.Instance.MainConsolePrompt();
+ }
+ }
+
+ public void Startup() {
+ ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Please press enter to retain default settings");
+
+ this.GridURL=ServerConsole.MainConsole.Instance.CmdPrompt("Grid URL: ");
+ this.GridSendKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to send to grid: ");
+ this.GridRecvKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to expect from grid: ");
+
+ this.DefaultStartupMsg=ServerConsole.MainConsole.Instance.CmdPrompt("Default startup message for clients [Welcome to OGS!] :","Welcome to OGS!");
+
+ ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Creating user profile manager");
+ _profilemanager = new UserProfileManager();
+ _profilemanager.InitUserProfiles();
+ _profilemanager.SetKeys(GridSendKey, GridRecvKey, GridURL, DefaultStartupMsg);
+
+
+ string tempfirstname;
+ string templastname;
+ string tempMD5Passwd;
+ ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Please configure the grid god user:");
+ tempfirstname=ServerConsole.MainConsole.Instance.CmdPrompt("First name: ");
+ templastname=ServerConsole.MainConsole.Instance.CmdPrompt("Last name: ");
+ tempMD5Passwd=ServerConsole.MainConsole.Instance.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 = "$1$" + s.ToString();
+
+ GridGod=_profilemanager.CreateNewProfile(tempfirstname,templastname,tempMD5Passwd);
+ _profilemanager.SetGod(GridGod.UUID);
+ GridGod.homelookat = new LLVector3(-0.57343f, -0.819255f, 0f);
+ GridGod.homepos = new LLVector3(128f,128f,23f);
+
+ ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process");
+ _httpd = new UserHTTPServer();
+ }
+ }
+
+ public class MServerConsole : ConsoleBase
+ {
+
+ private ConsoleType ConsType;
+ StreamWriter Log;
+ public conscmd_callback cmdparser;
+ public string componentname;
+
+ // STUPID HACK ALERT!!!! STUPID HACK ALERT!!!!!
+ // constype - the type of console to use (see enum ConsoleType)
+ // sparam - depending on the console type:
+ // TCP - the IP to bind to (127.0.0.1 if blank)
+ // Local - param ignored
+ // and for the iparam:
+ // TCP - the port to bind to
+ // Local - param ignored
+ // LogFile - duh
+ // componentname - which component of the OGS system? (user, asset etc)
+ // cmdparser - a reference to a conscmd_callback object
+
+ public MServerConsole(ConsoleType constype, string sparam, int iparam, string LogFile, string componentname, conscmd_callback cmdparser) {
+ ConsType = constype;
+ this.componentname = componentname;
+ this.cmdparser = cmdparser;
+ switch(constype) {
+ case ConsoleType.Local:
+ Console.WriteLine("ServerConsole.cs - creating new local console");
+ Console.WriteLine("Logs will be saved to current directory in " + LogFile);
+ Log=File.AppendText(LogFile);
+ Log.WriteLine("========================================================================");
+ Log.WriteLine(componentname + " Started at " + DateTime.Now.ToString());
+ break;
+
+ case ConsoleType.TCP:
+ break;
+
+ default:
+ Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!");
+ break;
+ }
+ }
+
+ public override void Close() {
+ Log.WriteLine("Shutdown at " + DateTime.Now.ToString());
+ Log.Close();
+ }
+
+ // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here
+ public override void WriteLine(string Line) {
+ Log.WriteLine(Line);
+ Console.WriteLine(Line);
+ return;
+ }
+
+ public override string ReadLine() {
+ string TempStr=Console.ReadLine();
+ Log.WriteLine(TempStr);
+ return TempStr;
+ }
+
+ public override int Read() {
+ int TempInt= Console.Read();
+ Log.Write((char)TempInt);
+ return TempInt;
+ }
+
+ public override void Write(string Line) {
+ Console.Write(Line);
+ Log.Write(Line);
+ return;
+ }
+
+
+ // Displays a prompt and waits for the user to enter a string, then returns that string
+ // Done with no echo and suitable for passwords
+ public override string PasswdPrompt(string prompt) {
+ // FIXME: Needs to be better abstracted
+ Log.WriteLine(prompt);
+ this.Write(prompt);
+ ConsoleColor oldfg=Console.ForegroundColor;
+ Console.ForegroundColor=Console.BackgroundColor;
+ string temp=Console.ReadLine();
+ Console.ForegroundColor=oldfg;
+ return temp;
+ }
+
+ // Displays a command prompt and waits for the user to enter a string, then returns that string
+ public override string CmdPrompt(string prompt) {
+ this.Write(prompt);
+ return this.ReadLine();
+ }
+
+ // Displays a command prompt and returns a default value if the user simply presses enter
+ public override string CmdPrompt(string prompt, string defaultresponse) {
+ string temp=CmdPrompt(prompt);
+ if(temp=="") {
+ return defaultresponse;
+ } else {
+ return temp;
+ }
+ }
+
+ // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
+ public override string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB) {
+ bool itisdone=false;
+ string temp=CmdPrompt(prompt,defaultresponse);
+ while(itisdone==false) {
+ if((temp==OptionA) || (temp==OptionB)) {
+ itisdone=true;
+ } else {
+ this.WriteLine("Valid options are " + OptionA + " or " + OptionB);
+ temp=CmdPrompt(prompt,defaultresponse);
+ }
+ }
+ return temp;
+ }
+
+ // Runs a command with a number of parameters
+ public override Object RunCmd(string Cmd, string[] cmdparams) {
+ cmdparser.RunCmd(Cmd, cmdparams);
+ return null;
+ }
+
+ // Shows data about something
+ public override void ShowCommands(string ShowWhat) {
+ cmdparser.Show(ShowWhat);
+ }
+
+ public override void MainConsolePrompt() {
+ string[] tempstrarray;
+ string tempstr = this.CmdPrompt(this.componentname + "# ");
+ tempstrarray = tempstr.Split(' ');
+ string cmd=tempstrarray[0];
+ Array.Reverse(tempstrarray);
+ Array.Resize(ref tempstrarray,tempstrarray.Length-1);
+ Array.Reverse(tempstrarray);
+ string[] cmdparams=(string[])tempstrarray;
+ RunCmd(cmd,cmdparams);
+ }
+ }
+}
diff --git a/OpenGridServices.UserServer/OGS-UserServer.csproj b/OpenGridServices.UserServer/OGS-UserServer.csproj
new file mode 100644
index 0000000000..f4fa8b6403
--- /dev/null
+++ b/OpenGridServices.UserServer/OGS-UserServer.csproj
@@ -0,0 +1,63 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {D45B6E48-5668-478D-B9CB-6D46E665FACF}
+ Exe
+ Properties
+ OGS_UserServer
+ OGS-UserServer
+ OpenGridServices.OpenUser_Main
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ ..\..\common\bin\libsecondlife.dll
+
+
+
+
+
+
+
+ OGS-Console.cs
+
+
+ VersionInfo.cs
+
+
+
+
+
+
+
+
+ {2E46A825-3168-492F-93BC-637126B5B72B}
+ OpenSim.Framework
+
+
+ {7667E6E2-F227-41A2-B1B2-315613E1BAFC}
+ ServerConsole
+
+
+
+
\ No newline at end of file
diff --git a/OpenGridServices.UserServer/OGS-UserServer.csproj.user b/OpenGridServices.UserServer/OGS-UserServer.csproj.user
new file mode 100644
index 0000000000..aa75a3df42
--- /dev/null
+++ b/OpenGridServices.UserServer/OGS-UserServer.csproj.user
@@ -0,0 +1,8 @@
+
+
+ publish\
+ 0
+ en-US
+ false
+
+
\ No newline at end of file
diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build
new file mode 100644
index 0000000000..710b01b939
--- /dev/null
+++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenGridServices.UserServer/Properties/AssemblyInfo.cs b/OpenGridServices.UserServer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..5d5ce8d1cf
--- /dev/null
+++ b/OpenGridServices.UserServer/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OGS-UserServer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OGS-UserServer")]
+[assembly: AssemblyCopyright("Copyright © 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e266513a-090b-4d38-80f6-8599eef68c8c")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenGridServices.UserServer/UserHttp.cs b/OpenGridServices.UserServer/UserHttp.cs
new file mode 100644
index 0000000000..ce3cfcdc74
--- /dev/null
+++ b/OpenGridServices.UserServer/UserHttp.cs
@@ -0,0 +1,146 @@
+/*
+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 ServerConsole;
+using OpenSim.Framework.User;
+using OpenSim.Framework.Sims;
+using OpenSim.Framework.Inventory;
+
+namespace OpenGridServices
+{
+ public class UserHTTPServer {
+ public Thread HTTPD;
+ public HttpListener Listener;
+
+ public UserHTTPServer() {
+ ServerConsole.MainConsole.Instance.WriteLine("Starting up HTTP Server");
+ HTTPD = new Thread(new ThreadStart(StartHTTP));
+ HTTPD.Start();
+ }
+
+ public void StartHTTP() {
+ ServerConsole.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 OpenGridServices.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":
+ LLUUID sessionid = new LLUUID(rest_params[2]); // get usersessions/sessionid
+ 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();
+ }
+ }
+
+ }
+ return "OK";
+ break;
+ }
+
+ 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();
+ }
+ }
+
+
+}
diff --git a/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build b/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build
index 3dfa7ceb18..703abe6c72 100644
--- a/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build
+++ b/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build
@@ -1,47 +1,47 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build b/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build
index 9ceaea6277..2dfc9b0004 100644
--- a/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build
+++ b/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build
@@ -1,41 +1,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Framework/OpenSim.Framework.dll.build b/OpenSim.Framework/OpenSim.Framework.dll.build
index 496389219e..3d29b2b427 100644
--- a/OpenSim.Framework/OpenSim.Framework.dll.build
+++ b/OpenSim.Framework/OpenSim.Framework.dll.build
@@ -1,63 +1,63 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.dll.build b/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.dll.build
index ec65ba8c71..e3b33cbeec 100644
--- a/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.dll.build
+++ b/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.dll.build
@@ -1,46 +1,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build b/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build
index 206045444e..01bf0df0f4 100644
--- a/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build
+++ b/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build
@@ -1,45 +1,45 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build b/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build
index f14673337a..4217a06281 100644
--- a/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build
+++ b/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build
@@ -1,42 +1,42 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build b/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build
index 47e55347cc..4aaca6ad28 100644
--- a/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build
+++ b/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build
@@ -1,46 +1,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.dll.build b/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.dll.build
index 8f9e7dc80f..395cc6b1e9 100644
--- a/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.dll.build
+++ b/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.dll.build
@@ -1,43 +1,43 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.RegionServer/OpenSim.RegionServer.dll.build b/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
index dce4dc17c2..ac65d34cb5 100644
--- a/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
+++ b/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
@@ -1,68 +1,68 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build b/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
index 44e8597715..ebcda17842 100644
--- a/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
+++ b/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
@@ -1,46 +1,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim.build b/OpenSim.build
index e0738a6469..53394fe72e 100644
--- a/OpenSim.build
+++ b/OpenSim.build
@@ -1,97 +1,103 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/OpenSim.exe.build b/OpenSim/OpenSim.exe.build
index 7d69d90e1e..fc516df66f 100644
--- a/OpenSim/OpenSim.exe.build
+++ b/OpenSim/OpenSim.exe.build
@@ -1,47 +1,47 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Prebuild/Prebuild.build b/Prebuild/Prebuild.build
index 395fb31e54..188a8a79fd 100644
--- a/Prebuild/Prebuild.build
+++ b/Prebuild/Prebuild.build
@@ -1,67 +1,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Prebuild/src/Prebuild.exe.build b/Prebuild/src/Prebuild.exe.build
index 43f5516127..628e7e160d 100644
--- a/Prebuild/src/Prebuild.exe.build
+++ b/Prebuild/src/Prebuild.exe.build
@@ -1,80 +1,80 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/prebuild.xml b/prebuild.xml
index df02b5920f..eafee37f5a 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -74,6 +74,60 @@
+
+
+
+
+ ../bin/
+
+
+
+
+ ../bin/
+
+
+
+ ../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../bin/
+
+
+
+
+ ../bin/
+
+
+
+ ../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+