From 11d7cc89a9203a8155f3e71b92162e5d2c09bd99 Mon Sep 17 00:00:00 2001
From: gareth
Date: Sun, 25 Mar 2007 00:27:36 +0000
Subject: Finished adding the grid server to prebuild

---
 OpenGridServices.GridServer/ConsoleCmds.cs         |  57 +++++
 OpenGridServices.GridServer/GridHttp.cs            | 166 +++++++++++++++
 OpenGridServices.GridServer/Main.cs                | 237 +++++++++++++++++++++
 .../OpenGridServices.GridServer.exe.build          |  49 +++++
 .../Properties/AssemblyInfo.cs                     |  33 +++
 OpenGridServices.GridServer/SimProfiles.cs         | 114 ++++++++++
 OpenGridServices.GridServer/default.build          |  64 ------
 OpenGridServices.GridServer/src/ConsoleCmds.cs     |  57 -----
 OpenGridServices.GridServer/src/GridHttp.cs        | 166 ---------------
 OpenGridServices.GridServer/src/Main.cs            |  94 --------
 .../src/OGS-GridServer.csproj                      |  63 ------
 .../src/Properties/AssemblyInfo.cs                 |  33 ---
 OpenGridServices.GridServer/src/SimProfiles.cs     | 114 ----------
 OpenSim.build                                      |   7 +-
 prebuild.xml                                       |  26 ++-
 15 files changed, 686 insertions(+), 594 deletions(-)
 create mode 100644 OpenGridServices.GridServer/ConsoleCmds.cs
 create mode 100644 OpenGridServices.GridServer/GridHttp.cs
 create mode 100644 OpenGridServices.GridServer/Main.cs
 create mode 100644 OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
 create mode 100644 OpenGridServices.GridServer/Properties/AssemblyInfo.cs
 create mode 100644 OpenGridServices.GridServer/SimProfiles.cs
 delete mode 100644 OpenGridServices.GridServer/default.build
 delete mode 100644 OpenGridServices.GridServer/src/ConsoleCmds.cs
 delete mode 100644 OpenGridServices.GridServer/src/GridHttp.cs
 delete mode 100644 OpenGridServices.GridServer/src/Main.cs
 delete mode 100644 OpenGridServices.GridServer/src/OGS-GridServer.csproj
 delete mode 100644 OpenGridServices.GridServer/src/Properties/AssemblyInfo.cs
 delete mode 100644 OpenGridServices.GridServer/src/SimProfiles.cs

