aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorlbsa712007-04-11 20:07:58 +0000
committerlbsa712007-04-11 20:07:58 +0000
commit1a28ef6292a152a69d0f53803daacc7dad522cea (patch)
tree3d4e2eed288b208f1d0db7d37e8f1d9a1dfca1c5
parent* cleaning (diff)
downloadopensim-SC-1a28ef6292a152a69d0f53803daacc7dad522cea.zip
opensim-SC-1a28ef6292a152a69d0f53803daacc7dad522cea.tar.gz
opensim-SC-1a28ef6292a152a69d0f53803daacc7dad522cea.tar.bz2
opensim-SC-1a28ef6292a152a69d0f53803daacc7dad522cea.tar.xz
* Replaced GridHTTPServer and UserHTTPServer with BaseHttpServer
* Now dumping default value in config. *
-rw-r--r--OpenGrid.Config/GridConfigDb4o/DbGridConfig.cs18
-rw-r--r--OpenGridServices.GridServer/GridHttp.cs307
-rw-r--r--OpenGridServices.GridServer/Main.cs132
-rw-r--r--OpenGridServices.GridServer/OpenGridServices.GridServer.csproj3
-rw-r--r--OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build1
-rw-r--r--OpenGridServices.GridServer/SimProfiles.cs196
-rw-r--r--OpenGridServices.UserServer/Main.cs206
-rw-r--r--OpenGridServices.UserServer/OpenGridServices.UserServer.csproj3
-rw-r--r--OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build1
-rw-r--r--OpenGridServices.UserServer/UserHttp.cs154
-rw-r--r--OpenSim.Framework.Console/ConsoleBase.cs4
-rw-r--r--OpenSim.Physics/OdePlugin/OdePlugin.cs2
-rw-r--r--OpenSim.RegionServer/OpenSimMain.cs16
-rw-r--r--OpenSim.RegionServer/RegionInfo.cs16
-rw-r--r--OpenSim.RegionServer/world/Avatar.cs2
-rw-r--r--OpenSim.RegionServer/world/Primitive2.cs1
-rw-r--r--OpenSim.Scripting/EmbeddedJVM/ClassRecord.cs4
-rw-r--r--OpenSim.Servers/BaseServer.cs10
-rw-r--r--OpenSim.Servers/LoginServer.cs1
-rw-r--r--OpenSim.Servers/OpenSim.Servers.csproj3
-rw-r--r--OpenSim.Servers/OpenSim.Servers.dll.build1
-rw-r--r--OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs2
-rw-r--r--OpenSim.sln228
-rw-r--r--OpenUser.Config/UserConfigDb4o/DbUserConfig.cs8
24 files changed, 544 insertions, 775 deletions
diff --git a/OpenGrid.Config/GridConfigDb4o/DbGridConfig.cs b/OpenGrid.Config/GridConfigDb4o/DbGridConfig.cs
index 1084467..14d072e 100644
--- a/OpenGrid.Config/GridConfigDb4o/DbGridConfig.cs
+++ b/OpenGrid.Config/GridConfigDb4o/DbGridConfig.cs
@@ -48,18 +48,18 @@ namespace OpenGrid.Config.GridConfigDb4o
48 public void LoadDefaults() { 48 public void LoadDefaults() {
49 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings"); 49 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings");
50 50
51 this.GridOwner = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid owner [OGS development team]: ", "OGS development team"); 51 this.GridOwner = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid owner", "OGS development team");
52 52
53 this.DefaultAssetServer = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default asset server [no default]: "); 53 this.DefaultAssetServer = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default asset server");
54 this.AssetSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to asset server: "); 54 this.AssetSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to asset server");
55 this.AssetRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from asset server: "); 55 this.AssetRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from asset server");
56 56
57 this.DefaultUserServer = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default user server [no default]: "); 57 this.DefaultUserServer = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default user server");
58 this.UserSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to user server: "); 58 this.UserSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to user server");
59 this.UserRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from user server: "); 59 this.UserRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from user server");
60 60
61 this.SimSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to sims: "); 61 this.SimSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to sims");
62 this.SimRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from sims: "); 62 this.SimRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from sims");
63 } 63 }
64 64
65 public override void InitConfig() { 65 public override void InitConfig() {
diff --git a/OpenGridServices.GridServer/GridHttp.cs b/OpenGridServices.GridServer/GridHttp.cs
deleted file mode 100644
index 9e9246d..0000000
--- a/OpenGridServices.GridServer/GridHttp.cs
+++ /dev/null
@@ -1,307 +0,0 @@
1/*
2Copyright (c) OpenGrid project, http://osgrid.org/
3
4
5* All rights reserved.
6*
7* Redistribution and use in source and binary forms, with or without
8* modification, are permitted provided that the following conditions are met:
9* * Redistributions of source code must retain the above copyright
10* notice, this list of conditions and the following disclaimer.
11* * Redistributions in binary form must reproduce the above copyright
12* notice, this list of conditions and the following disclaimer in the
13* documentation and/or other materials provided with the distribution.
14* * Neither the name of the <organization> nor the
15* names of its contributors may be used to endorse or promote products
16* derived from this software without specific prior written permission.
17*
18* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
19* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
22* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*/
29
30using System;
31using System.Text;
32using Nwc.XmlRpc;
33using System.Threading;
34using System.Text.RegularExpressions;
35using System.Net;
36using System.Xml;
37using System.IO;
38using System.Collections;
39using System.Collections.Generic;
40using libsecondlife;
41using OpenSim.Framework.Sims;
42using OpenSim.Framework.Console;
43using OpenSim.Servers;
44
45namespace OpenGridServices.GridServer
46{
47 public class GridHTTPServer : BaseHttpServer {
48 public Thread HTTPD;
49 public HttpListener Listener;
50
51 public GridHTTPServer() : base( 8001 ) {
52 Start();
53 }
54
55 public void Start()
56 {
57 MainConsole.Instance.WriteLine("Starting up HTTP Server");
58 HTTPD = new Thread(new ThreadStart(StartHTTP));
59 HTTPD.Start();
60 }
61
62 public void StartHTTP() {
63 MainConsole.Instance.WriteLine("GridHttp.cs:StartHTTP() - Spawned main thread OK");
64 Listener = new HttpListener();
65
66 Listener.Prefixes.Add("http://+:8001/");
67 Listener.Prefixes.Add("http://+:8001/sims/");
68 Listener.Prefixes.Add("http://+:8001/gods/");
69 Listener.Prefixes.Add("http://+:8001/highestuuid/");
70 Listener.Prefixes.Add("http://+:8001/uuidblocks/");
71 Listener.Start();
72
73 MainConsole.Instance.WriteLine("GridHttp.cs:StartHTTP() - Successfully bound to port 8001");
74
75 HttpListenerContext context;
76 while(true) {
77 context = Listener.GetContext();
78 ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
79 }
80 }
81
82 static string ParseXMLRPC(string requestBody, string referrer) {
83 try{
84 XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
85
86 Hashtable requestData = (Hashtable)request.Params[0];
87 switch(request.MethodName) {
88 case "simulator_login":
89
90 /*if(!((string)requestData["authkey"]==OpenGrid_Main.thegrid.SimRecvKey)) {
91 XmlRpcResponse ErrorResp = new XmlRpcResponse();
92 Hashtable ErrorRespData = new Hashtable();
93 ErrorRespData["error"]="invalid key";
94 ErrorResp.Value=ErrorRespData;
95 return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(ErrorResp),"utf-16","utf-8"));
96 }*/
97 SimProfileBase TheSim = null;
98
99 if(requestData.ContainsKey("UUID")) {
100 TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByLLUUID(new LLUUID((string)requestData["UUID"]));
101 } else if (requestData.ContainsKey("region_handle")){
102 TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle((ulong)Convert.ToUInt64(requestData["region_handle"]));
103 }
104
105 if(TheSim==null) {
106 XmlRpcResponse ErrorResp = new XmlRpcResponse();
107 Hashtable ErrorRespData = new Hashtable();
108 ErrorRespData["error"]="sim not found";
109 ErrorResp.Value=ErrorRespData;
110 return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(ErrorResp),"utf-16","utf-8"));
111 }
112
113 XmlRpcResponse SimLoginResp = new XmlRpcResponse();
114 Hashtable SimLoginRespData = new Hashtable();
115
116 ArrayList SimNeighboursData = new ArrayList();
117
118 SimProfileBase neighbour;
119 Hashtable NeighbourBlock;
120 for(int x=-1; x<2; x++) for(int y=-1; y<2; y++) {
121 if(OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle(Helpers.UIntsToLong((uint)((TheSim.RegionLocX+x)*256), (uint)(TheSim.RegionLocY+y)*256))!=null) {
122 neighbour=OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle(Helpers.UIntsToLong((uint)((TheSim.RegionLocX+x)*256), (uint)(TheSim.RegionLocY+y)*256));
123 NeighbourBlock = new Hashtable();
124 NeighbourBlock["sim_ip"] = neighbour.sim_ip;
125 NeighbourBlock["sim_port"] = neighbour.sim_port.ToString();
126 NeighbourBlock["region_locx"] = neighbour.RegionLocX.ToString();
127 NeighbourBlock["region_locy"] = neighbour.RegionLocY.ToString();
128 NeighbourBlock["UUID"] = neighbour.UUID.ToString();
129 SimNeighboursData.Add(NeighbourBlock);
130 }
131 }
132
133 SimLoginRespData["UUID"]=TheSim.UUID;
134 SimLoginRespData["region_locx"]=TheSim.RegionLocX.ToString();
135 SimLoginRespData["region_locy"]=TheSim.RegionLocY.ToString();
136 SimLoginRespData["regionname"]=TheSim.regionname;
137 SimLoginRespData["estate_id"]="1";
138 SimLoginRespData["neighbours"]=SimNeighboursData;
139 SimLoginRespData["asset_url"]=OpenGrid_Main.thegrid.DefaultAssetServer;
140 SimLoginRespData["asset_sendkey"]=OpenGrid_Main.thegrid.AssetSendKey;
141 SimLoginRespData["asset_recvkey"]=OpenGrid_Main.thegrid.AssetRecvKey;
142 SimLoginRespData["user_url"]=OpenGrid_Main.thegrid.DefaultUserServer;
143 SimLoginRespData["user_sendkey"]=OpenGrid_Main.thegrid.UserSendKey;
144 SimLoginRespData["user_recvkey"]=OpenGrid_Main.thegrid.UserRecvKey;
145 SimLoginRespData["authkey"]=OpenGrid_Main.thegrid.SimSendKey;
146 SimLoginResp.Value=SimLoginRespData;
147 return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(SimLoginResp),"utf-16","utf-8"));
148 break;
149 }
150 } catch(Exception e) {
151 Console.WriteLine(e.ToString());
152 }
153 return "";
154 }
155
156 static string ParseREST(string requestURL, string requestBody, string HTTPmethod) {
157 char[] splitter = {'/'};
158 string[] rest_params = requestURL.Split(splitter);
159 string req_type = rest_params[0]; // First part of the URL is the type of request -
160 string respstring="";
161 SimProfileBase TheSim;
162 Console.WriteLine(req_type);
163 switch(req_type) {
164 case "regions":
165 // DIRTY HACK ALERT
166 Console.WriteLine("/regions/ accessed");
167 TheSim=OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle((ulong)Convert.ToUInt64(rest_params[1]));
168 respstring=ParseREST("/regions/" + rest_params[1], requestBody, HTTPmethod);
169 break;
170
171 case "sims":
172 LLUUID UUID = new LLUUID((string)rest_params[1]);
173 TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByLLUUID(UUID);
174 if(!(TheSim==null)) {
175 switch(HTTPmethod) {
176 case "GET":
177 respstring="<authkey>" + OpenGrid_Main.thegrid.SimSendKey + "</authkey>";
178 respstring+="<sim>";
179 respstring+="<uuid>" + TheSim.UUID.ToString() + "</uuid>";
180 respstring+="<regionname>" + TheSim.regionname + "</regionname>";
181 respstring+="<sim_ip>" + TheSim.sim_ip + "</sim_ip>";
182 respstring+="<sim_port>" + TheSim.sim_port.ToString() + "</sim_port>";
183 respstring+="<region_locx>" + TheSim.RegionLocX.ToString() + "</region_locx>";
184 respstring+="<region_locy>" + TheSim.RegionLocY.ToString() + "</region_locy>";
185 respstring+="<estate_id>1</estate_id>";
186 respstring+="</sim>";
187 break;
188 case "POST":
189 Console.WriteLine("Updating sim details.....");
190 XmlDocument doc = new XmlDocument();
191 doc.LoadXml(requestBody);
192 XmlNode authkeynode = doc.FirstChild;
193 if (authkeynode.Name != "authkey") {
194 respstring = "ERROR! bad XML - expected authkey tag";
195 return respstring;
196 }
197 XmlNode simnode = doc.ChildNodes[1];
198 if (simnode.Name != "sim") {
199 respstring = "ERROR! bad XML - expected sim tag";
200 return respstring;
201 }
202 if (authkeynode.Name != OpenGrid_Main.thegrid.SimRecvKey) {
203 respstring = "ERROR! invalid key";
204 return respstring;
205 }
206
207 if (TheSim==null) {
208 respstring="ERROR! sim not found";
209 return respstring;
210 } else {
211 for(int i=0; i<= simnode.ChildNodes.Count; i++) {
212 switch(simnode.ChildNodes[i].Name) {
213 case "uuid":
214 // should a sim be able to update it's own UUID? To be decided
215 // watch next week for the exciting conclusion in "the adventures of OpenGridServices.GridServer/GridHttp.cs:ParseREST() at line 190!
216 break; // and line 190's arch-enemy - THE BREAK STATEMENT! OH NOES!!!!! (this code written at 6:57AM, no sleep, lots of caffeine)
217
218 case "regionname":
219 TheSim.regionname=simnode.ChildNodes[i].InnerText;
220 break;
221
222 case "sim_ip":
223 TheSim.sim_ip=simnode.ChildNodes[i].InnerText;
224 break;
225
226 case "sim_port":
227 TheSim.sim_port=Convert.ToUInt32(simnode.ChildNodes[i].InnerText);
228 break;
229
230 case "region_locx":
231 TheSim.RegionLocX=Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
232 TheSim.regionhandle=Helpers.UIntsToLong((TheSim.RegionLocX * 256), (TheSim.RegionLocY * 256));
233 break;
234
235 case "region_locy":
236 TheSim.RegionLocY=Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
237 TheSim.regionhandle=Helpers.UIntsToLong((TheSim.RegionLocX * 256), (TheSim.RegionLocY * 256));
238 break;
239 }
240 }
241 respstring="OK";
242 }
243
244
245
246 break;
247 }
248 }
249 return respstring;
250 break;
251 }
252 return "";
253
254 }
255
256
257 static void HandleRequest(Object stateinfo) {
258 HttpListenerContext context=(HttpListenerContext)stateinfo;
259
260 HttpListenerRequest request = context.Request;
261 HttpListenerResponse response = context.Response;
262
263 response.KeepAlive=false;
264 response.SendChunked=false;
265
266 System.IO.Stream body = request.InputStream;
267 System.Text.Encoding encoding = System.Text.Encoding.UTF8;
268 System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding);
269
270 string requestBody = reader.ReadToEnd();
271 body.Close();
272 reader.Close();
273
274 // TODO: AUTHENTICATION!!!!!!!!! MUST ADD!!!!!!!!!! SCRIPT KIDDIES LOVE LACK OF IT!!!!!!!!!!
275
276 string responseString="";
277 switch(request.ContentType) {
278 case "text/xml":
279 // must be XML-RPC, so pass to the XML-RPC parser
280
281 responseString=ParseXMLRPC(requestBody,request.Headers["Referer"]);
282 response.AddHeader("Content-type","text/xml");
283 break;
284
285 case "text/plaintext":
286 // must be REST
287 responseString=ParseREST(request.RawUrl,requestBody,request.HttpMethod);
288 break;
289
290 case null:
291 // must be REST or invalid crap, so pass to the REST parser
292 responseString=ParseREST(request.RawUrl,requestBody,request.HttpMethod);
293 break;
294 }
295
296
297 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
298 System.IO.Stream output = response.OutputStream;
299 response.SendChunked=false;
300 response.ContentLength64=buffer.Length;
301 output.Write(buffer,0,buffer.Length);
302 output.Close();
303 }
304 }
305
306
307}
diff --git a/OpenGridServices.GridServer/Main.cs b/OpenGridServices.GridServer/Main.cs
index 8c83bbf..5827227 100644
--- a/OpenGridServices.GridServer/Main.cs
+++ b/OpenGridServices.GridServer/Main.cs
@@ -38,16 +38,19 @@ using OpenSim.Framework;
38using OpenSim.Framework.Sims; 38using OpenSim.Framework.Sims;
39using OpenSim.Framework.Console; 39using OpenSim.Framework.Console;
40using OpenSim.Framework.Interfaces; 40using OpenSim.Framework.Interfaces;
41using OpenSim.Servers;
41 42
42namespace OpenGridServices.GridServer 43namespace OpenGridServices.GridServer
43{ 44{
44 /// <summary> 45 /// <summary>
45 /// </summary> 46 /// </summary>
46 public class OpenGrid_Main : conscmd_callback 47 public class OpenGrid_Main : BaseServer, conscmd_callback
47 { 48 {
48 private string ConfigDll = "OpenGrid.Config.GridConfigDb4o.dll"; 49 private string ConfigDll = "OpenGrid.Config.GridConfigDb4o.dll";
49 private GridConfig Cfg; 50 private GridConfig Cfg;
51
50 public static OpenGrid_Main thegrid; 52 public static OpenGrid_Main thegrid;
53
51 public string GridOwner; 54 public string GridOwner;
52 public string DefaultStartupMsg; 55 public string DefaultStartupMsg;
53 public string DefaultAssetServer; 56 public string DefaultAssetServer;
@@ -56,16 +59,14 @@ namespace OpenGridServices.GridServer
56 public string DefaultUserServer; 59 public string DefaultUserServer;
57 public string UserSendKey; 60 public string UserSendKey;
58 public string UserRecvKey; 61 public string UserRecvKey;
59 public string SimSendKey; 62 public string SimSendKey;
60 public string SimRecvKey; 63 public string SimRecvKey;
61 public LLUUID highestUUID; 64 //public LLUUID highestUUID;
62 65
63 public GridHTTPServer _httpd; 66 private SimProfileManager m_simProfileManager;
64 public SimProfileManager _regionmanager;
65 67
66 private ConsoleBase m_console; 68 private ConsoleBase m_console;
67 private Timer SimCheckTimer; 69
68
69 [STAThread] 70 [STAThread]
70 public static void Main(string[] args) 71 public static void Main(string[] args)
71 { 72 {
@@ -92,29 +93,49 @@ namespace OpenGridServices.GridServer
92 m_console = new ConsoleBase("opengrid-gridserver-console.log", "OpenGrid", this); 93 m_console = new ConsoleBase("opengrid-gridserver-console.log", "OpenGrid", this);
93 MainConsole.Instance = m_console; 94 MainConsole.Instance = m_console;
94 } 95 }
95 96
96 public void Startup() 97 public void Startup()
97 { 98 {
98 m_console.WriteLine("Main.cs:Startup() - Loading configuration"); 99 m_console.WriteLine("Main.cs:Startup() - Loading configuration");
99 Cfg = this.LoadConfigDll(this.ConfigDll); 100 Cfg = this.LoadConfigDll(this.ConfigDll);
100 Cfg.InitConfig(); 101 Cfg.InitConfig();
101 102
102 m_console.WriteLine("Main.cs:Startup() - Loading sim profiles from database"); 103 m_console.WriteLine("Main.cs:Startup() - Loading sim profiles from database");
103 this._regionmanager = new SimProfileManager(); 104 m_simProfileManager = new SimProfileManager( this );
104 _regionmanager.LoadProfiles(); 105 m_simProfileManager.LoadProfiles();
106
107 m_console.WriteLine("Main.cs:Startup() - Starting HTTP process");
108 BaseHttpServer httpServer = new BaseHttpServer(8001);
105 109
106 m_console.WriteLine("Main.cs:Startup() - Starting HTTP process"); 110 httpServer.AddXmlRPCHandler("simulator_login", m_simProfileManager.XmlRpcLoginToSimulatorMethod);
107 _httpd = new GridHTTPServer();
108 _httpd.Start();
109 111
110 m_console.WriteLine("Main.cs:Startup() - Starting sim status checker"); 112 httpServer.AddRestHandler("GET", "/sims/", m_simProfileManager.RestGetSimMethod);
111 SimCheckTimer = new Timer(); 113 httpServer.AddRestHandler("POST", "/sims/", m_simProfileManager.RestSetSimMethod);
112 SimCheckTimer.Interval = 300000; // 5 minutes 114
113 SimCheckTimer.Elapsed+=new ElapsedEventHandler(CheckSims); 115 // lbsa71 : This code snippet taken from old http server.
114 SimCheckTimer.Enabled=true; 116 // I have no idea what this was supposed to do - looks like an infinite recursion to me.
117 // case "regions":
118 //// DIRTY HACK ALERT
119 //Console.WriteLine("/regions/ accessed");
120 //TheSim = OpenGrid_Main.thegrid._regionmanager.GetProfileByHandle((ulong)Convert.ToUInt64(rest_params[1]));
121 //respstring = ParseREST("/regions/" + rest_params[1], requestBody, HTTPmethod);
122 //break;
123
124 // lbsa71 : I guess these were never used?
125 //Listener.Prefixes.Add("http://+:8001/gods/");
126 //Listener.Prefixes.Add("http://+:8001/highestuuid/");
127 //Listener.Prefixes.Add("http://+:8001/uuidblocks/");
128
129 httpServer.Start();
130
131 m_console.WriteLine("Main.cs:Startup() - Starting sim status checker");
132
133 Timer simCheckTimer = new Timer( 300000 ); // 5 minutes
134 simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims);
135 simCheckTimer.Enabled = true;
115 } 136 }
116 137
117 private GridConfig LoadConfigDll(string dllName) 138 private GridConfig LoadConfigDll(string dllName)
118 { 139 {
119 Assembly pluginAssembly = Assembly.LoadFrom(dllName); 140 Assembly pluginAssembly = Assembly.LoadFrom(dllName);
120 GridConfig config = null; 141 GridConfig config = null;
@@ -142,33 +163,42 @@ namespace OpenGridServices.GridServer
142 return config; 163 return config;
143 } 164 }
144 165
145 public void CheckSims(object sender, ElapsedEventArgs e) { 166 public void CheckSims(object sender, ElapsedEventArgs e)
146 foreach(SimProfileBase sim in _regionmanager.SimProfiles.Values) { 167 {
147 string SimResponse=""; 168 foreach (SimProfileBase sim in m_simProfileManager.SimProfiles.Values)
148 try { 169 {
149 WebRequest CheckSim = WebRequest.Create("http://" + sim.sim_ip + ":" + sim.sim_port.ToString() + "/checkstatus/"); 170 string SimResponse = "";
150 CheckSim.Method = "GET"; 171 try
151 CheckSim.ContentType = "text/plaintext"; 172 {
152 CheckSim.ContentLength = 0; 173 WebRequest CheckSim = WebRequest.Create("http://" + sim.sim_ip + ":" + sim.sim_port.ToString() + "/checkstatus/");
153 174 CheckSim.Method = "GET";
154 StreamWriter stOut = new StreamWriter(CheckSim.GetRequestStream(), System.Text.Encoding.ASCII); 175 CheckSim.ContentType = "text/plaintext";
155 stOut.Write(""); 176 CheckSim.ContentLength = 0;
156 stOut.Close(); 177
157 178 StreamWriter stOut = new StreamWriter(CheckSim.GetRequestStream(), System.Text.Encoding.ASCII);
158 StreamReader stIn = new StreamReader(CheckSim.GetResponse().GetResponseStream()); 179 stOut.Write("");
159 SimResponse = stIn.ReadToEnd(); 180 stOut.Close();
160 stIn.Close(); 181
161 } catch(Exception exception) { 182 StreamReader stIn = new StreamReader(CheckSim.GetResponse().GetResponseStream());
162 } 183 SimResponse = stIn.ReadToEnd();
163 if(SimResponse=="OK") { 184 stIn.Close();
164 _regionmanager.SimProfiles[sim.UUID].online=true; 185 }
165 } else { 186 catch
166 _regionmanager.SimProfiles[sim.UUID].online=false; 187 {
167 } 188 }
168 } 189
169 } 190 if (SimResponse == "OK")
170 191 {
171 public void RunCmd(string cmd, string[] cmdparams) 192 m_simProfileManager.SimProfiles[sim.UUID].online = true;
193 }
194 else
195 {
196 m_simProfileManager.SimProfiles[sim.UUID].online = false;
197 }
198 }
199 }
200
201 public void RunCmd(string cmd, string[] cmdparams)
172 { 202 {
173 switch (cmd) 203 switch (cmd)
174 { 204 {
diff --git a/OpenGridServices.GridServer/OpenGridServices.GridServer.csproj b/OpenGridServices.GridServer/OpenGridServices.GridServer.csproj
index 2ce4c00..808886e 100644
--- a/OpenGridServices.GridServer/OpenGridServices.GridServer.csproj
+++ b/OpenGridServices.GridServer/OpenGridServices.GridServer.csproj
@@ -100,9 +100,6 @@
100 </ProjectReference> 100 </ProjectReference>
101 </ItemGroup> 101 </ItemGroup>
102 <ItemGroup> 102 <ItemGroup>
103 <Compile Include="GridHttp.cs">
104 <SubType>Code</SubType>
105 </Compile>
106 <Compile Include="Main.cs"> 103 <Compile Include="Main.cs">
107 <SubType>Code</SubType> 104 <SubType>Code</SubType>
108 </Compile> 105 </Compile>
diff --git a/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build b/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
index ece9986..316ebb3 100644
--- a/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
+++ b/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build
@@ -11,7 +11,6 @@
11 <resources prefix="OpenGridServices.GridServer" dynamicprefix="true" > 11 <resources prefix="OpenGridServices.GridServer" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="GridHttp.cs" />
15 <include name="Main.cs" /> 14 <include name="Main.cs" />
16 <include name="SimProfiles.cs" /> 15 <include name="SimProfiles.cs" />
17 <include name="Properties/AssemblyInfo.cs" /> 16 <include name="Properties/AssemblyInfo.cs" />
diff --git a/OpenGridServices.GridServer/SimProfiles.cs b/OpenGridServices.GridServer/SimProfiles.cs
index 7aff434..fd4ba99 100644
--- a/OpenGridServices.GridServer/SimProfiles.cs
+++ b/OpenGridServices.GridServer/SimProfiles.cs
@@ -36,6 +36,8 @@ using OpenSim.Framework.Utilities;
36using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
37using OpenSim.Framework.Sims; 37using OpenSim.Framework.Sims;
38using Db4objects.Db4o; 38using Db4objects.Db4o;
39using Nwc.XmlRpc;
40using System.Xml;
39 41
40namespace OpenGridServices.GridServer 42namespace OpenGridServices.GridServer
41{ 43{
@@ -44,9 +46,11 @@ namespace OpenGridServices.GridServer
44 public class SimProfileManager { 46 public class SimProfileManager {
45 47
46 public Dictionary<LLUUID, SimProfileBase> SimProfiles = new Dictionary<LLUUID, SimProfileBase>(); 48 public Dictionary<LLUUID, SimProfileBase> SimProfiles = new Dictionary<LLUUID, SimProfileBase>();
49 private OpenGrid_Main m_gridManager;
47 50
48 public SimProfileManager() { 51 public SimProfileManager(OpenGrid_Main gridManager) {
49 } 52 m_gridManager = gridManager;
53 }
50 54
51 public void LoadProfiles() { // should abstract this out 55 public void LoadProfiles() { // should abstract this out
52 IObjectContainer db; 56 IObjectContainer db;
@@ -117,26 +121,176 @@ namespace OpenGridServices.GridServer
117 return newprofile; 121 return newprofile;
118 } 122 }
119 123
124 public XmlRpcResponse XmlRpcLoginToSimulatorMethod(XmlRpcRequest request)
125 {
126 XmlRpcResponse response = new XmlRpcResponse();
127 Hashtable responseData = new Hashtable();
128 response.Value = responseData;
129
130 SimProfileBase TheSim = null;
131 Hashtable requestData = (Hashtable)request.Params[0];
132
133 if (requestData.ContainsKey("UUID"))
134 {
135 TheSim = GetProfileByLLUUID(new LLUUID((string)requestData["UUID"]));
136 }
137 else if (requestData.ContainsKey("region_handle"))
138 {
139 TheSim = GetProfileByHandle((ulong)Convert.ToUInt64(requestData["region_handle"]));
140 }
141
142 if (TheSim == null)
143 {
144 responseData["error"] = "sim not found";
145 }
146 else
147 {
148
149 ArrayList SimNeighboursData = new ArrayList();
150
151 SimProfileBase neighbour;
152 Hashtable NeighbourBlock;
153 for (int x = -1; x < 2; x++) for (int y = -1; y < 2; y++)
154 {
155 if (GetProfileByHandle(Helpers.UIntsToLong((uint)((TheSim.RegionLocX + x) * 256), (uint)(TheSim.RegionLocY + y) * 256)) != null)
156 {
157 neighbour = GetProfileByHandle(Helpers.UIntsToLong((uint)((TheSim.RegionLocX + x) * 256), (uint)(TheSim.RegionLocY + y) * 256));
158 NeighbourBlock = new Hashtable();
159 NeighbourBlock["sim_ip"] = neighbour.sim_ip;
160 NeighbourBlock["sim_port"] = neighbour.sim_port.ToString();
161 NeighbourBlock["region_locx"] = neighbour.RegionLocX.ToString();
162 NeighbourBlock["region_locy"] = neighbour.RegionLocY.ToString();
163 NeighbourBlock["UUID"] = neighbour.UUID.ToString();
164 SimNeighboursData.Add(NeighbourBlock);
165 }
166 }
167
168 responseData["UUID"] = TheSim.UUID;
169 responseData["region_locx"] = TheSim.RegionLocX.ToString();
170 responseData["region_locy"] = TheSim.RegionLocY.ToString();
171 responseData["regionname"] = TheSim.regionname;
172 responseData["estate_id"] = "1";
173 responseData["neighbours"] = SimNeighboursData;
174
175 responseData["asset_url"] = m_gridManager.DefaultAssetServer;
176 responseData["asset_sendkey"] = m_gridManager.AssetSendKey;
177 responseData["asset_recvkey"] = m_gridManager.AssetRecvKey;
178 responseData["user_url"] = m_gridManager.DefaultUserServer;
179 responseData["user_sendkey"] = m_gridManager.UserSendKey;
180 responseData["user_recvkey"] = m_gridManager.UserRecvKey;
181 responseData["authkey"] = m_gridManager.SimSendKey;
182 }
183
184 return response;
185 }
186
187 public string RestSetSimMethod(string request, string path, string param)
188 {
189 string respstring = String.Empty;
190
191 SimProfileBase TheSim;
192 LLUUID UUID = new LLUUID(param);
193 TheSim = GetProfileByLLUUID(UUID);
194
195 if (!(TheSim == null))
196 {
197 Console.WriteLine("Updating sim details.....");
198 XmlDocument doc = new XmlDocument();
199 doc.LoadXml(request);
200 XmlNode authkeynode = doc.FirstChild;
201 if (authkeynode.Name != "authkey")
202 {
203 respstring = "ERROR! bad XML - expected authkey tag";
204 }
205 else
206 {
207 XmlNode simnode = doc.ChildNodes[1];
208 if (simnode.Name != "sim")
209 {
210 respstring = "ERROR! bad XML - expected sim tag";
211 }
212 else
213 {
214 if (authkeynode.Name != m_gridManager.SimRecvKey)
215 {
216 respstring = "ERROR! invalid key";
217 }
218 else
219 {
220 if (TheSim == null)
221 {
222 respstring = "ERROR! sim not found";
223 }
224 else
225 {
226 for (int i = 0; i <= simnode.ChildNodes.Count; i++)
227 {
228 switch (simnode.ChildNodes[i].Name)
229 {
230 case "uuid":
231 // should a sim be able to update it's own UUID? To be decided
232 // watch next week for the exciting conclusion in "the adventures of OpenGridServices.GridServer/GridHttp.cs:ParseREST() at line 190!
233 break; // and line 190's arch-enemy - THE BREAK STATEMENT! OH NOES!!!!! (this code written at 6:57AM, no sleep, lots of caffeine)
234
235 case "regionname":
236 TheSim.regionname = simnode.ChildNodes[i].InnerText;
237 break;
238
239 case "sim_ip":
240 TheSim.sim_ip = simnode.ChildNodes[i].InnerText;
241 break;
242
243 case "sim_port":
244 TheSim.sim_port = Convert.ToUInt32(simnode.ChildNodes[i].InnerText);
245 break;
246
247 case "region_locx":
248 TheSim.RegionLocX = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
249 TheSim.regionhandle = Helpers.UIntsToLong((TheSim.RegionLocX * 256), (TheSim.RegionLocY * 256));
250 break;
251
252 case "region_locy":
253 TheSim.RegionLocY = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
254 TheSim.regionhandle = Helpers.UIntsToLong((TheSim.RegionLocX * 256), (TheSim.RegionLocY * 256));
255 break;
256 }
257 }
258 respstring = "OK";
259 }
260 }
261 }
262 }
263 }
264
265 return respstring;
266 }
267
268 public string RestGetSimMethod(string request, string path, string param )
269 {
270 string respstring = String.Empty;
271
272 SimProfileBase TheSim;
273 LLUUID UUID = new LLUUID(param);
274 TheSim = GetProfileByLLUUID(UUID);
275
276 if (!(TheSim == null))
277 {
278 respstring = "<authkey>" + m_gridManager.SimSendKey + "</authkey>";
279 respstring += "<sim>";
280 respstring += "<uuid>" + TheSim.UUID.ToString() + "</uuid>";
281 respstring += "<regionname>" + TheSim.regionname + "</regionname>";
282 respstring += "<sim_ip>" + TheSim.sim_ip + "</sim_ip>";
283 respstring += "<sim_port>" + TheSim.sim_port.ToString() + "</sim_port>";
284 respstring += "<region_locx>" + TheSim.RegionLocX.ToString() + "</region_locx>";
285 respstring += "<region_locy>" + TheSim.RegionLocY.ToString() + "</region_locy>";
286 respstring += "<estate_id>1</estate_id>";
287 respstring += "</sim>";
288 }
289
290 return respstring;
291 }
292
120 } 293 }
121 294
122 /* is in OpenSim.Framework
123 public class SimProfileBase {
124 public LLUUID UUID;
125 public ulong regionhandle;
126 public string regionname;
127 public string sim_ip;
128 public uint sim_port;
129 public string caps_url;
130 public uint RegionLocX;
131 public uint RegionLocY;
132 public string sendkey;
133 public string recvkey;
134
135
136 public SimProfileBase() {
137 }
138
139
140 }*/
141 295
142} 296}
diff --git a/OpenGridServices.UserServer/Main.cs b/OpenGridServices.UserServer/Main.cs
index 9132a54..c348a74 100644
--- a/OpenGridServices.UserServer/Main.cs
+++ b/OpenGridServices.UserServer/Main.cs
@@ -39,126 +39,126 @@ using OpenSim.Framework.Sims;
39using OpenSim.Framework.Inventory; 39using OpenSim.Framework.Inventory;
40using OpenSim.Framework.Interfaces; 40using OpenSim.Framework.Interfaces;
41using OpenSim.Framework.Console; 41using OpenSim.Framework.Console;
42using OpenSim.Servers;
42 43
43namespace OpenGridServices.UserServer 44namespace OpenGridServices.UserServer
44{ 45{
45 /// <summary> 46 /// <summary>
46 /// </summary> 47 /// </summary>
47 public class OpenUser_Main : conscmd_callback 48 public class OpenUser_Main : BaseServer, conscmd_callback
48 { 49 {
49 private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll"; 50 private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll";
50 private UserConfig Cfg; 51 private UserConfig Cfg;
51 52
52 public static OpenUser_Main userserver; 53 private UserProfileManager m_userProfileManager;
53 54
54 public UserHTTPServer _httpd; 55 public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>();
55 public UserProfileManager _profilemanager; 56
56 57 ConsoleBase m_console;
57 public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>(); 58
58 59 [STAThread]
59 ConsoleBase m_console; 60 public static void Main(string[] args)
60 61 {
61 [STAThread] 62 Console.WriteLine("Starting...\n");
62 public static void Main( string[] args ) 63
63 { 64 OpenUser_Main userserver = new OpenUser_Main();
64 Console.WriteLine("Starting...\n"); 65 userserver.Startup();
65 66 userserver.Work();
66 userserver = new OpenUser_Main(); 67 }
67 userserver.Startup(); 68
68 69 private OpenUser_Main()
69 userserver.Work(); 70 {
70 } 71 m_console = new ConsoleBase("opengrid-userserver-console.log", "OpenUser", this);
71 72 MainConsole.Instance = m_console;
72 private OpenUser_Main() 73 }
73 { 74
74 m_console = new ConsoleBase("opengrid-userserver-console.log", "OpenUser", this); 75 private void Work()
75 MainConsole.Instance = m_console; 76 {
77 m_console.WriteLine("\nEnter help for a list of commands\n");
78
79 while (true)
80 {
81 m_console.MainConsolePrompt();
82 }
83 }
84
85 public void Startup()
86 {
87 MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration");
88 Cfg = this.LoadConfigDll(this.ConfigDll);
89 Cfg.InitConfig();
90
91 MainConsole.Instance.WriteLine("Main.cs:Startup() - Creating user profile manager");
92 m_userProfileManager = new UserProfileManager();
93 m_userProfileManager.InitUserProfiles();
94 m_userProfileManager.SetKeys(Cfg.GridSendKey, Cfg.GridRecvKey, Cfg.GridServerURL, Cfg.DefaultStartupMsg);
95
96 MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process");
97 BaseHttpServer httpServer = new BaseHttpServer(8002);
98
99 httpServer.AddXmlRPCHandler("login_to_simulator", m_userProfileManager.XmlRpcLoginMethod);
100 httpServer.AddRestHandler("DELETE", "/usersessions/", m_userProfileManager.RestDeleteUserSessionMethod);
101
102 // I guess that this was never used?
103 //Listener.Prefixes.Add("http://+:8002/userserver/");
104
105 httpServer.Start();
106 }
107
108
109 public void do_create(string what)
110 {
111 switch (what)
112 {
113 case "user":
114 m_console.WriteLine("Creating new user profile");
115 string tempfirstname;
116 string templastname;
117 string tempMD5Passwd;
118
119 tempfirstname = m_console.CmdPrompt("First name");
120 templastname = m_console.CmdPrompt("Last name");
121 tempMD5Passwd = m_console.PasswdPrompt("Password");
122
123 System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
124 byte[] bs = System.Text.Encoding.UTF8.GetBytes(tempMD5Passwd);
125 bs = x.ComputeHash(bs);
126 System.Text.StringBuilder s = new System.Text.StringBuilder();
127 foreach (byte b in bs)
128 {
129 s.Append(b.ToString("x2").ToLower());
130 }
131 tempMD5Passwd = s.ToString();
132
133 UserProfile newuser = m_userProfileManager.CreateNewProfile(tempfirstname, templastname, tempMD5Passwd);
134 newuser.homelookat = new LLVector3(-0.57343f, -0.819255f, 0f);
135 newuser.homepos = new LLVector3(128f, 128f, 23f);
136 m_userProfileManager.SaveUserProfiles();
137 break;
76 } 138 }
77 139 }
78 private void Work() 140
79 {
80 m_console.WriteLine("\nEnter help for a list of commands\n");
81
82 while (true)
83 {
84 m_console.MainConsolePrompt();
85 }
86 }
87
88 public void Startup() {
89 MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration");
90 Cfg = this.LoadConfigDll(this.ConfigDll);
91 Cfg.InitConfig();
92
93 MainConsole.Instance.WriteLine("Main.cs:Startup() - Creating user profile manager");
94 _profilemanager = new UserProfileManager();
95 _profilemanager.InitUserProfiles();
96 _profilemanager.SetKeys(Cfg.GridSendKey, Cfg.GridRecvKey, Cfg.GridServerURL, Cfg.DefaultStartupMsg);
97
98 MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting HTTP process");
99 _httpd = new UserHTTPServer();
100
101 _httpd.AddXmlRPCHandler("login_to_simulator", _profilemanager.XmlRpcLoginMethod);
102 _httpd.AddRestHandler( "DELETE", "/usersessions/", _profilemanager.RestDeleteUserSessionMethod );
103
104 _httpd.Start();
105
106 }
107
108
109 public void do_create(string what)
110 {
111 switch(what)
112 {
113 case "user":
114 m_console.WriteLine("Creating new user profile");
115 string tempfirstname;
116 string templastname;
117 string tempMD5Passwd;
118
119 tempfirstname=m_console.CmdPrompt("First name: ");
120 templastname=m_console.CmdPrompt("Last name: ");
121 tempMD5Passwd=m_console.PasswdPrompt("Password: ");
122
123 System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
124 byte[] bs = System.Text.Encoding.UTF8.GetBytes(tempMD5Passwd);
125 bs = x.ComputeHash(bs);
126 System.Text.StringBuilder s = new System.Text.StringBuilder();
127 foreach (byte b in bs)
128 {
129 s.Append(b.ToString("x2").ToLower());
130 }
131 tempMD5Passwd = s.ToString();
132
133 UserProfile newuser=_profilemanager.CreateNewProfile(tempfirstname,templastname,tempMD5Passwd);
134 newuser.homelookat = new LLVector3(-0.57343f, -0.819255f, 0f);
135 newuser.homepos = new LLVector3(128f,128f,23f);
136 _profilemanager.SaveUserProfiles();
137 break;
138 }
139 }
140
141 public void RunCmd(string cmd, string[] cmdparams) 141 public void RunCmd(string cmd, string[] cmdparams)
142 { 142 {
143 switch (cmd) 143 switch (cmd)
144 { 144 {
145 case "help": 145 case "help":
146 m_console.WriteLine("create user - create a new user"); 146 m_console.WriteLine("create user - create a new user");
147 m_console.WriteLine("shutdown - shutdown the grid (USE CAUTION!)"); 147 m_console.WriteLine("shutdown - shutdown the grid (USE CAUTION!)");
148 break; 148 break;
149 149
150 case "create": 150 case "create":
151 do_create(cmdparams[0]); 151 do_create(cmdparams[0]);
152 break; 152 break;
153 153
154 case "shutdown": 154 case "shutdown":
155 m_console.Close(); 155 m_console.Close();
156 Environment.Exit(0); 156 Environment.Exit(0);
157 break; 157 break;
158 } 158 }
159 } 159 }
160 160
161 private UserConfig LoadConfigDll(string dllName) 161 private UserConfig LoadConfigDll(string dllName)
162 { 162 {
163 Assembly pluginAssembly = Assembly.LoadFrom(dllName); 163 Assembly pluginAssembly = Assembly.LoadFrom(dllName);
164 UserConfig config = null; 164 UserConfig config = null;
@@ -185,9 +185,9 @@ namespace OpenGridServices.UserServer
185 pluginAssembly = null; 185 pluginAssembly = null;
186 return config; 186 return config;
187 } 187 }
188 188
189 public void Show(string ShowWhat) 189 public void Show(string ShowWhat)
190 { 190 {
191 } 191 }
192 } 192 }
193} 193}
diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
index a9b7185..fcf6362 100644
--- a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
+++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
@@ -103,9 +103,6 @@
103 <Compile Include="Main.cs"> 103 <Compile Include="Main.cs">
104 <SubType>Code</SubType> 104 <SubType>Code</SubType>
105 </Compile> 105 </Compile>
106 <Compile Include="UserHttp.cs">
107 <SubType>Code</SubType>
108 </Compile>
109 <Compile Include="Properties\AssemblyInfo.cs"> 106 <Compile Include="Properties\AssemblyInfo.cs">
110 <SubType>Code</SubType> 107 <SubType>Code</SubType>
111 </Compile> 108 </Compile>
diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build
index a4bccb8..6319d9e 100644
--- a/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build
+++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build
@@ -12,7 +12,6 @@
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="Main.cs" /> 14 <include name="Main.cs" />
15 <include name="UserHttp.cs" />
16 <include name="Properties/AssemblyInfo.cs" /> 15 <include name="Properties/AssemblyInfo.cs" />
17 </sources> 16 </sources>
18 <references basedir="${project::get-base-directory()}"> 17 <references basedir="${project::get-base-directory()}">
diff --git a/OpenGridServices.UserServer/UserHttp.cs b/OpenGridServices.UserServer/UserHttp.cs
deleted file mode 100644
index 191fccb..0000000
--- a/OpenGridServices.UserServer/UserHttp.cs
+++ /dev/null
@@ -1,154 +0,0 @@
1/*
2Copyright (c) OpenGrid project, http://osgrid.org/
3
4
5* All rights reserved.
6*
7* Redistribution and use in source and binary forms, with or without
8* modification, are permitted provided that the following conditions are met:
9* * Redistributions of source code must retain the above copyright
10* notice, this list of conditions and the following disclaimer.
11* * Redistributions in binary form must reproduce the above copyright
12* notice, this list of conditions and the following disclaimer in the
13* documentation and/or other materials provided with the distribution.
14* * Neither the name of the <organization> nor the
15* names of its contributors may be used to endorse or promote products
16* derived from this software without specific prior written permission.
17*
18* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
19* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
22* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*/
29
30using System;
31using System.Text;
32using Nwc.XmlRpc;
33using System.Threading;
34using System.Text.RegularExpressions;
35using System.Net;
36using System.IO;
37using System.Collections;
38using System.Collections.Generic;
39using libsecondlife;
40using OpenSim.Framework.User;
41using OpenSim.Framework.Sims;
42using OpenSim.Framework.Inventory;
43using OpenSim.Framework.Console;
44using OpenSim.Servers;
45
46namespace OpenGridServices.UserServer
47{
48 public class UserHTTPServer : BaseHttpServer
49 {
50 public Thread HTTPD;
51 public HttpListener Listener;
52
53 public UserHTTPServer() : base( 8002 )
54 {
55 }
56
57 public void Start()
58 {
59 MainConsole.Instance.WriteLine("Starting up HTTP Server");
60 HTTPD = new Thread(new ThreadStart(StartHTTP));
61 HTTPD.Start();
62 }
63
64 public void StartHTTP()
65 {
66 MainConsole.Instance.WriteLine("UserHttp.cs:StartHTTP() - Spawned main thread OK");
67 Listener = new HttpListener();
68
69 Listener.Prefixes.Add("http://+:8002/userserver/");
70 Listener.Prefixes.Add("http://+:8002/usersessions/");
71 Listener.Start();
72
73 HttpListenerContext context;
74 while (true)
75 {
76 context = Listener.GetContext();
77 ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
78 }
79 }
80
81 static string ParseXMLRPC(string requestBody)
82 {
83 return OpenUser_Main.userserver._profilemanager.ParseXMLRPC(requestBody);
84 }
85
86 static string ParseREST(HttpListenerRequest www_req)
87 {
88 Console.WriteLine("INCOMING REST - " + www_req.RawUrl);
89
90 char[] splitter = { '/' };
91 string[] rest_params = www_req.RawUrl.Split(splitter);
92 string req_type = rest_params[1]; // First part of the URL is the type of request - usersessions/userprofiles/inventory/blabla
93 switch (req_type)
94 {
95 case "usersessions":
96 string param = rest_params[2];
97 string result = "";
98 if (www_req.HttpMethod == "DELETE")
99 {
100 result = OpenUser_Main.userserver._profilemanager.RestDeleteUserSessionMethod( null, null, param );
101 }
102 return result;
103 }
104
105 return "";
106 }
107
108
109 static void HandleRequest(Object stateinfo)
110 {
111 HttpListenerContext context = (HttpListenerContext)stateinfo;
112
113 HttpListenerRequest request = context.Request;
114 HttpListenerResponse response = context.Response;
115
116 response.KeepAlive = false;
117 response.SendChunked = false;
118
119 System.IO.Stream body = request.InputStream;
120 System.Text.Encoding encoding = System.Text.Encoding.UTF8;
121 System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding);
122
123 string requestBody = reader.ReadToEnd();
124 body.Close();
125 reader.Close();
126
127 string responseString = "";
128 switch (request.ContentType)
129 {
130 case "text/xml":
131 // must be XML-RPC, so pass to the XML-RPC parser
132
133 responseString = ParseXMLRPC(requestBody);
134 response.AddHeader("Content-type", "text/xml");
135 break;
136
137 case "text/plaintext":
138 responseString = ParseREST(request);
139 response.AddHeader("Content-type", "text/plaintext");
140 break;
141 }
142
143
144 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
145 System.IO.Stream output = response.OutputStream;
146 response.SendChunked = false;
147 response.ContentLength64 = buffer.Length;
148 output.Write(buffer, 0, buffer.Length);
149 output.Close();
150 }
151 }
152
153
154}
diff --git a/OpenSim.Framework.Console/ConsoleBase.cs b/OpenSim.Framework.Console/ConsoleBase.cs
index e2e4457..89c751f 100644
--- a/OpenSim.Framework.Console/ConsoleBase.cs
+++ b/OpenSim.Framework.Console/ConsoleBase.cs
@@ -84,14 +84,14 @@ namespace OpenSim.Framework.Console
84 // Displays a command prompt and waits for the user to enter a string, then returns that string 84 // Displays a command prompt and waits for the user to enter a string, then returns that string
85 public string CmdPrompt(string prompt) 85 public string CmdPrompt(string prompt)
86 { 86 {
87 this.Write(prompt); 87 this.Write(String.Format("{0}: ", prompt));
88 return this.ReadLine(); 88 return this.ReadLine();
89 } 89 }
90 90
91 // Displays a command prompt and returns a default value if the user simply presses enter 91 // Displays a command prompt and returns a default value if the user simply presses enter
92 public string CmdPrompt(string prompt, string defaultresponse) 92 public string CmdPrompt(string prompt, string defaultresponse)
93 { 93 {
94 string temp = CmdPrompt(prompt); 94 string temp = CmdPrompt(String.Format( "{0} [{1}]", prompt, defaultresponse ));
95 if (temp == "") 95 if (temp == "")
96 { 96 {
97 return defaultresponse; 97 return defaultresponse;
diff --git a/OpenSim.Physics/OdePlugin/OdePlugin.cs b/OpenSim.Physics/OdePlugin/OdePlugin.cs
index 325e2fd..4164d87 100644
--- a/OpenSim.Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim.Physics/OdePlugin/OdePlugin.cs
@@ -212,7 +212,7 @@ namespace OpenSim.Physics.OdePlugin
212 private PhysicsVector _velocity; 212 private PhysicsVector _velocity;
213 private PhysicsVector _acceleration; 213 private PhysicsVector _acceleration;
214 private bool flying; 214 private bool flying;
215 private float gravityAccel; 215 //private float gravityAccel;
216 private IntPtr BoundingCapsule; 216 private IntPtr BoundingCapsule;
217 IntPtr capsule_geom; 217 IntPtr capsule_geom;
218 d.Mass capsule_mass; 218 d.Mass capsule_mass;
diff --git a/OpenSim.RegionServer/OpenSimMain.cs b/OpenSim.RegionServer/OpenSimMain.cs
index 9ea32b1..8c93128 100644
--- a/OpenSim.RegionServer/OpenSimMain.cs
+++ b/OpenSim.RegionServer/OpenSimMain.cs
@@ -60,7 +60,6 @@ namespace OpenSim
60 //private IGenericConfig remoteConfig; 60 //private IGenericConfig remoteConfig;
61 private PhysicsManager physManager; 61 private PhysicsManager physManager;
62 private Grid GridServers; 62 private Grid GridServers;
63 private BaseHttpServer _httpServer;
64 private PacketServer _packetServer; 63 private PacketServer _packetServer;
65 private World LocalWorld; 64 private World LocalWorld;
66 private AssetCache AssetCache; 65 private AssetCache AssetCache;
@@ -175,12 +174,13 @@ namespace OpenSim
175 174
176 m_console.WriteLine("Main.cs:Startup() - Initialising HTTP server"); 175 m_console.WriteLine("Main.cs:Startup() - Initialising HTTP server");
177 // HttpServer = new SimCAPSHTTPServer(GridServers.GridServer, Cfg.IPListenPort); 176 // HttpServer = new SimCAPSHTTPServer(GridServers.GridServer, Cfg.IPListenPort);
178 _httpServer = new BaseHttpServer(regionData.IPListenPort); 177
178 BaseHttpServer httpServer = new BaseHttpServer( regionData.IPListenPort );
179 179
180 if (gridServer.GetName() == "Remote") 180 if (gridServer.GetName() == "Remote")
181 { 181 {
182 //we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server 182 //we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server
183 _httpServer.AddXmlRPCHandler("expect_user", 183 httpServer.AddXmlRPCHandler("expect_user",
184 delegate(XmlRpcRequest request) 184 delegate(XmlRpcRequest request)
185 { 185 {
186 Hashtable requestData = (Hashtable)request.Params[0]; 186 Hashtable requestData = (Hashtable)request.Params[0];
@@ -196,7 +196,7 @@ namespace OpenSim
196 196
197 return new XmlRpcResponse(); 197 return new XmlRpcResponse();
198 }); 198 });
199 _httpServer.AddRestHandler("GET", "/simstatus/", 199 httpServer.AddRestHandler("GET", "/simstatus/",
200 delegate(string request, string path, string param ) 200 delegate(string request, string path, string param )
201 { 201 {
202 return "OK"; 202 return "OK";
@@ -218,20 +218,20 @@ namespace OpenSim
218 this.GridServers.UserServer = loginServer; 218 this.GridServers.UserServer = loginServer;
219 adminLoginServer = loginServer; 219 adminLoginServer = loginServer;
220 220
221 _httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.LocalUserManager.XmlRpcLoginMethod); 221 httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.LocalUserManager.XmlRpcLoginMethod);
222 } 222 }
223 else 223 else
224 { 224 {
225 //sandbox mode with loginserver not using accounts 225 //sandbox mode with loginserver not using accounts
226 _httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod); 226 httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod);
227 } 227 }
228 } 228 }
229 229
230 AdminWebFront adminWebFront = new AdminWebFront("Admin", LocalWorld, InventoryCache, adminLoginServer); 230 AdminWebFront adminWebFront = new AdminWebFront("Admin", LocalWorld, InventoryCache, adminLoginServer);
231 adminWebFront.LoadMethods(_httpServer); 231 adminWebFront.LoadMethods(httpServer);
232 232
233 m_console.WriteLine("Main.cs:Startup() - Starting HTTP server"); 233 m_console.WriteLine("Main.cs:Startup() - Starting HTTP server");
234 _httpServer.Start(); 234 httpServer.Start();
235 235
236 MainServerListener(); 236 MainServerListener();
237 237
diff --git a/OpenSim.RegionServer/RegionInfo.cs b/OpenSim.RegionServer/RegionInfo.cs
index 83c69ff..1256b50 100644
--- a/OpenSim.RegionServer/RegionInfo.cs
+++ b/OpenSim.RegionServer/RegionInfo.cs
@@ -94,7 +94,7 @@ namespace OpenSim
94 attri = configData.GetAttribute("SimName"); 94 attri = configData.GetAttribute("SimName");
95 if (attri == "") 95 if (attri == "")
96 { 96 {
97 this.RegionName = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Name [OpenSim test]: ", "OpenSim test"); 97 this.RegionName = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Name", "OpenSim test");
98 configData.SetAttribute("SimName", this.RegionName); 98 configData.SetAttribute("SimName", this.RegionName);
99 } 99 }
100 else 100 else
@@ -106,7 +106,7 @@ namespace OpenSim
106 attri = configData.GetAttribute("SimLocationX"); 106 attri = configData.GetAttribute("SimLocationX");
107 if (attri == "") 107 if (attri == "")
108 { 108 {
109 string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid Location X [997]: ", "997"); 109 string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid Location X", "997");
110 configData.SetAttribute("SimLocationX", location); 110 configData.SetAttribute("SimLocationX", location);
111 this.RegionLocX = (uint)Convert.ToUInt32(location); 111 this.RegionLocX = (uint)Convert.ToUInt32(location);
112 } 112 }
@@ -119,7 +119,7 @@ namespace OpenSim
119 attri = configData.GetAttribute("SimLocationY"); 119 attri = configData.GetAttribute("SimLocationY");
120 if (attri == "") 120 if (attri == "")
121 { 121 {
122 string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid Location Y [996]: ", "996"); 122 string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid Location Y", "996");
123 configData.SetAttribute("SimLocationY", location); 123 configData.SetAttribute("SimLocationY", location);
124 this.RegionLocY = (uint)Convert.ToUInt32(location); 124 this.RegionLocY = (uint)Convert.ToUInt32(location);
125 } 125 }
@@ -132,7 +132,7 @@ namespace OpenSim
132 attri = configData.GetAttribute("SimListenPort"); 132 attri = configData.GetAttribute("SimListenPort");
133 if (attri == "") 133 if (attri == "")
134 { 134 {
135 string port = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("UDP port for client connections [9000]: ", "9000"); 135 string port = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("UDP port for client connections", "9000");
136 configData.SetAttribute("SimListenPort", port); 136 configData.SetAttribute("SimListenPort", port);
137 this.IPListenPort = Convert.ToInt32(port); 137 this.IPListenPort = Convert.ToInt32(port);
138 } 138 }
@@ -145,7 +145,7 @@ namespace OpenSim
145 attri = configData.GetAttribute("SimListenAddress"); 145 attri = configData.GetAttribute("SimListenAddress");
146 if (attri == "") 146 if (attri == "")
147 { 147 {
148 this.IPListenAddr = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("IP Address to listen on for client connections [127.0.0.1]: ", "127.0.0.1"); 148 this.IPListenAddr = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("IP Address to listen on for client connections", "127.0.0.1");
149 configData.SetAttribute("SimListenAddress", this.IPListenAddr); 149 configData.SetAttribute("SimListenAddress", this.IPListenAddr);
150 } 150 }
151 else 151 else
@@ -162,7 +162,7 @@ namespace OpenSim
162 attri = configData.GetAttribute("GridServerURL"); 162 attri = configData.GetAttribute("GridServerURL");
163 if (attri == "") 163 if (attri == "")
164 { 164 {
165 this.GridURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid server URL: "); 165 this.GridURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid server URL");
166 configData.SetAttribute("GridServerURL", this.GridURL); 166 configData.SetAttribute("GridServerURL", this.GridURL);
167 } 167 }
168 else 168 else
@@ -175,7 +175,7 @@ namespace OpenSim
175 attri = configData.GetAttribute("GridSendKey"); 175 attri = configData.GetAttribute("GridSendKey");
176 if (attri == "") 176 if (attri == "")
177 { 177 {
178 this.GridSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to grid server: "); 178 this.GridSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to grid server");
179 configData.SetAttribute("GridSendKey", this.GridSendKey); 179 configData.SetAttribute("GridSendKey", this.GridSendKey);
180 } 180 }
181 else 181 else
@@ -188,7 +188,7 @@ namespace OpenSim
188 attri = configData.GetAttribute("GridRecvKey"); 188 attri = configData.GetAttribute("GridRecvKey");
189 if (attri == "") 189 if (attri == "")
190 { 190 {
191 this.GridRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from grid server: "); 191 this.GridRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from grid server");
192 configData.SetAttribute("GridRecvKey", this.GridRecvKey); 192 configData.SetAttribute("GridRecvKey", this.GridRecvKey);
193 } 193 }
194 else 194 else
diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs
index 843c3af..42a2067 100644
--- a/OpenSim.RegionServer/world/Avatar.cs
+++ b/OpenSim.RegionServer/world/Avatar.cs
@@ -32,7 +32,7 @@ namespace OpenSim.world
32 private ulong m_regionHandle; 32 private ulong m_regionHandle;
33 private Dictionary<uint, SimClient> m_clientThreads; 33 private Dictionary<uint, SimClient> m_clientThreads;
34 private string m_regionName; 34 private string m_regionName;
35 private bool childShadowAvatar = false; 35 //private bool childShadowAvatar = false;
36 36
37 public Avatar(SimClient TheClient, World world, string regionName, Dictionary<uint, SimClient> clientThreads, ulong regionHandle) 37 public Avatar(SimClient TheClient, World world, string regionName, Dictionary<uint, SimClient> clientThreads, ulong regionHandle)
38 { 38 {
diff --git a/OpenSim.RegionServer/world/Primitive2.cs b/OpenSim.RegionServer/world/Primitive2.cs
index 4b26fbe..616dc25 100644
--- a/OpenSim.RegionServer/world/Primitive2.cs
+++ b/OpenSim.RegionServer/world/Primitive2.cs
@@ -22,7 +22,6 @@ namespace OpenSim.world
22 private bool physicsEnabled = false; 22 private bool physicsEnabled = false;
23 23
24 private Dictionary<LLUUID, InventoryItem> inventoryItems; 24 private Dictionary<LLUUID, InventoryItem> inventoryItems;
25 private string inventoryFileName = "";
26 25
27 #region Properties 26 #region Properties
28 27
diff --git a/OpenSim.Scripting/EmbeddedJVM/ClassRecord.cs b/OpenSim.Scripting/EmbeddedJVM/ClassRecord.cs
index 15d8a4b..f2f0da5 100644
--- a/OpenSim.Scripting/EmbeddedJVM/ClassRecord.cs
+++ b/OpenSim.Scripting/EmbeddedJVM/ClassRecord.cs
@@ -17,8 +17,8 @@ namespace OpenSim.Scripting.EmbeddedJVM
17 private ushort _interfaceCount; 17 private ushort _interfaceCount;
18 private ushort _fieldCount; 18 private ushort _fieldCount;
19 private ushort _methodCount; 19 private ushort _methodCount;
20 private ushort _attributeCount; 20 //private ushort _attributeCount;
21 private string _name; 21 //private string _name;
22 public Dictionary<string, BaseType> StaticFields = new Dictionary<string, BaseType>(); 22 public Dictionary<string, BaseType> StaticFields = new Dictionary<string, BaseType>();
23 public PoolClass mClass; 23 public PoolClass mClass;
24 24
diff --git a/OpenSim.Servers/BaseServer.cs b/OpenSim.Servers/BaseServer.cs
new file mode 100644
index 0000000..0a4c498
--- /dev/null
+++ b/OpenSim.Servers/BaseServer.cs
@@ -0,0 +1,10 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace OpenSim.Servers
6{
7 public class BaseServer
8 {
9 }
10}
diff --git a/OpenSim.Servers/LoginServer.cs b/OpenSim.Servers/LoginServer.cs
index b814639..77f0dd8 100644
--- a/OpenSim.Servers/LoginServer.cs
+++ b/OpenSim.Servers/LoginServer.cs
@@ -55,7 +55,6 @@ namespace OpenSim.UserServer
55 public IPAddress clientAddress = IPAddress.Loopback; 55 public IPAddress clientAddress = IPAddress.Loopback;
56 public IPAddress remoteAddress = IPAddress.Any; 56 public IPAddress remoteAddress = IPAddress.Any;
57 private int NumClients; 57 private int NumClients;
58 private string _defaultResponse;
59 private bool userAccounts = false; 58 private bool userAccounts = false;
60 private string _mpasswd; 59 private string _mpasswd;
61 private bool _needPasswd = false; 60 private bool _needPasswd = false;
diff --git a/OpenSim.Servers/OpenSim.Servers.csproj b/OpenSim.Servers/OpenSim.Servers.csproj
index 652d9ce..edb3fc7 100644
--- a/OpenSim.Servers/OpenSim.Servers.csproj
+++ b/OpenSim.Servers/OpenSim.Servers.csproj
@@ -89,6 +89,9 @@
89 <Compile Include="BaseHttpServer.cs"> 89 <Compile Include="BaseHttpServer.cs">
90 <SubType>Code</SubType> 90 <SubType>Code</SubType>
91 </Compile> 91 </Compile>
92 <Compile Include="BaseServer.cs">
93 <SubType>Code</SubType>
94 </Compile>
92 <Compile Include="IRestHandler.cs"> 95 <Compile Include="IRestHandler.cs">
93 <SubType>Code</SubType> 96 <SubType>Code</SubType>
94 </Compile> 97 </Compile>
diff --git a/OpenSim.Servers/OpenSim.Servers.dll.build b/OpenSim.Servers/OpenSim.Servers.dll.build
index 1d4b496..278018d 100644
--- a/OpenSim.Servers/OpenSim.Servers.dll.build
+++ b/OpenSim.Servers/OpenSim.Servers.dll.build
@@ -12,6 +12,7 @@
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="BaseHttpServer.cs" /> 14 <include name="BaseHttpServer.cs" />
15 <include name="BaseServer.cs" />
15 <include name="IRestHandler.cs" /> 16 <include name="IRestHandler.cs" />
16 <include name="LocalUserProfileManager.cs" /> 17 <include name="LocalUserProfileManager.cs" />
17 <include name="LoginResponse.cs" /> 18 <include name="LoginResponse.cs" />
diff --git a/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs b/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
index db7252b..7b6f765 100644
--- a/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
+++ b/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Storage.LocalStorageBDB
47 47
48 DbHash sim; 48 DbHash sim;
49 Db DB; 49 Db DB;
50 BEFormatter formatter; 50 //BEFormatter formatter;
51 51
52 public BDBLocalStorage() 52 public BDBLocalStorage()
53 { 53 {
diff --git a/OpenSim.sln b/OpenSim.sln
index 47f7a5c..58be9fe 100644
--- a/OpenSim.sln
+++ b/OpenSim.sln
@@ -43,97 +43,139 @@ EndProject
43Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenGridServices.GridServer", "OpenGridServices.GridServer\OpenGridServices.GridServer.csproj", "{21BFC8E2-0000-0000-0000-000000000000}" 43Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenGridServices.GridServer", "OpenGridServices.GridServer\OpenGridServices.GridServer.csproj", "{21BFC8E2-0000-0000-0000-000000000000}"
44EndProject 44EndProject
45Global 45Global
46 GlobalSection(SolutionConfigurationPlatforms) = preSolution 46 GlobalSection(SolutionConfigurationPlatforms) = preSolution
47 Debug|Any CPU = Debug|Any CPU 47 Debug|Any CPU = Debug|Any CPU
48 Release|Any CPU = Release|Any CPU 48 Release|Any CPU = Release|Any CPU
49 EndGlobalSection 49 EndGlobalSection
50 GlobalSection(ProjectConfigurationPlatforms) = postSolution 50 GlobalSection(ProjectDependencies) = postSolution
51 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 51 ({632E1BFD-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
52 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 52 ({632E1BFD-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
53 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 53 ({632E1BFD-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
54 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 54 ({632E1BFD-0000-0000-0000-000000000000}).8 = ({E88EF749-0000-0000-0000-000000000000})
55 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 55 ({632E1BFD-0000-0000-0000-000000000000}).9 = ({8BE16150-0000-0000-0000-000000000000})
56 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 56 ({632E1BFD-0000-0000-0000-000000000000}).10 = ({8BB20F0A-0000-0000-0000-000000000000})
57 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 57 ({63A05FE9-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
58 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 58 ({EE9E5D96-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
59 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 59 ({EE9E5D96-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
60 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 60 ({438A9556-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
61 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 61 ({438A9556-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
62 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 62 ({438A9556-0000-0000-0000-000000000000}).7 = ({8BE16150-0000-0000-0000-000000000000})
63 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 63 ({438A9556-0000-0000-0000-000000000000}).8 = ({8BB20F0A-0000-0000-0000-000000000000})
64 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 64 ({438A9556-0000-0000-0000-000000000000}).9 = ({632E1BFD-0000-0000-0000-000000000000})
65 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 65 ({E88EF749-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
66 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 66 ({8BE16150-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
67 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 67 ({8BE16150-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
68 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 68 ({97A82740-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
69 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 69 ({66591469-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
70 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 70 ({66591469-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
71 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 71 ({66591469-0000-0000-0000-000000000000}).5 = ({8BB20F0A-0000-0000-0000-000000000000})
72 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 72 ({4F874463-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
73 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 73 ({B0027747-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
74 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 74 ({B0027747-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
75 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 75 ({988F0AC4-0000-0000-0000-000000000000}).3 = ({8BE16150-0000-0000-0000-000000000000})
76 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 76 ({B55C0B5D-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
77 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 77 ({B55C0B5D-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
78 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 78 ({8BB20F0A-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
79 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 79 ({8BB20F0A-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
80 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 80 ({E1B79ECF-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
81 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 81 ({E1B79ECF-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
82 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 82 ({6B20B603-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
83 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 83 ({6B20B603-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
84 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 84 ({7E494328-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
85 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 85 ({7E494328-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
86 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 86 ({546099CD-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
87 {66591469-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 87 ({546099CD-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
88 {66591469-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 88 ({21BFC8E2-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
89 {66591469-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 89 ({21BFC8E2-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
90 {66591469-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 90 ({21BFC8E2-0000-0000-0000-000000000000}).5 = ({8BB20F0A-0000-0000-0000-000000000000})
91 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 91 EndGlobalSection
92 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 92 GlobalSection(ProjectConfigurationPlatforms) = postSolution
93 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 93 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
94 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 94 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
95 {B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 95 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
96 {B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 96 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
97 {B0027747-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 97 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
98 {B0027747-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 98 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
99 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 99 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
100 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 100 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
101 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 101 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
102 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 102 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
103 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 103 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
104 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 104 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
105 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 105 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
106 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 106 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
107 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 107 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
108 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 108 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
109 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 109 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
110 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 110 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
111 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 111 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
112 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 112 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
113 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 113 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
114 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 114 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
115 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 115 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
116 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 116 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
117 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 117 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
118 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 118 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
119 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 119 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
120 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 120 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
121 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 121 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
122 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 122 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
123 {7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 123 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
124 {7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 124 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
125 {7E494328-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 125 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
126 {7E494328-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 126 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
127 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 127 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
128 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 128 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
129 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 129 {66591469-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
130 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 130 {66591469-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
131 {21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 131 {66591469-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
132 {21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 132 {66591469-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
133 {21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 133 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
134 {21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 134 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
135 EndGlobalSection 135 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
136 GlobalSection(SolutionProperties) = preSolution 136 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
137 HideSolutionNode = FALSE 137 {B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
138 EndGlobalSection 138 {B0027747-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
139 {B0027747-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
140 {B0027747-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
141 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
142 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
143 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
144 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
145 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
146 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
147 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
148 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
149 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
150 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
151 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
152 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
153 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
154 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
155 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
156 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
157 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
158 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
159 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
160 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
161 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
162 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
163 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
164 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
165 {7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
166 {7E494328-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
167 {7E494328-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
168 {7E494328-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
169 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
170 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
171 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
172 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
173 {21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
174 {21BFC8E2-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
175 {21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
176 {21BFC8E2-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
177 EndGlobalSection
178 GlobalSection(SolutionProperties) = preSolution
179 HideSolutionNode = FALSE
180 EndGlobalSection
139EndGlobal 181EndGlobal
diff --git a/OpenUser.Config/UserConfigDb4o/DbUserConfig.cs b/OpenUser.Config/UserConfigDb4o/DbUserConfig.cs
index f18e373..39f1adc 100644
--- a/OpenUser.Config/UserConfigDb4o/DbUserConfig.cs
+++ b/OpenUser.Config/UserConfigDb4o/DbUserConfig.cs
@@ -48,11 +48,11 @@ namespace OpenUser.Config.UserConfigDb4o
48 public void LoadDefaults() { 48 public void LoadDefaults() {
49 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings"); 49 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings");
50 50
51 this.DefaultStartupMsg = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default startup message [Welcome to OGS]: ", "Welcome to OGS"); 51 this.DefaultStartupMsg = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Default startup message", "Welcome to OGS");
52 52
53 this.GridServerURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid server URL: "); 53 this.GridServerURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Grid server URL");
54 this.GridSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to grid server: "); 54 this.GridSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to send to grid server");
55 this.GridRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from grid server: "); 55 this.GridRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("Key to expect from grid server");
56 } 56 }
57 57
58 public override void InitConfig() { 58 public override void InitConfig() {