diff options
Diffstat (limited to 'OpenSim/OpenSim.RegionServer/RegionInfo.cs')
-rw-r--r-- | OpenSim/OpenSim.RegionServer/RegionInfo.cs | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/OpenSim/OpenSim.RegionServer/RegionInfo.cs b/OpenSim/OpenSim.RegionServer/RegionInfo.cs deleted file mode 100644 index de1750c..0000000 --- a/OpenSim/OpenSim.RegionServer/RegionInfo.cs +++ /dev/null | |||
@@ -1,380 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | * | ||
27 | */ | ||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using System.Globalization; | ||
32 | using System.Net; | ||
33 | using System.Web; | ||
34 | using System.IO; | ||
35 | using OpenSim.Framework.Interfaces; | ||
36 | using OpenSim.Framework.Utilities; | ||
37 | using libsecondlife; | ||
38 | |||
39 | namespace OpenSim.RegionServer | ||
40 | { | ||
41 | public class RegionInfo : RegionInfoBase | ||
42 | { | ||
43 | //following should be removed and the GenericConfig object passed around, | ||
44 | //so each class (AssetServer, GridServer etc) can access what config data they want | ||
45 | public string AssetURL = "http://127.0.0.1:8003/"; | ||
46 | public string AssetSendKey = ""; | ||
47 | |||
48 | public string GridURL = ""; | ||
49 | public string GridSendKey = ""; | ||
50 | public string GridRecvKey = ""; | ||
51 | public string UserURL = ""; | ||
52 | public string UserSendKey = ""; | ||
53 | public string UserRecvKey = ""; | ||
54 | private bool isSandbox; | ||
55 | |||
56 | public string MasterAvatarFirstName = ""; | ||
57 | public string MasterAvatarLastName = ""; | ||
58 | public string MasterAvatarSandboxPassword = ""; | ||
59 | public LLUUID MasterAvatarAssignedUUID = LLUUID.Zero; | ||
60 | |||
61 | public string DataStore; | ||
62 | |||
63 | public RegionInfo() | ||
64 | { | ||
65 | |||
66 | } | ||
67 | |||
68 | public void SaveToGrid() | ||
69 | { | ||
70 | //we really want to keep any server connection code out of here and out of the code code | ||
71 | // and put it in the server connection classes (those inheriting from IGridServer etc) | ||
72 | string reqtext; | ||
73 | reqtext = "<Root>"; | ||
74 | reqtext += "<authkey>" + this.GridSendKey + "</authkey>"; | ||
75 | reqtext += "<sim>"; | ||
76 | reqtext += "<uuid>" + this.SimUUID.ToString() + "</uuid>"; | ||
77 | reqtext += "<regionname>" + this.RegionName + "</regionname>"; | ||
78 | reqtext += "<sim_ip>" + this.IPListenAddr + "</sim_ip>"; | ||
79 | reqtext += "<sim_port>" + this.IPListenPort.ToString() + "</sim_port>"; | ||
80 | reqtext += "<region_locx>" + this.RegionLocX.ToString() + "</region_locx>"; | ||
81 | reqtext += "<region_locy>" + this.RegionLocY.ToString() + "</region_locy>"; | ||
82 | reqtext += "<estate_id>1</estate_id>"; | ||
83 | reqtext += "</sim>"; | ||
84 | reqtext += "</Root>"; | ||
85 | |||
86 | byte[] reqdata = (new System.Text.ASCIIEncoding()).GetBytes(reqtext); | ||
87 | string newpath = ""; | ||
88 | if (this.GridURL.EndsWith("/")) | ||
89 | { | ||
90 | newpath = this.GridURL + "sims/"; | ||
91 | } | ||
92 | else | ||
93 | { | ||
94 | newpath = this.GridURL + "/sims/"; | ||
95 | } | ||
96 | |||
97 | WebRequest GridSaveReq = WebRequest.Create(newpath + this.SimUUID.ToString()); | ||
98 | GridSaveReq.Method = "POST"; | ||
99 | GridSaveReq.ContentType = "application/x-www-form-urlencoded"; | ||
100 | GridSaveReq.ContentLength = reqdata.Length; | ||
101 | |||
102 | Stream stOut = GridSaveReq.GetRequestStream(); | ||
103 | stOut.Write(reqdata, 0, reqdata.Length); | ||
104 | stOut.Close(); | ||
105 | |||
106 | WebResponse gridresp = GridSaveReq.GetResponse(); | ||
107 | StreamReader stIn = new StreamReader(gridresp.GetResponseStream(), Encoding.ASCII); | ||
108 | string GridResponse = stIn.ReadToEnd(); | ||
109 | stIn.Close(); | ||
110 | gridresp.Close(); | ||
111 | |||
112 | OpenSim.Framework.Console.MainConsole.Instance.Verbose("RegionInfo.CS:SaveToGrid() - Grid said: " + GridResponse); | ||
113 | } | ||
114 | |||
115 | public void InitConfig(bool sandboxMode, IGenericConfig configData) | ||
116 | { | ||
117 | this.isSandbox = sandboxMode; | ||
118 | try | ||
119 | { | ||
120 | // Sim UUID | ||
121 | string attri = ""; | ||
122 | attri = configData.GetAttribute("SimUUID"); | ||
123 | if (attri == "") | ||
124 | { | ||
125 | this.SimUUID = LLUUID.Random(); | ||
126 | configData.SetAttribute("SimUUID", this.SimUUID.ToString()); | ||
127 | } | ||
128 | else | ||
129 | { | ||
130 | this.SimUUID = new LLUUID(attri); | ||
131 | } | ||
132 | |||
133 | // Sim name | ||
134 | attri = ""; | ||
135 | attri = configData.GetAttribute("SimName"); | ||
136 | if (attri == "") | ||
137 | { | ||
138 | this.RegionName = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Simulator Name", "OpenSim Island"); | ||
139 | configData.SetAttribute("SimName", this.RegionName); | ||
140 | } | ||
141 | else | ||
142 | { | ||
143 | this.RegionName = attri; | ||
144 | } | ||
145 | // Sim/Grid location X | ||
146 | attri = ""; | ||
147 | attri = configData.GetAttribute("SimLocationX"); | ||
148 | if (attri == "") | ||
149 | { | ||
150 | string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Grid Location X", "997"); | ||
151 | configData.SetAttribute("SimLocationX", location); | ||
152 | this.RegionLocX = (uint)Convert.ToUInt32(location); | ||
153 | } | ||
154 | else | ||
155 | { | ||
156 | this.RegionLocX = (uint)Convert.ToUInt32(attri); | ||
157 | } | ||
158 | // Sim/Grid location Y | ||
159 | attri = ""; | ||
160 | attri = configData.GetAttribute("SimLocationY"); | ||
161 | if (attri == "") | ||
162 | { | ||
163 | string location = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Grid Location Y", "996"); | ||
164 | configData.SetAttribute("SimLocationY", location); | ||
165 | this.RegionLocY = (uint)Convert.ToUInt32(location); | ||
166 | } | ||
167 | else | ||
168 | { | ||
169 | this.RegionLocY = (uint)Convert.ToUInt32(attri); | ||
170 | } | ||
171 | |||
172 | // Local storage datastore | ||
173 | attri = ""; | ||
174 | attri = configData.GetAttribute("Datastore"); | ||
175 | if (attri == "") | ||
176 | { | ||
177 | string datastore = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Filename for local world storage", "localworld.yap"); | ||
178 | configData.SetAttribute("Datastore", datastore); | ||
179 | this.DataStore = datastore; | ||
180 | } | ||
181 | else | ||
182 | { | ||
183 | this.DataStore = attri; | ||
184 | } | ||
185 | |||
186 | //Sim Listen Port | ||
187 | attri = ""; | ||
188 | attri = configData.GetAttribute("SimListenPort"); | ||
189 | if (attri == "") | ||
190 | { | ||
191 | string port = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: UDP port for client connections", "9000"); | ||
192 | configData.SetAttribute("SimListenPort", port); | ||
193 | this.IPListenPort = Convert.ToInt32(port); | ||
194 | } | ||
195 | else | ||
196 | { | ||
197 | this.IPListenPort = Convert.ToInt32(attri); | ||
198 | } | ||
199 | //Sim Listen Address | ||
200 | attri = ""; | ||
201 | attri = configData.GetAttribute("SimListenAddress"); | ||
202 | if (attri == "") | ||
203 | { | ||
204 | this.IPListenAddr = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: IP Address to listen on for client connections", "127.0.0.1"); | ||
205 | configData.SetAttribute("SimListenAddress", this.IPListenAddr); | ||
206 | } | ||
207 | else | ||
208 | { | ||
209 | // Probably belongs elsewhere, but oh well. | ||
210 | if (attri.Trim().StartsWith("SYSTEMIP")) | ||
211 | { | ||
212 | string localhostname = System.Net.Dns.GetHostName(); | ||
213 | System.Net.IPAddress[] ips = System.Net.Dns.GetHostAddresses(localhostname); | ||
214 | try | ||
215 | { | ||
216 | this.IPListenAddr = ips[0].ToString(); | ||
217 | } | ||
218 | catch (Exception e) | ||
219 | { | ||
220 | e.ToString(); | ||
221 | this.IPListenAddr = "127.0.0.1"; // Use the default if we fail | ||
222 | } | ||
223 | } | ||
224 | else | ||
225 | { | ||
226 | this.IPListenAddr = attri; | ||
227 | } | ||
228 | } | ||
229 | |||
230 | // Terrain Default File | ||
231 | attri = ""; | ||
232 | attri = configData.GetAttribute("TerrainFile"); | ||
233 | if (attri == "") | ||
234 | { | ||
235 | this.estateSettings.terrainFile = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Default Terrain File", "default.r32"); | ||
236 | configData.SetAttribute("TerrainFile", this.estateSettings.terrainFile); | ||
237 | } | ||
238 | else | ||
239 | { | ||
240 | this.estateSettings.terrainFile = attri; | ||
241 | } | ||
242 | |||
243 | attri = ""; | ||
244 | attri = configData.GetAttribute("TerrainMultiplier"); | ||
245 | if (attri == "") | ||
246 | { | ||
247 | string re = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0"); | ||
248 | this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture); | ||
249 | configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString()); | ||
250 | } | ||
251 | else | ||
252 | { | ||
253 | this.estateSettings.terrainMultiplier = Convert.ToDouble(attri); | ||
254 | } | ||
255 | |||
256 | attri = ""; | ||
257 | attri = configData.GetAttribute("MasterAvatarFirstName"); | ||
258 | if (attri == "") | ||
259 | { | ||
260 | this.MasterAvatarFirstName = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: First name of Master Avatar", "Test"); | ||
261 | |||
262 | configData.SetAttribute("MasterAvatarFirstName", this.MasterAvatarFirstName); | ||
263 | } | ||
264 | else | ||
265 | { | ||
266 | this.MasterAvatarFirstName = attri; | ||
267 | } | ||
268 | |||
269 | attri = ""; | ||
270 | attri = configData.GetAttribute("MasterAvatarLastName"); | ||
271 | if (attri == "") | ||
272 | { | ||
273 | this.MasterAvatarLastName = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Last name of Master Avatar", "User"); | ||
274 | |||
275 | configData.SetAttribute("MasterAvatarLastName", this.MasterAvatarLastName); | ||
276 | } | ||
277 | else | ||
278 | { | ||
279 | this.MasterAvatarLastName = attri; | ||
280 | } | ||
281 | |||
282 | if (isSandbox) //Sandbox Mode Settings | ||
283 | { | ||
284 | attri = ""; | ||
285 | attri = configData.GetAttribute("MasterAvatarSandboxPassword"); | ||
286 | if (attri == "") | ||
287 | { | ||
288 | this.MasterAvatarSandboxPassword = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("SANDBOX MODE SETTING: Password of Master Avatar", "test"); | ||
289 | |||
290 | configData.SetAttribute("MasterAvatarSandboxPassword", this.MasterAvatarSandboxPassword); | ||
291 | } | ||
292 | else | ||
293 | { | ||
294 | this.MasterAvatarSandboxPassword = attri; | ||
295 | } | ||
296 | } | ||
297 | else //Grid Mode Settings | ||
298 | { | ||
299 | //shouldn't be reading this data in here, it should be up to the classes implementing the server interfaces to read what they need from the config object | ||
300 | |||
301 | //Grid Server URL | ||
302 | attri = ""; | ||
303 | attri = configData.GetAttribute("GridServerURL"); | ||
304 | if (attri == "") | ||
305 | { | ||
306 | this.GridURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GRID MODE SETTING: Grid server URL", "http://127.0.0.1:8001/"); | ||
307 | configData.SetAttribute("GridServerURL", this.GridURL); | ||
308 | } | ||
309 | else | ||
310 | { | ||
311 | this.GridURL = attri; | ||
312 | } | ||
313 | |||
314 | //Grid Send Key | ||
315 | attri = ""; | ||
316 | attri = configData.GetAttribute("GridSendKey"); | ||
317 | if (attri == "") | ||
318 | { | ||
319 | this.GridSendKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GRID MODE SETTING: Key to send to grid server", "null"); | ||
320 | configData.SetAttribute("GridSendKey", this.GridSendKey); | ||
321 | } | ||
322 | else | ||
323 | { | ||
324 | this.GridSendKey = attri; | ||
325 | } | ||
326 | |||
327 | //Grid Receive Key | ||
328 | attri = ""; | ||
329 | attri = configData.GetAttribute("GridRecvKey"); | ||
330 | if (attri == "") | ||
331 | { | ||
332 | this.GridRecvKey = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GRID MODE SETTING: Key to expect from grid server", "null"); | ||
333 | configData.SetAttribute("GridRecvKey", this.GridRecvKey); | ||
334 | } | ||
335 | else | ||
336 | { | ||
337 | this.GridRecvKey = attri; | ||
338 | } | ||
339 | |||
340 | attri = ""; | ||
341 | attri = configData.GetAttribute("AssetServerURL"); | ||
342 | if (attri == "") | ||
343 | { | ||
344 | this.AssetURL = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GRID MODE SETTING: Asset server URL", "http://127.0.0.1:8003/"); | ||
345 | configData.SetAttribute("AssetServerURL", this.AssetURL); | ||
346 | } | ||
347 | else | ||
348 | { | ||
349 | this.AssetURL = attri; | ||
350 | } | ||
351 | |||
352 | } | ||
353 | |||
354 | this.RegionHandle = Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256)); | ||
355 | if (!this.isSandbox) | ||
356 | { | ||
357 | this.SaveToGrid(); | ||
358 | } | ||
359 | configData.Commit(); | ||
360 | } | ||
361 | catch (Exception e) | ||
362 | { | ||
363 | OpenSim.Framework.Console.MainConsole.Instance.Warn("Config.cs:InitConfig() - Exception occured"); | ||
364 | OpenSim.Framework.Console.MainConsole.Instance.Warn(e.ToString()); | ||
365 | } | ||
366 | |||
367 | OpenSim.Framework.Console.MainConsole.Instance.Verbose("Simulator Settings Loaded"); | ||
368 | /* MainConsole.Instance.Notice("UUID: " + this.SimUUID.ToStringHyphenated()); | ||
369 | MainConsole.Instance.Notice("Name: " + this.RegionName); | ||
370 | MainConsole.Instance.Notice("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]"); | ||
371 | MainConsole.Instance.Notice("Region Handle: " + this.RegionHandle.ToString()); | ||
372 | MainConsole.Instance.Notice("Listening on IP: " + this.IPListenAddr + ":" + this.IPListenPort); | ||
373 | MainConsole.Instance.Notice("Sandbox Mode? " + isSandbox.ToString()); | ||
374 | MainConsole.Instance.Notice("Asset URL: " + this.AssetURL); | ||
375 | MainConsole.Instance.Notice("Asset key: " + this.AssetSendKey); | ||
376 | MainConsole.Instance.Notice("Grid URL: " + this.GridURL); | ||
377 | MainConsole.Instance.Notice("Grid key: " + this.GridSendKey); */ | ||
378 | } | ||
379 | } | ||
380 | } | ||