diff --git a/OpenGridServices.GridServer/ConsoleCmds.cs b/OpenGridServices.GridServer/ConsoleCmds.cs
new file mode 100644
index 0000000..82a2279
--- /dev/null
+++ b/OpenGridServices.GridServer/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 <organization> 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 <copyright holder> ``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 <copyright holder> 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 GridConsole : conscmd_callback {
+		public GridConsole() { }
+
+                public override void RunCmd(string cmd, string[] cmdparams) {
+			switch(cmd) {
+	                        case "help":
+                                        ServerConsole.MainConsole.Instance.WriteLine("shutdown - shutdown the grid (USE CAUTION!)"
+);
+                                break;
+			
+				case "shutdown":
+					ServerConsole.MainConsole.Instance.Close();
+					Environment.Exit(0);
+				break;
+			}
+		}
+                
+		public override void Show(string ShowWhat) {
+		}
+        }
+}
diff --git a/OpenGridServices.GridServer/GridHttp.cs b/OpenGridServices.GridServer/GridHttp.cs
new file mode 100644
index 0000000..496a3bc
--- /dev/null
+++ b/OpenGridServices.GridServer/GridHttp.cs
@@ -0,0 +1,166 @@
+/*
+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 <organization> 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 <copyright holder> ``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 <copyright holder> 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.Sims;
+
+namespace OpenGridServices
+{
+	public class GridHTTPServer {
+		public Thread HTTPD;
+		public HttpListener Listener;
+	
+		public GridHTTPServer() {
+	 		ServerConsole.MainConsole.Instance.WriteLine("Starting up HTTP Server");
+			HTTPD = new Thread(new ThreadStart(StartHTTP));
+			HTTPD.Start();
+		}
+
+		public void StartHTTP() {
+			ServerConsole.MainConsole.Instance.WriteLine("GridHttp.cs:StartHTTP() - Spawned main thread OK");
+			Listener = new HttpListener();
+
+			Listener.Prefixes.Add("http://+:8001/gridserver/");
+			Listener.Start();
+
+			HttpListenerContext context;
+			while(true) {
+				context = Listener.GetContext();
+				ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
+			}
+		}
+
+		static string ParseXMLRPC(string requestBody) {
+			try{
+			XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
+		
+			Hashtable requestData = (Hashtable)request.Params[0];
+			switch(request.MethodName) {
+				case "get_sim_info":
+					ulong req_handle=(ulong)Convert.ToInt64(requestData["region_handle"]);
+					SimProfileBase TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle(req_handle);
+					string RecvKey="";
+					string caller=(string)requestData["caller"];
+					switch(caller) {
+						case "userserver":
+							RecvKey=OpenGrid_Main.thegrid.UserRecvKey;
+						break;
+						case "assetserver":
+							RecvKey=OpenGrid_Main.thegrid.AssetRecvKey;
+						break;
+					}
+					if((TheSim!=null) && (string)requestData["authkey"]==RecvKey) {
+						XmlRpcResponse SimInfoResp = new XmlRpcResponse();
+						Hashtable SimInfoData = new Hashtable();
+						SimInfoData["UUID"]=TheSim.UUID.ToString();
+						SimInfoData["regionhandle"]=TheSim.regionhandle.ToString();
+						SimInfoData["regionname"]=TheSim.regionname;
+						SimInfoData["sim_ip"]=TheSim.sim_ip;
+						SimInfoData["sim_port"]=TheSim.sim_port.ToString();
+						SimInfoData["caps_url"]=TheSim.caps_url;
+						SimInfoData["RegionLocX"]=TheSim.RegionLocX.ToString();
+						SimInfoData["RegionLocY"]=TheSim.RegionLocY.ToString();
+						SimInfoData["sendkey"]=TheSim.sendkey;
+						SimInfoData["recvkey"]=TheSim.recvkey;
+						SimInfoResp.Value=SimInfoData;
+						return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(SimInfoResp),"utf-16","utf-8"));
+					} else {
+						XmlRpcResponse SimErrorResp = new XmlRpcResponse();
+                                                Hashtable SimErrorData = new Hashtable();
+						SimErrorData["error"]="sim not found";
+						SimErrorResp.Value=SimErrorData;
+                                                return(XmlRpcResponseSerializer.Singleton.Serialize(SimErrorResp));
+					}
+				break;
+			}
+			} catch(Exception e) {
+				Console.WriteLine(e.ToString());
+			}
+			return "";
+		}
+		
+		static string ParseREST(string requestBody, string requestURL) {
+			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 null:
+					// must be REST or invalid crap, so pass to the REST parser
+					responseString=ParseREST(request.Url.OriginalString,requestBody);
+				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/OpenGridServices.GridServer/Main.cs b/OpenGridServices.GridServer/Main.cs
new file mode 100644
index 0000000..de49b1e
--- /dev/null
+++ b/OpenGridServices.GridServer/Main.cs
@@ -0,0 +1,237 @@
+/*
+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 <organization> 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 <copyright holder> ``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 <copyright holder> 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.IO;
+using System.Text;
+using libsecondlife;
+using ServerConsole;
+
+namespace OpenGridServices
+{
+	/// <summary>
+	/// </summary>
+	public class OpenGrid_Main
+	{
+		
+		public static OpenGrid_Main thegrid;
+		public string GridOwner;
+		public string DefaultStartupMsg;
+		public string DefaultAssetServer;
+		public string AssetSendKey;
+		public string AssetRecvKey;
+		public string DefaultUserServer;
+		public string UserSendKey;
+		public string UserRecvKey;
+	
+		public GridHTTPServer _httpd;
+		public SimProfileManager _regionmanager;
+
+		[STAThread]
+		public static void Main( string[] args )
+		{
+			Console.WriteLine("Starting...\n");
+			ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local, "", 0, "opengrid-console.log", "OpenGrid", new GridConsole());
+
+			thegrid = new OpenGrid_Main();
+			thegrid.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.GridOwner=ServerConsole.MainConsole.Instance.CmdPrompt("Grid owner [OGS development team]: ","OGS development team");
+			this.DefaultStartupMsg=ServerConsole.MainConsole.Instance.CmdPrompt("Default startup message for clients [Welcome to OGS!]: ","Welcome to OGS!");
+			
+			this.DefaultAssetServer=ServerConsole.MainConsole.Instance.CmdPrompt("Default asset server [no default]: ");
+			this.AssetSendKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to send to asset server: ");
+			this.AssetRecvKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to expect from asset server: ");
+		
+			this.DefaultUserServer=ServerConsole.MainConsole.Instance.CmdPrompt("Default user server [no default]: ");
+			this.UserSendKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to send to user server: ");
+			this.UserRecvKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to expect from user server: ");
+	
+			ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process");
+			_httpd = new GridHTTPServer();
+			
+			this._regionmanager=new SimProfileManager();
+			_regionmanager.CreateNewProfile("OpenSim Test", "http://there-is-no-caps.com", "4.78.190.75", 9000, 997, 996, this.UserSendKey, this.UserRecvKey);
+
+		}	
+	}
+	/// <summary>
+	/// Description of ServerConsole.
+	/// </summary>
+	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<string>(ref tempstrarray,tempstrarray.Length-1);
+                        Array.Reverse(tempstrarray);
+                        string[] cmdparams=(string[])tempstrarray;
+                        RunCmd(cmd,cmdparams);
+                }
+	}
+}
diff --git a/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build b/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
new file mode 100644
index 0000000..e119279
--- /dev/null
+++ b/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
@@ -0,0 +1,49 @@
+<?xml version="1.0" ?>
+<project name="OpenGridServices.GridServer" default="build">
+    <target name="build">
+        <echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" />
+        <mkdir dir="${project::get-base-directory()}/${build.dir}" />
+        <copy todir="${project::get-base-directory()}/${build.dir}">
+            <fileset basedir="${project::get-base-directory()}">
+            </fileset>
+        </copy>
+        <csc target="exe" debug="${build.debug}" unsafe="False" define="TRACE" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.exe">
+            <resources prefix="OpenGridServices.GridServer" dynamicprefix="true" >
+            </resources>
+            <sources failonempty="true">
+                <include name="ConsoleCmds.cs" />
+                <include name="GridHttp.cs" />
+                <include name="Main.cs" />
+                <include name="SimProfiles.cs" />
+                <include name="Properties/AssemblyInfo.cs" />
+            </sources>
+            <references basedir="${project::get-base-directory()}">
+                <lib>
+                    <include name="${project::get-base-directory()}" />
+                    <include name="${project::get-base-directory()}/${build.dir}" />
+                </lib>
+                <include name="System.dll" />
+                <include name="System.Data.dll" />
+                <include name="System.Xml.dll" />
+                <include name="../bin/OpenSim.Framework.dll" />
+                <include name="../bin/OpenSim.Framework.Console.dll" />
+                <include name="../bin/OpenGridServices.ServerConsole.dll" />
+                <include name="../bin/libsecondlife.dll" />
+            </references>
+        </csc>
+        <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" />
+        <mkdir dir="${project::get-base-directory()}/../bin/"/>
+        <copy todir="${project::get-base-directory()}/../bin/">
+            <fileset basedir="${project::get-base-directory()}/${build.dir}/" >
+                <include name="*.dll"/>
+                <include name="*.exe"/>
+            </fileset>
+        </copy>
+    </target>
+    <target name="clean">
+        <delete dir="${bin.dir}" failonerror="false" />
+        <delete dir="${obj.dir}" failonerror="false" />
+    </target>
+    <target name="doc" description="Creates documentation.">
+    </target>
+</project>
diff --git a/OpenGridServices.GridServer/Properties/AssemblyInfo.cs b/OpenGridServices.GridServer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..8471e6b
--- /dev/null
+++ b/OpenGridServices.GridServer/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-GridServer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OGS-GridServer")]
+[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("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
+
+// 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.GridServer/SimProfiles.cs b/OpenGridServices.GridServer/SimProfiles.cs
new file mode 100644
index 0000000..6db8331
--- /dev/null
+++ b/OpenGridServices.GridServer/SimProfiles.cs
@@ -0,0 +1,114 @@
+/*
+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 <organization> 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 <copyright holder> ``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 <copyright holder> 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 System.Collections;
+using System.Collections.Generic;
+using libsecondlife;
+using ServerConsole;
+using OpenSim.Framework.Utilities;
+using OpenSim.Framework.Sims;
+
+namespace OpenGridServices
+{
+	/// <summary>
+	/// </summary>
+	public class SimProfileManager {
+	
+		public Dictionary<LLUUID, SimProfileBase> SimProfiles = new Dictionary<LLUUID, SimProfileBase>();
+
+		public SimProfileManager() {
+		}
+		
+		public void InitSimProfiles() {
+			// TODO: need to load from database
+		}
+
+		public SimProfileBase GetProfileByHandle(ulong reqhandle) {
+			foreach (libsecondlife.LLUUID UUID in SimProfiles.Keys) {
+				if(SimProfiles[UUID].regionhandle==reqhandle) return SimProfiles[UUID];
+			}
+			return null;
+		}
+
+		public SimProfileBase GetProfileByLLUUID(LLUUID ProfileLLUUID) {
+			return SimProfiles[ProfileLLUUID];
+		}
+	
+		public bool AuthenticateSim(LLUUID RegionUUID, uint regionhandle, string simrecvkey) {
+			SimProfileBase TheSim=GetProfileByHandle(regionhandle);
+			if(TheSim != null) 
+			if(TheSim.recvkey==simrecvkey) {
+				return true;
+			} else {
+				return false;
+			} else return false;
+			
+		}
+
+		public SimProfileBase CreateNewProfile(string regionname, string caps_url, string sim_ip, uint sim_port, uint RegionLocX, uint RegionLocY, string sendkey, string recvkey) {
+			SimProfileBase newprofile = new SimProfileBase();
+			newprofile.regionname=regionname;
+			newprofile.sim_ip=sim_ip;
+			newprofile.sim_port=sim_port;
+			newprofile.RegionLocX=RegionLocX;
+			newprofile.RegionLocY=RegionLocY;
+			newprofile.caps_url="http://" + sim_ip + ":9000/";
+			newprofile.sendkey=sendkey;
+			newprofile.recvkey=recvkey;
+			newprofile.regionhandle=Util.UIntsToLong((RegionLocX*256), (RegionLocY*256));
+			newprofile.UUID=LLUUID.Random();
+			this.SimProfiles.Add(newprofile.UUID,newprofile);
+			return newprofile;
+		}
+
+	}
+
+    /*  is in OpenSim.Framework
+	public class SimProfileBase {
+		public LLUUID UUID;
+		public ulong regionhandle;
+		public string regionname;
+		public string sim_ip;
+		public uint sim_port;
+		public string caps_url;
+		public uint RegionLocX;
+		public uint RegionLocY;
+		public string sendkey;
+		public string recvkey;
+		
+	
+		public SimProfileBase() {
+		}
+	
+	
+	}*/
+
+}
diff --git a/OpenGridServices.GridServer/default.build b/OpenGridServices.GridServer/default.build
deleted file mode 100644
index b113b83..0000000
--- a/OpenGridServices.GridServer/default.build
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-    <project name="GridServer" default="build" basedir="./">
-        <property name="debug" value="true" overwrite="false" />
-        <target name="clean" description="remove all generated files">
-		<delete>
-			<fileset failonempty="false">
-				<include name="bin/*.dll" />
-				<include name="bin/*.exe" />
-				<include name="bin/*.mdb" />
-			</fileset>
-		</delete>
-	</target>
-
-	<target name="svnupdate" description="updates to latest SVN">
-		<exec program="svn">
-			<arg value="update" />
-		</exec>
-	</target>
-
-	<target name="upgrade" description="updates from SVN and then builds" depends="clean,svnupdate,build">
-		
-	</target>
-	
-	<target name="build" description="compiles the source code">
-	
-	<loadfile file="../VERSION" property="svnver"/>
-	<asminfo output="src/AssemblyInfo.cs" language="CSharp">
-		<imports>
-			<import namespace="System" />
-			<import namespace="System.Reflection" />
-			<import namespace="System.Runtime.InteropServices" />
-		</imports>
-		<attributes>
-			<attribute type="ComVisibleAttribute" value="false" />
-			<attribute type="CLSCompliantAttribute" value="false" />
-			<attribute type="AssemblyVersionAttribute" value="${svnver}" />
-			<attribute type="AssemblyTitleAttribute" value="ogs-GridServer" />
-			<attribute type="AssemblyDescriptionAttribute" value="The core OGS Grid Server" />
-			<attribute type="AssemblyCopyrightAttribute" value="Copyright © OGS development team 2007"/>
-		</attributes>
-	</asminfo>
-
-	<csc target="exe" output="bin/GridServer.exe" debug="${debug}" verbose="true" warninglevel="4">
-			<references failonempty="true">
-				<include name="System" />
-				<include name="System.Xml" />
-				<include name="../common/bin/ServerConsole.dll" />
-				<include name="../common/bin/libsecondlife.dll" />
-			</references>
-			<sources>
-				<include name="../common/src/VersionInfo.cs" />
-				<include name="../common/src/OGS-Console.cs" />
-				<include name="../common/src/Util.cs" />
-				<include name="src/*.cs" />
-			</sources>
-	</csc>
-	
-	<copy todir="bin/">
-    		<fileset basedir="../common/bin">
-        		<include name="*.*" />
-    		</fileset>
-	</copy>
-	</target>
-</project>
diff --git a/OpenGridServices.GridServer/src/ConsoleCmds.cs b/OpenGridServices.GridServer/src/ConsoleCmds.cs
deleted file mode 100644
index 82a2279..0000000
--- a/OpenGridServices.GridServer/src/ConsoleCmds.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-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 <organization> 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 <copyright holder> ``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 <copyright holder> 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 GridConsole : conscmd_callback {
-		public GridConsole() { }
-
-                public override void RunCmd(string cmd, string[] cmdparams) {
-			switch(cmd) {
-	                        case "help":
-                                        ServerConsole.MainConsole.Instance.WriteLine("shutdown - shutdown the grid (USE CAUTION!)"
-);
-                                break;
-			
-				case "shutdown":
-					ServerConsole.MainConsole.Instance.Close();
-					Environment.Exit(0);
-				break;
-			}
-		}
-                
-		public override void Show(string ShowWhat) {
-		}
-        }
-}
diff --git a/OpenGridServices.GridServer/src/GridHttp.cs b/OpenGridServices.GridServer/src/GridHttp.cs
deleted file mode 100644
index 496a3bc..0000000
--- a/OpenGridServices.GridServer/src/GridHttp.cs
+++ /dev/null
@@ -1,166 +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 <organization> 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 <copyright holder> ``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 <copyright holder> 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.Sims;
-
-namespace OpenGridServices
-{
-	public class GridHTTPServer {
-		public Thread HTTPD;
-		public HttpListener Listener;
-	
-		public GridHTTPServer() {
-	 		ServerConsole.MainConsole.Instance.WriteLine("Starting up HTTP Server");
-			HTTPD = new Thread(new ThreadStart(StartHTTP));
-			HTTPD.Start();
-		}
-
-		public void StartHTTP() {
-			ServerConsole.MainConsole.Instance.WriteLine("GridHttp.cs:StartHTTP() - Spawned main thread OK");
-			Listener = new HttpListener();
-
-			Listener.Prefixes.Add("http://+:8001/gridserver/");
-			Listener.Start();
-
-			HttpListenerContext context;
-			while(true) {
-				context = Listener.GetContext();
-				ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
-			}
-		}
-
-		static string ParseXMLRPC(string requestBody) {
-			try{
-			XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
-		
-			Hashtable requestData = (Hashtable)request.Params[0];
-			switch(request.MethodName) {
-				case "get_sim_info":
-					ulong req_handle=(ulong)Convert.ToInt64(requestData["region_handle"]);
-					SimProfileBase TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle(req_handle);
-					string RecvKey="";
-					string caller=(string)requestData["caller"];
-					switch(caller) {
-						case "userserver":
-							RecvKey=OpenGrid_Main.thegrid.UserRecvKey;
-						break;
-						case "assetserver":
-							RecvKey=OpenGrid_Main.thegrid.AssetRecvKey;
-						break;
-					}
-					if((TheSim!=null) && (string)requestData["authkey"]==RecvKey) {
-						XmlRpcResponse SimInfoResp = new XmlRpcResponse();
-						Hashtable SimInfoData = new Hashtable();
-						SimInfoData["UUID"]=TheSim.UUID.ToString();
-						SimInfoData["regionhandle"]=TheSim.regionhandle.ToString();
-						SimInfoData["regionname"]=TheSim.regionname;
-						SimInfoData["sim_ip"]=TheSim.sim_ip;
-						SimInfoData["sim_port"]=TheSim.sim_port.ToString();
-						SimInfoData["caps_url"]=TheSim.caps_url;
-						SimInfoData["RegionLocX"]=TheSim.RegionLocX.ToString();
-						SimInfoData["RegionLocY"]=TheSim.RegionLocY.ToString();
-						SimInfoData["sendkey"]=TheSim.sendkey;
-						SimInfoData["recvkey"]=TheSim.recvkey;
-						SimInfoResp.Value=SimInfoData;
-						return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(SimInfoResp),"utf-16","utf-8"));
-					} else {
-						XmlRpcResponse SimErrorResp = new XmlRpcResponse();
-                                                Hashtable SimErrorData = new Hashtable();
-						SimErrorData["error"]="sim not found";
-						SimErrorResp.Value=SimErrorData;
-                                                return(XmlRpcResponseSerializer.Singleton.Serialize(SimErrorResp));
-					}
-				break;
-			}
-			} catch(Exception e) {
-				Console.WriteLine(e.ToString());
-			}
-			return "";
-		}
-		
-		static string ParseREST(string requestBody, string requestURL) {
-			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 null:
-					// must be REST or invalid crap, so pass to the REST parser
-					responseString=ParseREST(request.Url.OriginalString,requestBody);
-				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/OpenGridServices.GridServer/src/Main.cs b/OpenGridServices.GridServer/src/Main.cs
deleted file mode 100644
index d29a1ae..0000000
--- a/OpenGridServices.GridServer/src/Main.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-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 <organization> 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 <copyright holder> ``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 <copyright holder> 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 libsecondlife;
-using ServerConsole;
-
-namespace OpenGridServices
-{
-	/// <summary>
-	/// </summary>
-	public class OpenGrid_Main
-	{
-		
-		public static OpenGrid_Main thegrid;
-		public string GridOwner;
-		public string DefaultStartupMsg;
-		public string DefaultAssetServer;
-		public string AssetSendKey;
-		public string AssetRecvKey;
-		public string DefaultUserServer;
-		public string UserSendKey;
-		public string UserRecvKey;
-	
-		public GridHTTPServer _httpd;
-		public SimProfileManager _regionmanager;
-
-		[STAThread]
-		public static void Main( string[] args )
-		{
-			Console.WriteLine("OpenGrid " + VersionInfo.Version + "\n");
-			Console.WriteLine("Starting...\n");
-			ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local, "", 0, "opengrid-console.log", "OpenGrid", new GridConsole());
-
-			thegrid = new OpenGrid_Main();
-			thegrid.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.GridOwner=ServerConsole.MainConsole.Instance.CmdPrompt("Grid owner [OGS development team]: ","OGS development team");
-			this.DefaultStartupMsg=ServerConsole.MainConsole.Instance.CmdPrompt("Default startup message for clients [Welcome to OGS!]: ","Welcome to OGS!");
-			
-			this.DefaultAssetServer=ServerConsole.MainConsole.Instance.CmdPrompt("Default asset server [no default]: ");
-			this.AssetSendKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to send to asset server: ");
-			this.AssetRecvKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to expect from asset server: ");
-		
-			this.DefaultUserServer=ServerConsole.MainConsole.Instance.CmdPrompt("Default user server [no default]: ");
-			this.UserSendKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to send to user server: ");
-			this.UserRecvKey=ServerConsole.MainConsole.Instance.CmdPrompt("Key to expect from user server: ");
-	
-			ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process");
-			_httpd = new GridHTTPServer();
-			
-			this._regionmanager=new SimProfileManager();
-			_regionmanager.CreateNewProfile("OpenSim Test", "http://there-is-no-caps.com", "4.78.190.75", 9000, 997, 996, this.UserSendKey, this.UserRecvKey);
-
-		}	
-	}
-}
diff --git a/OpenGridServices.GridServer/src/OGS-GridServer.csproj b/OpenGridServices.GridServer/src/OGS-GridServer.csproj
deleted file mode 100644
index b957d40..0000000
--- a/OpenGridServices.GridServer/src/OGS-GridServer.csproj
+++ /dev/null
@@ -1,63 +0,0 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.50727</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{FE50A574-C8ED-433B-95F0-213A5EED2AB2}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>OGS_GridServer</RootNamespace>
-    <AssemblyName>OGS-GridServer</AssemblyName>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="libsecondlife, Version=0.9.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\common\bin\libsecondlife.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\..\common\src\OGS-Console.cs">
-      <Link>OGS-Console.cs</Link>
-    </Compile>
-    <Compile Include="..\..\common\VersionInfo\VersionInfo.cs">
-      <Link>VersionInfo.cs</Link>
-    </Compile>
-    <Compile Include="ConsoleCmds.cs" />
-    <Compile Include="GridHttp.cs" />
-    <Compile Include="Main.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="SimProfiles.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\OpenSim.FrameWork\OpenSim.Framework.csproj">
-      <Project>{2E46A825-3168-492F-93BC-637126B5B72B}</Project>
-      <Name>OpenSim.Framework</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\ServerConsole\ServerConsole.csproj">
-      <Project>{7667E6E2-F227-41A2-B1B2-315613E1BAFC}</Project>
-      <Name>ServerConsole</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-</Project>
\ No newline at end of file
diff --git a/OpenGridServices.GridServer/src/Properties/AssemblyInfo.cs b/OpenGridServices.GridServer/src/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8471e6b..0000000
--- a/OpenGridServices.GridServer/src/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-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-GridServer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OGS-GridServer")]
-[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("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
-
-// 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.GridServer/src/SimProfiles.cs b/OpenGridServices.GridServer/src/SimProfiles.cs
deleted file mode 100644
index 6db8331..0000000
--- a/OpenGridServices.GridServer/src/SimProfiles.cs
+++ /dev/null
@@ -1,114 +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 <organization> 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 <copyright holder> ``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 <copyright holder> 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 System.Collections;
-using System.Collections.Generic;
-using libsecondlife;
-using ServerConsole;
-using OpenSim.Framework.Utilities;
-using OpenSim.Framework.Sims;
-
-namespace OpenGridServices
-{
-	/// <summary>
-	/// </summary>
-	public class SimProfileManager {
-	
-		public Dictionary<LLUUID, SimProfileBase> SimProfiles = new Dictionary<LLUUID, SimProfileBase>();
-
-		public SimProfileManager() {
-		}
-		
-		public void InitSimProfiles() {
-			// TODO: need to load from database
-		}
-
-		public SimProfileBase GetProfileByHandle(ulong reqhandle) {
-			foreach (libsecondlife.LLUUID UUID in SimProfiles.Keys) {
-				if(SimProfiles[UUID].regionhandle==reqhandle) return SimProfiles[UUID];
-			}
-			return null;
-		}
-
-		public SimProfileBase GetProfileByLLUUID(LLUUID ProfileLLUUID) {
-			return SimProfiles[ProfileLLUUID];
-		}
-	
-		public bool AuthenticateSim(LLUUID RegionUUID, uint regionhandle, string simrecvkey) {
-			SimProfileBase TheSim=GetProfileByHandle(regionhandle);
-			if(TheSim != null) 
-			if(TheSim.recvkey==simrecvkey) {
-				return true;
-			} else {
-				return false;
-			} else return false;
-			
-		}
-
-		public SimProfileBase CreateNewProfile(string regionname, string caps_url, string sim_ip, uint sim_port, uint RegionLocX, uint RegionLocY, string sendkey, string recvkey) {
-			SimProfileBase newprofile = new SimProfileBase();
-			newprofile.regionname=regionname;
-			newprofile.sim_ip=sim_ip;
-			newprofile.sim_port=sim_port;
-			newprofile.RegionLocX=RegionLocX;
-			newprofile.RegionLocY=RegionLocY;
-			newprofile.caps_url="http://" + sim_ip + ":9000/";
-			newprofile.sendkey=sendkey;
-			newprofile.recvkey=recvkey;
-			newprofile.regionhandle=Util.UIntsToLong((RegionLocX*256), (RegionLocY*256));
-			newprofile.UUID=LLUUID.Random();
-			this.SimProfiles.Add(newprofile.UUID,newprofile);
-			return newprofile;
-		}
-
-	}
-
-    /*  is in OpenSim.Framework
-	public class SimProfileBase {
-		public LLUUID UUID;
-		public ulong regionhandle;
-		public string regionname;
-		public string sim_ip;
-		public uint sim_port;
-		public string caps_url;
-		public uint RegionLocX;
-		public uint RegionLocY;
-		public string sendkey;
-		public string recvkey;
-		
-	
-		public SimProfileBase() {
-		}
-	
-	
-	}*/
-
-}
diff --git a/OpenSim.build b/OpenSim.build
index 53394fe..e7af734 100644
--- a/OpenSim.build
+++ b/OpenSim.build
@@ -50,7 +50,7 @@
         <nant buildfile="../opensim/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="clean" />
         <nant buildfile="../opensim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build" target="clean" />
         <nant buildfile="../opensim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build" target="clean" />
-        <nant buildfile="../opensim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="clean" />
+        <nant buildfile="../opensim/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build" target="clean" />
         <nant buildfile="../opensim/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build" target="clean" />
         <nant buildfile="../opensim/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build" target="clean" />
         <nant buildfile="../opensim/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build" target="clean" />
@@ -59,12 +59,14 @@
         <nant buildfile="../opensim/OpenSim/OpenSim.exe.build" target="clean" />
         <nant buildfile="../opensim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build" target="clean" />
         <nant buildfile="../opensim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build" target="clean" />
+        <nant buildfile="../opensim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="clean" />
     </target>
 
     <target name="build" depends="init" description="">
         <nant buildfile="../opensim/OpenSim.Framework/OpenSim.Framework.dll.build" target="build" />
         <nant buildfile="../opensim/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="build" />
         <nant buildfile="../opensim/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build" target="build" />
+        <nant buildfile="../opensim/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build" target="build" />
         <nant buildfile="../opensim/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build" target="build" />
         <nant buildfile="../opensim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build" target="build" />
         <nant buildfile="../opensim/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build" target="build" />
@@ -89,7 +91,7 @@
         <nant buildfile="../opensim/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="doc" />
         <nant buildfile="../opensim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.dll.build" target="doc" />
         <nant buildfile="../opensim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.dll.build" target="doc" />
-        <nant buildfile="../opensim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="doc" />
+        <nant buildfile="../opensim/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build" target="doc" />
         <nant buildfile="../opensim/OpenSim.Config/SimConfigDb4o/OpenSim.Config.SimConfigDb4o.dll.build" target="doc" />
         <nant buildfile="../opensim/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build" target="doc" />
         <nant buildfile="../opensim/OpenGridServices.ServerConsole/OpenGridServices.ServerConsole.dll.build" target="doc" />
@@ -98,6 +100,7 @@
         <nant buildfile="../opensim/OpenSim/OpenSim.exe.build" target="doc" />
         <nant buildfile="../opensim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build" target="doc" />
         <nant buildfile="../opensim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.dll.build" target="doc" />
+        <nant buildfile="../opensim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="doc" />
     </target>
 
 </project>
diff --git a/prebuild.xml b/prebuild.xml
index eafee37..330bc66 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -99,6 +99,31 @@
      </Files>
     </Project>
 
+    <Project name="OpenGridServices.GridServer" path="./OpenGridServices.GridServer" type="Exe">
+      <Configuration name="Debug">
+        <Options>
+          <OutputPath>../bin/</OutputPath>
+        </Options>
+      </Configuration>
+      <Configuration name="Release">
+        <Options>
+          <OutputPath>../bin/</OutputPath>
+        </Options>
+      </Configuration>
+
+     <ReferencePath>../bin/</ReferencePath>
+     <Reference name="System" localCopy="false"/>
+     <Reference name="System.Data" localCopy="false"/>
+     <Reference name="System.Xml" localCopy="false"/>
+     <Reference name="OpenSim.Framework.dll"/>
+     <Reference name="OpenSim.Framework.Console.dll"/>
+     <Reference name="OpenGridServices.ServerConsole.dll"/>
+     <Reference name="libsecondlife.dll"/>
+
+     <Files>
+       <Match pattern="*.cs" recurse="true"/>
+     </Files>
+    </Project>
 
     <Project name="OpenGridServices.UserServer" path="./OpenGridServices.UserServer" type="Exe">
       <Configuration name="Debug">
@@ -123,7 +148,6 @@
 
      <Files>
        <Match pattern="*.cs" recurse="true"/>
-       <Match pattern="..\OGS\common\VersionInfo\VersionInfo.cs"/>
      </Files> 
     </Project>
     
-- 
cgit v1.1