*New Configuration System, much easier and less buggy compared to the original system in place
*View RegionInfo.cs for an example on how it works! *This hopefully copies all the files over, but who knows :)afrisby
parent
4cd9a87183
commit
222becc879
|
@ -30,7 +30,7 @@ using libsecondlife;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Types;
|
using OpenSim.Framework.Types;
|
||||||
|
|
||||||
namespace OpenSim.Framework
|
namespace OpenSim.Framework.Types
|
||||||
{
|
{
|
||||||
public class AgentCircuitManager
|
public class AgentCircuitManager
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,311 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
|
using libsecondlife;
|
||||||
|
|
||||||
|
using OpenSim.Framework.Console;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Configuration
|
||||||
|
{
|
||||||
|
public class ConfigurationMember
|
||||||
|
{
|
||||||
|
public delegate void ConfigurationOptionResult(string configuration_key, object configuration_result);
|
||||||
|
public delegate void ConfigurationOptionsLoad();
|
||||||
|
|
||||||
|
private List<ConfigurationOption> configurationOptions = new List<ConfigurationOption>();
|
||||||
|
private string configurationFilename = "";
|
||||||
|
private string configurationDescription = "";
|
||||||
|
|
||||||
|
private ConfigurationOptionsLoad loadFunction;
|
||||||
|
private ConfigurationOptionResult resultFunction;
|
||||||
|
|
||||||
|
public ConfigurationMember(string configuration_filename, string configuration_description, ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function)
|
||||||
|
{
|
||||||
|
this.configurationFilename = configuration_filename;
|
||||||
|
this.configurationDescription = configuration_description;
|
||||||
|
this.loadFunction = load_function;
|
||||||
|
this.resultFunction = result_function;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfigurationFilename(string filename)
|
||||||
|
{
|
||||||
|
configurationFilename = filename;
|
||||||
|
}
|
||||||
|
public void setConfigurationDescription(string desc)
|
||||||
|
{
|
||||||
|
configurationDescription = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfigurationResultFunction(ConfigurationOptionResult result)
|
||||||
|
{
|
||||||
|
resultFunction = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addConfigurationOption(string configuration_key, ConfigurationOption.ConfigurationTypes configuration_type, string configuration_question, string configuration_default)
|
||||||
|
{
|
||||||
|
ConfigurationOption configOption = new ConfigurationOption();
|
||||||
|
configOption.configurationKey = configuration_key;
|
||||||
|
configOption.configurationQuestion = configuration_question;
|
||||||
|
configOption.configurationDefault = configuration_default;
|
||||||
|
configOption.configurationType = configuration_type;
|
||||||
|
|
||||||
|
if (configuration_key != "" && configuration_question != "" && configuration_type != null)
|
||||||
|
{
|
||||||
|
if (!configurationOptions.Contains(configOption))
|
||||||
|
{
|
||||||
|
configurationOptions.Add(configOption);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainLog.Instance.Notice("Required fields for adding a configuration option is invalid. Will not add this option (" + configuration_key + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void performConfigurationRetrieve()
|
||||||
|
{
|
||||||
|
configurationOptions.Clear();
|
||||||
|
if(loadFunction == null)
|
||||||
|
{
|
||||||
|
MainLog.Instance.Error("Load Function for '" + this.configurationDescription + "' is null. Refusing to run configuration.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resultFunction == null)
|
||||||
|
{
|
||||||
|
MainLog.Instance.Error("Result Function for '" + this.configurationDescription + "' is null. Refusing to run configuration.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MainLog.Instance.Verbose("Calling Configuration Load Function...");
|
||||||
|
this.loadFunction();
|
||||||
|
|
||||||
|
if(configurationOptions.Count <= 0)
|
||||||
|
{
|
||||||
|
MainLog.Instance.Error("No configuration options were specified for '" + this.configurationOptions + "'. Refusing to continue configuration.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool useFile = true;
|
||||||
|
XmlConfiguration xmlConfig = null;
|
||||||
|
if (configurationFilename.Trim() != "")
|
||||||
|
{
|
||||||
|
xmlConfig = new XmlConfiguration(configurationFilename);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(xmlConfig != null)
|
||||||
|
{
|
||||||
|
xmlConfig.LoadData();
|
||||||
|
useFile = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainLog.Instance.Notice("XML Configuration Filename is not valid; will not save to the file.");
|
||||||
|
useFile = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (ConfigurationOption configOption in configurationOptions)
|
||||||
|
{
|
||||||
|
bool convertSuccess = false;
|
||||||
|
object return_result = null;
|
||||||
|
string errorMessage = "";
|
||||||
|
bool ignoreNextFromConfig = false;
|
||||||
|
while (convertSuccess == false)
|
||||||
|
{
|
||||||
|
|
||||||
|
string attribute = null;
|
||||||
|
if (useFile)
|
||||||
|
{
|
||||||
|
if (!ignoreNextFromConfig)
|
||||||
|
{
|
||||||
|
attribute = xmlConfig.GetAttribute(configOption.configurationKey);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ignoreNextFromConfig = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string console_result = "";
|
||||||
|
if (attribute == null)
|
||||||
|
{
|
||||||
|
if (configurationDescription.Trim() != "")
|
||||||
|
{
|
||||||
|
console_result = MainLog.Instance.CmdPrompt(configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
console_result = MainLog.Instance.CmdPrompt(configOption.configurationQuestion, configOption.configurationDefault);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
console_result = attribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (configOption.configurationType)
|
||||||
|
{
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_STRING:
|
||||||
|
return_result = console_result;
|
||||||
|
convertSuccess = true;
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN:
|
||||||
|
bool boolResult;
|
||||||
|
if (Boolean.TryParse(console_result, out boolResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = boolResult;
|
||||||
|
}
|
||||||
|
errorMessage = "'true' or 'false' (Boolean)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_BYTE:
|
||||||
|
byte byteResult;
|
||||||
|
if (Byte.TryParse(console_result, out byteResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = byteResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a byte (Byte)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_CHARACTER:
|
||||||
|
char charResult;
|
||||||
|
if (Char.TryParse(console_result, out charResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = charResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a character (Char)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_INT16:
|
||||||
|
short shortResult;
|
||||||
|
if (Int16.TryParse(console_result, out shortResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = shortResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a signed 32 bit integer (short)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_INT32:
|
||||||
|
int intResult;
|
||||||
|
if (Int32.TryParse(console_result, out intResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = intResult;
|
||||||
|
|
||||||
|
}
|
||||||
|
errorMessage = "a signed 32 bit integer (int)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_INT64:
|
||||||
|
long longResult;
|
||||||
|
if (Int64.TryParse(console_result, out longResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = longResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a signed 32 bit integer (long)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS:
|
||||||
|
IPAddress ipAddressResult;
|
||||||
|
if (IPAddress.TryParse(console_result, out ipAddressResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = ipAddressResult;
|
||||||
|
}
|
||||||
|
errorMessage = "an IP Address (IPAddress)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_LLUUID:
|
||||||
|
LLUUID uuidResult;
|
||||||
|
if (LLUUID.TryParse(console_result, out uuidResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = uuidResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a UUID (LLUUID)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_LLVECTOR3:
|
||||||
|
LLVector3 vectorResult;
|
||||||
|
if (LLVector3.TryParse(console_result, out vectorResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = vectorResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a vector (LLVector3)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_UINT16:
|
||||||
|
ushort ushortResult;
|
||||||
|
if (UInt16.TryParse(console_result, out ushortResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = ushortResult;
|
||||||
|
}
|
||||||
|
errorMessage = "an unsigned 16 bit integer (ushort)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_UINT32:
|
||||||
|
uint uintResult;
|
||||||
|
if (UInt32.TryParse(console_result, out uintResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = uintResult;
|
||||||
|
|
||||||
|
}
|
||||||
|
errorMessage = "an unsigned 32 bit integer (uint)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_UINT64:
|
||||||
|
ulong ulongResult;
|
||||||
|
if (UInt64.TryParse(console_result, out ulongResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = ulongResult;
|
||||||
|
}
|
||||||
|
errorMessage = "an unsigned 64 bit integer (ulong)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_FLOAT:
|
||||||
|
float floatResult;
|
||||||
|
if (float.TryParse(console_result, out floatResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = floatResult;
|
||||||
|
}
|
||||||
|
errorMessage = "a single-precision floating point number (float)";
|
||||||
|
break;
|
||||||
|
case ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE:
|
||||||
|
double doubleResult;
|
||||||
|
if (Double.TryParse(console_result, out doubleResult))
|
||||||
|
{
|
||||||
|
convertSuccess = true;
|
||||||
|
return_result = doubleResult;
|
||||||
|
}
|
||||||
|
errorMessage = "an double-precision floating point number (double)";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (convertSuccess)
|
||||||
|
{
|
||||||
|
if (useFile)
|
||||||
|
{
|
||||||
|
xmlConfig.SetAttribute(configOption.configurationKey, console_result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.resultFunction(configOption.configurationKey, return_result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MainLog.Instance.Warn("Incorrect result given, the configuration option must be " + errorMessage + ". Prompting for same option...");
|
||||||
|
ignoreNextFromConfig = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(useFile)
|
||||||
|
{
|
||||||
|
xmlConfig.Commit();
|
||||||
|
xmlConfig.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Configuration
|
||||||
|
{
|
||||||
|
public class ConfigurationOption
|
||||||
|
{
|
||||||
|
public enum ConfigurationTypes
|
||||||
|
{
|
||||||
|
TYPE_STRING,
|
||||||
|
TYPE_UINT16,
|
||||||
|
TYPE_UINT32,
|
||||||
|
TYPE_UINT64,
|
||||||
|
TYPE_INT16,
|
||||||
|
TYPE_INT32,
|
||||||
|
TYPE_INT64,
|
||||||
|
TYPE_IP_ADDRESS,
|
||||||
|
TYPE_CHARACTER,
|
||||||
|
TYPE_BOOLEAN,
|
||||||
|
TYPE_BYTE,
|
||||||
|
TYPE_LLUUID,
|
||||||
|
TYPE_LLVECTOR3,
|
||||||
|
TYPE_FLOAT,
|
||||||
|
TYPE_DOUBLE
|
||||||
|
};
|
||||||
|
|
||||||
|
public string configurationKey = "";
|
||||||
|
public string configurationQuestion = "";
|
||||||
|
public string configurationDefault = "";
|
||||||
|
|
||||||
|
public ConfigurationTypes configurationType = ConfigurationTypes.TYPE_STRING;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Configuration
|
||||||
|
{
|
||||||
|
public class GridConfig
|
||||||
|
{
|
||||||
|
public string GridOwner = "";
|
||||||
|
public string DefaultAssetServer = "";
|
||||||
|
public string AssetSendKey = "";
|
||||||
|
public string AssetRecvKey = "";
|
||||||
|
|
||||||
|
public string DefaultUserServer = "";
|
||||||
|
public string UserSendKey = "";
|
||||||
|
public string UserRecvKey = "";
|
||||||
|
|
||||||
|
public string SimSendKey = "";
|
||||||
|
public string SimRecvKey = "";
|
||||||
|
|
||||||
|
private ConfigurationMember configMember;
|
||||||
|
public GridConfig(string description, string filename)
|
||||||
|
{
|
||||||
|
configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration);
|
||||||
|
configMember.performConfigurationRetrieve();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadConfigurationOptions()
|
||||||
|
{
|
||||||
|
configMember.addConfigurationOption("grid_owner",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"OGS Grid Owner","OGS development team");
|
||||||
|
configMember.addConfigurationOption("default_asset_server",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Default Asset Server URI","http://127.0.0.1:8003/");
|
||||||
|
configMember.addConfigurationOption("asset_send_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to send to asset server","null");
|
||||||
|
configMember.addConfigurationOption("asset_recv_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to expect from asset server","null");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("default_user_server",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Default User Server URI","http://127.0.0.1:8002/");
|
||||||
|
configMember.addConfigurationOption("user_send_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to send to user server","null");
|
||||||
|
configMember.addConfigurationOption("user_recv_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to expect from user server","null");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("sim_send_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to send to a simulator","null");
|
||||||
|
configMember.addConfigurationOption("sim_recv_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to expect from a simulator","null");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void handleIncomingConfiguration(string configuration_key, object configuration_result)
|
||||||
|
{
|
||||||
|
switch (configuration_key)
|
||||||
|
{
|
||||||
|
case "grid_owner":
|
||||||
|
this.GridOwner = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "default_asset_server":
|
||||||
|
this.DefaultAssetServer = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "asset_send_key":
|
||||||
|
this.AssetSendKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "asset_recv_key":
|
||||||
|
this.AssetRecvKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "default_user_server":
|
||||||
|
this.DefaultUserServer = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "user_send_key":
|
||||||
|
this.UserSendKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "user_recv_key":
|
||||||
|
this.UserRecvKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "sim_send_key":
|
||||||
|
this.SimSendKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "sim_recv_key":
|
||||||
|
this.SimRecvKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) Contributors, http://www.openmetaverse.org/
|
||||||
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the OpenSim Project nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
namespace OpenSim.Framework.Interfaces
|
||||||
|
{
|
||||||
|
public interface IGenericConfig
|
||||||
|
{
|
||||||
|
void LoadData();
|
||||||
|
string GetAttribute(string attributeName);
|
||||||
|
bool SetAttribute(string attributeName, string attributeValue);
|
||||||
|
void Commit();
|
||||||
|
void Close();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Configuration
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// UserConfig -- For User Server Configuration
|
||||||
|
/// </summary>
|
||||||
|
public class UserConfig
|
||||||
|
{
|
||||||
|
public string DefaultStartupMsg = "";
|
||||||
|
public string GridServerURL = "";
|
||||||
|
public string GridSendKey = "";
|
||||||
|
public string GridRecvKey = "";
|
||||||
|
|
||||||
|
private ConfigurationMember configMember;
|
||||||
|
|
||||||
|
public UserConfig(string description, string filename)
|
||||||
|
{
|
||||||
|
configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration);
|
||||||
|
configMember.performConfigurationRetrieve();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadConfigurationOptions()
|
||||||
|
{
|
||||||
|
configMember.addConfigurationOption("default_startup_message",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Default Startup Message","Welcome to OGS");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("default_grid_server",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Default Grid Server URI","http://127.0.0.1:8001/");
|
||||||
|
configMember.addConfigurationOption("grid_send_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to send to grid server","null");
|
||||||
|
configMember.addConfigurationOption("grid_recv_key",ConfigurationOption.ConfigurationTypes.TYPE_STRING,"Key to expect from grid server","null");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void handleIncomingConfiguration(string configuration_key, object configuration_result)
|
||||||
|
{
|
||||||
|
switch (configuration_key)
|
||||||
|
{
|
||||||
|
case "default_startup_message":
|
||||||
|
this.DefaultStartupMsg = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "default_grid_server":
|
||||||
|
this.GridServerURL = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "grid_send_key":
|
||||||
|
this.GridSendKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "grid_recv_key":
|
||||||
|
this.GridRecvKey = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,122 +1,123 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) Contributors, http://www.openmetaverse.org/
|
* Copyright (c) Contributors, http://www.openmetaverse.org/
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* * Redistributions of source code must retain the above copyright
|
* * Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* * Neither the name of the OpenSim Project nor the
|
* * Neither the name of the OpenSim Project nor the
|
||||||
* names of its contributors may be used to endorse or promote products
|
* names of its contributors may be used to endorse or promote products
|
||||||
* derived from this software without specific prior written permission.
|
* derived from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
|
||||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using OpenSim.Framework.Interfaces;
|
|
||||||
|
using OpenSim.Framework.Interfaces;
|
||||||
namespace OpenSim.GenericConfig
|
|
||||||
{
|
namespace OpenSim.Framework.Configuration
|
||||||
public class XmlConfig : IGenericConfig
|
{
|
||||||
{
|
public class XmlConfiguration : IGenericConfig
|
||||||
private XmlDocument doc;
|
{
|
||||||
private XmlNode rootNode;
|
private XmlDocument doc;
|
||||||
private XmlNode configNode;
|
private XmlNode rootNode;
|
||||||
private string fileName;
|
private XmlNode configNode;
|
||||||
private bool createdFile = false;
|
private string fileName;
|
||||||
|
private bool createdFile = false;
|
||||||
public XmlConfig(string filename)
|
|
||||||
{
|
public XmlConfiguration(string filename)
|
||||||
fileName = filename;
|
{
|
||||||
}
|
fileName = filename;
|
||||||
|
}
|
||||||
public void LoadData()
|
|
||||||
{
|
public void LoadData()
|
||||||
doc = new XmlDocument();
|
{
|
||||||
|
doc = new XmlDocument();
|
||||||
if (File.Exists(fileName))
|
|
||||||
{
|
if (File.Exists(fileName))
|
||||||
XmlTextReader reader = new XmlTextReader(fileName);
|
{
|
||||||
reader.WhitespaceHandling = WhitespaceHandling.None;
|
XmlTextReader reader = new XmlTextReader(fileName);
|
||||||
doc.Load(reader);
|
reader.WhitespaceHandling = WhitespaceHandling.None;
|
||||||
reader.Close();
|
doc.Load(reader);
|
||||||
}
|
reader.Close();
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
createdFile = true;
|
{
|
||||||
rootNode = doc.CreateNode(XmlNodeType.Element, "Root", "");
|
createdFile = true;
|
||||||
doc.AppendChild(rootNode);
|
rootNode = doc.CreateNode(XmlNodeType.Element, "Root", "");
|
||||||
configNode = doc.CreateNode(XmlNodeType.Element, "Config", "");
|
doc.AppendChild(rootNode);
|
||||||
rootNode.AppendChild(configNode);
|
configNode = doc.CreateNode(XmlNodeType.Element, "Config", "");
|
||||||
}
|
rootNode.AppendChild(configNode);
|
||||||
|
}
|
||||||
|
|
||||||
rootNode = doc.FirstChild;
|
|
||||||
if (rootNode.Name != "Root")
|
rootNode = doc.FirstChild;
|
||||||
throw new Exception("Error: Invalid .xml File. Missing <Root>");
|
if (rootNode.Name != "Root")
|
||||||
|
throw new Exception("Error: Invalid .xml File. Missing <Root>");
|
||||||
configNode = rootNode.FirstChild;
|
|
||||||
if (configNode.Name != "Config")
|
configNode = rootNode.FirstChild;
|
||||||
throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>");
|
if (configNode.Name != "Config")
|
||||||
|
throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>");
|
||||||
if (createdFile)
|
|
||||||
{
|
if (createdFile)
|
||||||
this.Commit();
|
{
|
||||||
}
|
this.Commit();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
public string GetAttribute(string attributeName)
|
|
||||||
{
|
public string GetAttribute(string attributeName)
|
||||||
string result = "";
|
{
|
||||||
if (configNode.Attributes[attributeName] != null)
|
string result = null;
|
||||||
{
|
if (configNode.Attributes[attributeName] != null)
|
||||||
result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value;
|
{
|
||||||
}
|
result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value;
|
||||||
return result;
|
}
|
||||||
}
|
return result;
|
||||||
|
}
|
||||||
public bool SetAttribute(string attributeName, string attributeValue)
|
|
||||||
{
|
public bool SetAttribute(string attributeName, string attributeValue)
|
||||||
if (configNode.Attributes[attributeName] != null)
|
{
|
||||||
{
|
if (configNode.Attributes[attributeName] != null)
|
||||||
((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue;
|
{
|
||||||
}
|
((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue;
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
XmlAttribute attri;
|
{
|
||||||
attri = doc.CreateAttribute(attributeName);
|
XmlAttribute attri;
|
||||||
attri.Value = attributeValue;
|
attri = doc.CreateAttribute(attributeName);
|
||||||
configNode.Attributes.Append(attri);
|
attri.Value = attributeValue;
|
||||||
}
|
configNode.Attributes.Append(attri);
|
||||||
return true;
|
}
|
||||||
}
|
return true;
|
||||||
|
}
|
||||||
public void Commit()
|
|
||||||
{
|
public void Commit()
|
||||||
doc.Save(fileName);
|
{
|
||||||
}
|
doc.Save(fileName);
|
||||||
|
}
|
||||||
public void Close()
|
|
||||||
{
|
public void Close()
|
||||||
configNode = null;
|
{
|
||||||
rootNode = null;
|
configNode = null;
|
||||||
doc = null;
|
rootNode = null;
|
||||||
}
|
doc = null;
|
||||||
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -28,6 +28,7 @@
|
||||||
using System;
|
using System;
|
||||||
using OpenSim.Framework.Console;
|
using OpenSim.Framework.Console;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Types
|
namespace OpenSim.Framework.Types
|
||||||
{
|
{
|
||||||
|
@ -44,175 +45,76 @@ namespace OpenSim.Framework.Types
|
||||||
public string UserRecvKey = "";
|
public string UserRecvKey = "";
|
||||||
public bool isSandbox;
|
public bool isSandbox;
|
||||||
|
|
||||||
public uint DefaultHomeLocX = 1000;
|
public uint DefaultHomeLocX = 0;
|
||||||
public uint DefaultHomeLocY = 1000;
|
public uint DefaultHomeLocY = 0;
|
||||||
|
|
||||||
public int HttpListenerPort = 9000;
|
public int HttpListenerPort = 9000;
|
||||||
public int RemotingListenerPort = 8895;
|
public int RemotingListenerPort = 8895;
|
||||||
|
|
||||||
public void InitConfig(bool sandboxMode, IGenericConfig configData)
|
private ConfigurationMember configMember;
|
||||||
|
|
||||||
|
public NetworkServersInfo(string description, string filename)
|
||||||
{
|
{
|
||||||
this.isSandbox = sandboxMode;
|
configMember = new ConfigurationMember(filename, description, loadConfigurationOptions, handleConfigurationItem);
|
||||||
|
configMember.performConfigurationRetrieve();
|
||||||
|
}
|
||||||
|
|
||||||
try
|
public void loadConfigurationOptions()
|
||||||
|
{
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("HttpListenerPort", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "HTTP Listener Port", "9000");
|
||||||
|
configMember.addConfigurationOption("RemotingListenerPort", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "Remoting Listener Port", "8895");
|
||||||
|
configMember.addConfigurationOption("DefaultLocationX", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Default Home Location (X Axis)", "1000");
|
||||||
|
configMember.addConfigurationOption("DefaultLocationY", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Default Home Location (Y Axis)", "1000");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("GridServerURL", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Grid Server URL", "http://127.0.0.1:8001");
|
||||||
|
configMember.addConfigurationOption("GridSendKey", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to grid server", "null");
|
||||||
|
configMember.addConfigurationOption("GridRecvKey", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from grid server", "null");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("UserServerURL", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "User Server URL", "http://127.0.0.1:8002");
|
||||||
|
configMember.addConfigurationOption("UserSendKey", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to user server", "null");
|
||||||
|
configMember.addConfigurationOption("UserRecvKey", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from user server", "null");
|
||||||
|
|
||||||
|
configMember.addConfigurationOption("AssetServerURL", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Asset Server URL", "http://127.0.0.1:8003");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void handleConfigurationItem(string configuration_key, object configuration_object)
|
||||||
|
{
|
||||||
|
switch (configuration_key)
|
||||||
{
|
{
|
||||||
string attri = "";
|
case "HttpListenerPort":
|
||||||
|
this.HttpListenerPort = (int)configuration_object;
|
||||||
attri = "";
|
break;
|
||||||
attri = configData.GetAttribute("HttpListenerPort");
|
case "RemotingListenerPort":
|
||||||
if (attri == "")
|
this.RemotingListenerPort = (int)configuration_object;
|
||||||
{
|
break;
|
||||||
string location = MainLog.Instance.CmdPrompt("Http Listener Port", "9000");
|
case "DefaultLocationX":
|
||||||
configData.SetAttribute("HttpListenerPort", location);
|
this.DefaultHomeLocX = (uint)configuration_object;
|
||||||
this.HttpListenerPort = Convert.ToInt32(location);
|
break;
|
||||||
}
|
case "DefaultLocationY":
|
||||||
else
|
this.DefaultHomeLocY = (uint)configuration_object;
|
||||||
{
|
break;
|
||||||
this.HttpListenerPort = Convert.ToInt32(attri);
|
case "GridServerURL":
|
||||||
}
|
this.GridURL = (string)configuration_object;
|
||||||
|
break;
|
||||||
attri = "";
|
case "GridSendKey":
|
||||||
attri = configData.GetAttribute("RemotingListenerPort");
|
this.GridSendKey = (string)configuration_object;
|
||||||
if (attri == "")
|
break;
|
||||||
{
|
case "GridRecvKey":
|
||||||
string location = MainLog.Instance.CmdPrompt("Remoting Listener Port", "8895");
|
this.GridRecvKey = (string)configuration_object;
|
||||||
configData.SetAttribute("RemotingListenerPort", location);
|
break;
|
||||||
this.RemotingListenerPort = Convert.ToInt32(location);
|
case "UserServerURL":
|
||||||
}
|
this.UserURL = (string)configuration_object;
|
||||||
else
|
break;
|
||||||
{
|
case "UserSendKey":
|
||||||
this.RemotingListenerPort = Convert.ToInt32(attri);
|
this.UserSendKey = (string)configuration_object;
|
||||||
}
|
break;
|
||||||
|
case "UserRecvKey":
|
||||||
if (sandboxMode)
|
this.UserRecvKey = (string)configuration_object;
|
||||||
{
|
break;
|
||||||
// default home location X
|
case "AssetServerURL":
|
||||||
attri = "";
|
this.AssetURL = (string)configuration_object;
|
||||||
attri = configData.GetAttribute("DefaultLocationX");
|
break;
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
string location = MainLog.Instance.CmdPrompt("Default Home Location X", "1000");
|
|
||||||
configData.SetAttribute("DefaultLocationX", location);
|
|
||||||
this.DefaultHomeLocX = (uint)Convert.ToUInt32(location);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.DefaultHomeLocX = (uint)Convert.ToUInt32(attri);
|
|
||||||
}
|
|
||||||
|
|
||||||
// default home location Y
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("DefaultLocationY");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
string location = MainLog.Instance.CmdPrompt("Default Home Location Y", "1000");
|
|
||||||
configData.SetAttribute("DefaultLocationY", location);
|
|
||||||
this.DefaultHomeLocY = (uint)Convert.ToUInt32(location);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.DefaultHomeLocY = (uint)Convert.ToUInt32(attri);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!isSandbox)
|
|
||||||
{
|
|
||||||
//Grid Server
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("GridServerURL");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.GridURL = MainLog.Instance.CmdPrompt("Grid server URL", "http://127.0.0.1:8001/");
|
|
||||||
configData.SetAttribute("GridServerURL", this.GridURL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.GridURL = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Grid Send Key
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("GridSendKey");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.GridSendKey = MainLog.Instance.CmdPrompt("Key to send to grid server", "null");
|
|
||||||
configData.SetAttribute("GridSendKey", this.GridSendKey);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.GridSendKey = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Grid Receive Key
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("GridRecvKey");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.GridRecvKey = MainLog.Instance.CmdPrompt("Key to expect from grid server", "null");
|
|
||||||
configData.SetAttribute("GridRecvKey", this.GridRecvKey);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.GridRecvKey = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Grid Server
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("UserServerURL");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.UserURL= MainLog.Instance.CmdPrompt("User server URL", "http://127.0.0.1:8002/");
|
|
||||||
configData.SetAttribute("UserServerURL", this.UserURL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.UserURL = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Grid Send Key
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("UserSendKey");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.UserSendKey = MainLog.Instance.CmdPrompt("Key to send to user server", "null");
|
|
||||||
configData.SetAttribute("UserSendKey", this.UserSendKey);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.UserSendKey = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Grid Receive Key
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("UserRecvKey");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.UserRecvKey = MainLog.Instance.CmdPrompt("Key to expect from user server", "null");
|
|
||||||
configData.SetAttribute("UserRecvKey", this.UserRecvKey);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.UserRecvKey = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("AssetServerURL");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.AssetURL = MainLog.Instance.CmdPrompt("Asset server URL", "http://127.0.0.1:8003/");
|
|
||||||
configData.SetAttribute("AssetServerURL", this.GridURL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.AssetURL = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
configData.Commit();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
|
|
||||||
MainLog.Instance.Warn(e.ToString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@ using OpenSim.Framework.Console;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Utilities;
|
using OpenSim.Framework.Utilities;
|
||||||
|
|
||||||
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Types
|
namespace OpenSim.Framework.Types
|
||||||
{
|
{
|
||||||
public class RegionInfo
|
public class RegionInfo
|
||||||
|
@ -71,11 +73,11 @@ namespace OpenSim.Framework.Types
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new IPEndPoint(ia, m_internalEndPoint.Port);
|
return new IPEndPoint(ia, m_internalEndPoint.Port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string m_externalHostName;
|
private string m_externalHostName;
|
||||||
public string ExternalHostName
|
public string ExternalHostName
|
||||||
{
|
{
|
||||||
|
@ -117,7 +119,6 @@ namespace OpenSim.Framework.Types
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only used for remote regions , ie ones not in the current instance
|
|
||||||
private uint m_remotingPort;
|
private uint m_remotingPort;
|
||||||
public uint RemotingPort
|
public uint RemotingPort
|
||||||
{
|
{
|
||||||
|
@ -142,14 +143,18 @@ namespace OpenSim.Framework.Types
|
||||||
|
|
||||||
public EstateSettings estateSettings;
|
public EstateSettings estateSettings;
|
||||||
|
|
||||||
public RegionInfo()
|
public ConfigurationMember configMember;
|
||||||
|
public RegionInfo(string description, string filename)
|
||||||
{
|
{
|
||||||
estateSettings = new EstateSettings();
|
estateSettings = new EstateSettings();
|
||||||
|
configMember = new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration);
|
||||||
|
configMember.performConfigurationRetrieve();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
|
public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
|
||||||
: this()
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
estateSettings = new EstateSettings();
|
||||||
m_regionLocX = regionLocX;
|
m_regionLocX = regionLocX;
|
||||||
m_regionLocY = regionLocY;
|
m_regionLocY = regionLocY;
|
||||||
|
|
||||||
|
@ -157,187 +162,70 @@ namespace OpenSim.Framework.Types
|
||||||
m_externalHostName = externalUri;
|
m_externalHostName = externalUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitConfig(bool sandboxMode, IGenericConfig configData)
|
public void loadConfigurationOptions()
|
||||||
{
|
{
|
||||||
this.isSandbox = sandboxMode;
|
configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString());
|
||||||
try
|
configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Simulator Name", "OpenSim Test");
|
||||||
{
|
configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000");
|
||||||
string attri = "";
|
configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000");
|
||||||
|
configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Filename for local storage", "localworld.yap");
|
||||||
// Sim UUID
|
configMember.addConfigurationOption("internal_ip_address", ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, "Internal IP Address for incoming UDP client connections", "0.0.0.0");
|
||||||
string simId = configData.GetAttribute("SimUUID");
|
configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "Internal IP Port for incoming UDP client connections", "9000");
|
||||||
if (String.IsNullOrEmpty( simId ))
|
configMember.addConfigurationOption("external_host_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "External Host Name", "127.0.0.1");
|
||||||
{
|
configMember.addConfigurationOption("terrain_file", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Default Terrain File", "default.r32");
|
||||||
this.SimUUID = LLUUID.Random();
|
configMember.addConfigurationOption("terrain_multiplier", ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE, "Terrain Height Multiplier", "60.0");
|
||||||
}
|
configMember.addConfigurationOption("master_avatar_first", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "First Name of Master Avatar", "Test");
|
||||||
else
|
configMember.addConfigurationOption("master_avatar_last", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Last Name of Master Avatar", "User");
|
||||||
{
|
configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "(Sandbox Mode Only)Password for Master Avatar account", "test");
|
||||||
this.SimUUID = new LLUUID(simId);
|
|
||||||
}
|
|
||||||
configData.SetAttribute("SimUUID", this.SimUUID.ToString());
|
|
||||||
|
|
||||||
this.RegionName = GetString(configData, "SimName", "OpenSim test", "Region Name");
|
|
||||||
|
|
||||||
//m_regionLocX = (uint) GetInt(configData, "SimLocationX", 1000, "Grid Location X");
|
|
||||||
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("SimLocationX");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
string location = MainLog.Instance.CmdPrompt("Grid Location X", "1000");
|
|
||||||
configData.SetAttribute("SimLocationX", location);
|
|
||||||
m_regionLocX = (uint)Convert.ToUInt32(location);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_regionLocX = (uint)Convert.ToUInt32(attri);
|
|
||||||
}
|
|
||||||
// Sim/Grid location Y
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("SimLocationY");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
string location = MainLog.Instance.CmdPrompt("Grid Location Y", "1000");
|
|
||||||
configData.SetAttribute("SimLocationY", location);
|
|
||||||
m_regionLocY = (uint)Convert.ToUInt32(location);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_regionLocY = (uint)Convert.ToUInt32(attri);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_regionHandle = null;
|
|
||||||
|
|
||||||
this.DataStore = GetString(configData, "Datastore", "localworld.yap", "Filename for local storage");
|
|
||||||
|
|
||||||
string internalAddress = GetString(configData, "InternalIPAddress", "0.0.0.0", "Internal IP Address for UDP client connections").ToString();
|
|
||||||
int internalPort = GetIPPort(configData, "InternalIPPort", "9000", "Internal IP Port for UDP client connections");
|
|
||||||
IPAddress internalIPAddress = Util.GetHostFromDNS(internalAddress);
|
|
||||||
m_internalEndPoint = new IPEndPoint(internalIPAddress, internalPort);
|
|
||||||
|
|
||||||
m_externalHostName = GetString(configData, "ExternalHostName", "127.0.0.1", "External Host Name");
|
|
||||||
|
|
||||||
estateSettings.terrainFile =
|
|
||||||
GetString(configData, "TerrainFile", "default.r32", "GENERAL SETTING: Default Terrain File");
|
|
||||||
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("TerrainMultiplier");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
string re = MainLog.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0");
|
|
||||||
this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture);
|
|
||||||
configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.estateSettings.terrainMultiplier = Convert.ToDouble(attri);
|
|
||||||
}
|
|
||||||
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("MasterAvatarFirstName");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.MasterAvatarFirstName = MainLog.Instance.CmdPrompt("First name of Master Avatar (Land and Region Owner)", "Test");
|
|
||||||
|
|
||||||
configData.SetAttribute("MasterAvatarFirstName", this.MasterAvatarFirstName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.MasterAvatarFirstName = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("MasterAvatarLastName");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.MasterAvatarLastName = MainLog.Instance.CmdPrompt("Last name of Master Avatar (Land and Region Owner)", "User");
|
|
||||||
|
|
||||||
configData.SetAttribute("MasterAvatarLastName", this.MasterAvatarLastName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.MasterAvatarLastName = attri;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isSandbox) //Sandbox Mode Specific Settings
|
|
||||||
{
|
|
||||||
attri = "";
|
|
||||||
attri = configData.GetAttribute("MasterAvatarSandboxPassword");
|
|
||||||
if (attri == "")
|
|
||||||
{
|
|
||||||
this.MasterAvatarSandboxPassword = MainLog.Instance.CmdPrompt("Password of Master Avatar (Needed for sandbox mode account creation only)", "test");
|
|
||||||
|
|
||||||
//Should I store this?
|
|
||||||
configData.SetAttribute("MasterAvatarSandboxPassword", this.MasterAvatarSandboxPassword);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.MasterAvatarSandboxPassword = attri;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configData.Commit();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
|
|
||||||
MainLog.Instance.Warn(e.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
MainLog.Instance.Verbose("Sim settings loaded:");
|
|
||||||
MainLog.Instance.Verbose("UUID: " + this.SimUUID.ToStringHyphenated());
|
|
||||||
MainLog.Instance.Verbose("Name: " + this.RegionName);
|
|
||||||
MainLog.Instance.Verbose("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]");
|
|
||||||
MainLog.Instance.Verbose("Region Handle: " + this.RegionHandle.ToString());
|
|
||||||
MainLog.Instance.Verbose("Listening on IP end point: " + m_internalEndPoint.ToString() );
|
|
||||||
MainLog.Instance.Verbose("Sandbox Mode? " + isSandbox.ToString());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private uint GetInt(IGenericConfig configData, string p, int p_3, string p_4)
|
public void handleIncomingConfiguration(string configuration_key, object configuration_result)
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
switch (configuration_key)
|
||||||
}
|
|
||||||
|
|
||||||
private string GetString(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
|
|
||||||
{
|
|
||||||
string s = configData.GetAttribute(attrName);
|
|
||||||
|
|
||||||
if (String.IsNullOrEmpty( s ))
|
|
||||||
{
|
{
|
||||||
s = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
|
case "sim_UUID":
|
||||||
configData.SetAttribute(attrName, s );
|
this.SimUUID = (LLUUID)configuration_result;
|
||||||
|
break;
|
||||||
|
case "sim_name":
|
||||||
|
this.RegionName = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "sim_location_x":
|
||||||
|
this.m_regionLocX = (uint)configuration_result;
|
||||||
|
break;
|
||||||
|
case "sim_location_y":
|
||||||
|
this.m_regionLocY = (uint)configuration_result;
|
||||||
|
break;
|
||||||
|
case "datastore":
|
||||||
|
this.DataStore = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "internal_ip_address":
|
||||||
|
IPAddress address = (IPAddress)configuration_result;
|
||||||
|
this.m_internalEndPoint = new IPEndPoint(address, 0);
|
||||||
|
break;
|
||||||
|
case "internal_ip_port":
|
||||||
|
this.m_internalEndPoint.Port = (int)configuration_result;
|
||||||
|
break;
|
||||||
|
case "external_host_name":
|
||||||
|
this.m_externalHostName = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "terrain_file":
|
||||||
|
this.estateSettings.terrainFile = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "terrain_multiplier":
|
||||||
|
this.estateSettings.terrainMultiplier = (double)configuration_result;
|
||||||
|
break;
|
||||||
|
case "master_avatar_first":
|
||||||
|
this.MasterAvatarFirstName = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "master_avatar_last":
|
||||||
|
this.MasterAvatarLastName = (string)configuration_result;
|
||||||
|
break;
|
||||||
|
case "master_avatar_pass":
|
||||||
|
this.MasterAvatarSandboxPassword = (string)configuration_result;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private IPAddress GetIPAddress(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
|
|
||||||
{
|
|
||||||
string addressStr = configData.GetAttribute(attrName);
|
|
||||||
|
|
||||||
IPAddress address;
|
|
||||||
|
|
||||||
if (!IPAddress.TryParse(addressStr, out address))
|
|
||||||
{
|
|
||||||
address = MainLog.Instance.CmdPromptIPAddress(prompt, defaultvalue);
|
|
||||||
configData.SetAttribute(attrName, address.ToString());
|
|
||||||
}
|
|
||||||
return address;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int GetIPPort(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
|
|
||||||
{
|
|
||||||
string portStr = configData.GetAttribute(attrName);
|
|
||||||
|
|
||||||
int port;
|
|
||||||
|
|
||||||
if (!int.TryParse(portStr, out port))
|
|
||||||
{
|
|
||||||
port = MainLog.Instance.CmdPromptIPPort(prompt, defaultvalue);
|
|
||||||
configData.SetAttribute(attrName, port.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
// General Information about an assembly is controlled through the following
|
|
||||||
// set of attributes. Change these attribute values to modify the information
|
|
||||||
// associated with an assembly.
|
|
||||||
[assembly: AssemblyTitle("OpenSim.GenericConfig")]
|
|
||||||
[assembly: AssemblyDescription("")]
|
|
||||||
[assembly: AssemblyConfiguration("")]
|
|
||||||
[assembly: AssemblyCompany("")]
|
|
||||||
[assembly: AssemblyProduct("OpenSim.GenericConfig")]
|
|
||||||
[assembly: AssemblyCopyright("Copyright © 2007")]
|
|
||||||
[assembly: AssemblyTrademark("")]
|
|
||||||
[assembly: AssemblyCulture("")]
|
|
||||||
|
|
||||||
// Setting ComVisible to false makes the types in this assembly not visible
|
|
||||||
// to COM components. If you need to access a type in this assembly from
|
|
||||||
// COM, set the ComVisible attribute to true on that type.
|
|
||||||
[assembly: ComVisible(false)]
|
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
|
||||||
[assembly: Guid("285a3047-f165-46c8-8767-b51428738a09")]
|
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
|
||||||
//
|
|
||||||
// Major Version
|
|
||||||
// Minor Version
|
|
||||||
// Build Number
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
|
||||||
// by using the '*' as shown below:
|
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
|
@ -38,6 +38,8 @@ using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Inventory;
|
using OpenSim.Framework.Inventory;
|
||||||
using OpenSim.Framework.Utilities;
|
using OpenSim.Framework.Utilities;
|
||||||
|
|
||||||
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
namespace OpenSim.Framework.UserManagement
|
namespace OpenSim.Framework.UserManagement
|
||||||
{
|
{
|
||||||
public abstract class UserManagerBase
|
public abstract class UserManagerBase
|
||||||
|
|
|
@ -38,6 +38,8 @@ using OpenSim.Framework.Data;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Utilities;
|
using OpenSim.Framework.Utilities;
|
||||||
|
|
||||||
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
namespace OpenSim.Grid.GridServer
|
namespace OpenSim.Grid.GridServer
|
||||||
{
|
{
|
||||||
class GridManager
|
class GridManager
|
||||||
|
|
|
@ -33,7 +33,8 @@ using System.Timers;
|
||||||
using OpenSim.Framework.Console;
|
using OpenSim.Framework.Console;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Servers;
|
using OpenSim.Framework.Servers;
|
||||||
using OpenSim.GenericConfig;
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
using Timer=System.Timers.Timer;
|
using Timer=System.Timers.Timer;
|
||||||
|
|
||||||
namespace OpenSim.Grid.GridServer
|
namespace OpenSim.Grid.GridServer
|
||||||
|
@ -47,7 +48,6 @@ namespace OpenSim.Grid.GridServer
|
||||||
public GridConfig Cfg;
|
public GridConfig Cfg;
|
||||||
|
|
||||||
public static OpenGrid_Main thegrid;
|
public static OpenGrid_Main thegrid;
|
||||||
protected IGenericConfig localXMLConfig;
|
|
||||||
|
|
||||||
public static bool setuponly;
|
public static bool setuponly;
|
||||||
|
|
||||||
|
@ -105,14 +105,8 @@ namespace OpenSim.Grid.GridServer
|
||||||
|
|
||||||
public void Startup()
|
public void Startup()
|
||||||
{
|
{
|
||||||
this.localXMLConfig = new XmlConfig("GridServerConfig.xml");
|
|
||||||
this.localXMLConfig.LoadData();
|
|
||||||
this.ConfigDB(this.localXMLConfig);
|
|
||||||
this.localXMLConfig.Close();
|
|
||||||
|
|
||||||
m_console.Verbose( "Main.cs:Startup() - Loading configuration");
|
this.Cfg = new GridConfig("GRID SERVER","GridServer_Config.xml"); //Yeah srsly, that's it.
|
||||||
Cfg = this.LoadConfigDll(this.ConfigDll);
|
|
||||||
Cfg.InitConfig();
|
|
||||||
if (setuponly) Environment.Exit(0);
|
if (setuponly) Environment.Exit(0);
|
||||||
|
|
||||||
m_console.Verbose( "Main.cs:Startup() - Connecting to Storage Server");
|
m_console.Verbose( "Main.cs:Startup() - Connecting to Storage Server");
|
||||||
|
@ -148,34 +142,6 @@ namespace OpenSim.Grid.GridServer
|
||||||
simCheckTimer.Enabled = true;
|
simCheckTimer.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GridConfig LoadConfigDll(string dllName)
|
|
||||||
{
|
|
||||||
Assembly pluginAssembly = Assembly.LoadFrom(dllName);
|
|
||||||
GridConfig config = null;
|
|
||||||
|
|
||||||
foreach (Type pluginType in pluginAssembly.GetTypes())
|
|
||||||
{
|
|
||||||
if (pluginType.IsPublic)
|
|
||||||
{
|
|
||||||
if (!pluginType.IsAbstract)
|
|
||||||
{
|
|
||||||
Type typeInterface = pluginType.GetInterface("IGridConfig", true);
|
|
||||||
|
|
||||||
if (typeInterface != null)
|
|
||||||
{
|
|
||||||
IGridConfig plug = (IGridConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
|
|
||||||
config = plug.GetConfigObject();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
typeInterface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pluginAssembly = null;
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CheckSims(object sender, ElapsedEventArgs e)
|
public void CheckSims(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -35,7 +35,7 @@ using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Servers;
|
using OpenSim.Framework.Servers;
|
||||||
using OpenSim.Framework.User;
|
using OpenSim.Framework.User;
|
||||||
using OpenSim.Framework.Utilities;
|
using OpenSim.Framework.Utilities;
|
||||||
using OpenSim.GenericConfig;
|
using OpenSim.Framework.Configuration;
|
||||||
|
|
||||||
namespace OpenSim.Grid.UserServer
|
namespace OpenSim.Grid.UserServer
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,6 @@ namespace OpenSim.Grid.UserServer
|
||||||
private string ConfigDll = "OpenSim.Grid.UserServer.Config.dll";
|
private string ConfigDll = "OpenSim.Grid.UserServer.Config.dll";
|
||||||
private string StorageDll = "OpenSim.Framework.Data.MySQL.dll";
|
private string StorageDll = "OpenSim.Framework.Data.MySQL.dll";
|
||||||
private UserConfig Cfg;
|
private UserConfig Cfg;
|
||||||
protected IGenericConfig localXMLConfig;
|
|
||||||
|
|
||||||
public UserManager m_userManager;
|
public UserManager m_userManager;
|
||||||
|
|
||||||
|
@ -83,14 +82,7 @@ namespace OpenSim.Grid.UserServer
|
||||||
|
|
||||||
public void Startup()
|
public void Startup()
|
||||||
{
|
{
|
||||||
this.localXMLConfig = new XmlConfig("UserServerConfig.xml");
|
this.Cfg = new UserConfig("USER SERVER", "UserServer_Config.xml");
|
||||||
this.localXMLConfig.LoadData();
|
|
||||||
this.ConfigDB(this.localXMLConfig);
|
|
||||||
this.localXMLConfig.Close();
|
|
||||||
|
|
||||||
MainLog.Instance.Verbose("Main.cs:Startup() - Loading configuration");
|
|
||||||
Cfg = this.LoadConfigDll(this.ConfigDll);
|
|
||||||
Cfg.InitConfig();
|
|
||||||
|
|
||||||
MainLog.Instance.Verbose("Main.cs:Startup() - Establishing data connection");
|
MainLog.Instance.Verbose("Main.cs:Startup() - Establishing data connection");
|
||||||
m_userManager = new UserManager();
|
m_userManager = new UserManager();
|
||||||
|
@ -179,34 +171,6 @@ namespace OpenSim.Grid.UserServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserConfig LoadConfigDll(string dllName)
|
|
||||||
{
|
|
||||||
Assembly pluginAssembly = Assembly.LoadFrom(dllName);
|
|
||||||
UserConfig config = null;
|
|
||||||
|
|
||||||
foreach (Type pluginType in pluginAssembly.GetTypes())
|
|
||||||
{
|
|
||||||
if (pluginType.IsPublic)
|
|
||||||
{
|
|
||||||
if (!pluginType.IsAbstract)
|
|
||||||
{
|
|
||||||
Type typeInterface = pluginType.GetInterface("IUserConfig", true);
|
|
||||||
|
|
||||||
if (typeInterface != null)
|
|
||||||
{
|
|
||||||
IUserConfig plug = (IUserConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
|
|
||||||
config = plug.GetConfigObject();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
typeInterface = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pluginAssembly = null;
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Show(string ShowWhat)
|
public void Show(string ShowWhat)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ using OpenSim.Framework.Data;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Framework.Servers;
|
using OpenSim.Framework.Servers;
|
||||||
using OpenSim.Framework.Types;
|
using OpenSim.Framework.Types;
|
||||||
using OpenSim.GenericConfig;
|
using OpenSim.Framework.Configuration;
|
||||||
using OpenSim.Physics.Manager;
|
using OpenSim.Physics.Manager;
|
||||||
using OpenSim.Region.Caches;
|
using OpenSim.Region.Caches;
|
||||||
using OpenSim.Region.ClientStack;
|
using OpenSim.Region.ClientStack;
|
||||||
|
@ -85,6 +85,9 @@ namespace OpenSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void StartUp()
|
public override void StartUp()
|
||||||
{
|
{
|
||||||
|
m_log = new LogBase(m_logFilename, "Region", this, m_silent);
|
||||||
|
MainLog.Instance = m_log;
|
||||||
|
|
||||||
base.StartUp();
|
base.StartUp();
|
||||||
|
|
||||||
if (!m_sandbox)
|
if (!m_sandbox)
|
||||||
|
@ -108,27 +111,16 @@ namespace OpenSim
|
||||||
{
|
{
|
||||||
string path2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Regions");
|
string path2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Regions");
|
||||||
string path3 = Path.Combine(path2, "default.xml");
|
string path3 = Path.Combine(path2, "default.xml");
|
||||||
Console.WriteLine("Creating default region config file");
|
|
||||||
//TODO create default region
|
RegionInfo regionInfo = new RegionInfo("DEFAULT REGION CONFIG", path3);
|
||||||
IGenericConfig defaultConfig = new XmlConfig(path3);
|
|
||||||
defaultConfig.LoadData();
|
|
||||||
defaultConfig.Commit();
|
|
||||||
defaultConfig.Close();
|
|
||||||
defaultConfig = null;
|
|
||||||
configFiles = Directory.GetFiles(path, "*.xml");
|
configFiles = Directory.GetFiles(path, "*.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < configFiles.Length; i++)
|
for (int i = 0; i < configFiles.Length; i++)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Loading region config file");
|
Console.WriteLine("Loading region config file");
|
||||||
|
RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), configFiles[i]);
|
||||||
IGenericConfig regionConfig = new XmlConfig(configFiles[i]);
|
|
||||||
RegionInfo regionInfo = new RegionInfo();
|
|
||||||
regionConfig.LoadData();
|
|
||||||
regionInfo.InitConfig(this.m_sandbox, regionConfig);
|
|
||||||
regionConfig.Close();
|
|
||||||
|
|
||||||
|
|
||||||
UDPServer udpServer;
|
UDPServer udpServer;
|
||||||
Scene scene = SetupScene(regionInfo, out udpServer);
|
Scene scene = SetupScene(regionInfo, out udpServer);
|
||||||
|
|
||||||
|
@ -159,21 +151,7 @@ namespace OpenSim
|
||||||
|
|
||||||
protected override void Initialize()
|
protected override void Initialize()
|
||||||
{
|
{
|
||||||
IGenericConfig localConfig = new XmlConfig(m_configFileName);
|
|
||||||
localConfig.LoadData();
|
|
||||||
|
|
||||||
if (m_useConfigFile)
|
|
||||||
{
|
|
||||||
SetupFromConfigFile(localConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
StartLog();
|
|
||||||
|
|
||||||
m_networkServersInfo.InitConfig(m_sandbox, localConfig);
|
|
||||||
m_httpServerPort = m_networkServersInfo.HttpListenerPort;
|
m_httpServerPort = m_networkServersInfo.HttpListenerPort;
|
||||||
|
|
||||||
localConfig.Close();
|
|
||||||
|
|
||||||
m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
|
m_assetCache = new AssetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Net.Sockets;
|
||||||
using libsecondlife.Packets;
|
using libsecondlife.Packets;
|
||||||
using OpenSim.Assets;
|
using OpenSim.Assets;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Framework.Types;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Region.Caches;
|
using OpenSim.Region.Caches;
|
||||||
|
|
||||||
|
|
|
@ -65,9 +65,9 @@ namespace OpenSim.Region.ClientStack
|
||||||
|
|
||||||
virtual public void StartUp()
|
virtual public void StartUp()
|
||||||
{
|
{
|
||||||
|
|
||||||
ClientView.TerrainManager = new TerrainManager(new SecondLife());
|
ClientView.TerrainManager = new TerrainManager(new SecondLife());
|
||||||
m_networkServersInfo = new NetworkServersInfo();
|
m_networkServersInfo = new NetworkServersInfo("NETWORK SERVERS INFO", "network_servers_information.xml");
|
||||||
RegionInfo m_regionInfo = new RegionInfo();
|
|
||||||
|
|
||||||
Initialize();
|
Initialize();
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ using System.Net.Sockets;
|
||||||
using libsecondlife.Packets;
|
using libsecondlife.Packets;
|
||||||
using OpenSim.Assets;
|
using OpenSim.Assets;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Framework.Types;
|
||||||
using OpenSim.Framework.Console;
|
using OpenSim.Framework.Console;
|
||||||
using OpenSim.Framework.Interfaces;
|
using OpenSim.Framework.Interfaces;
|
||||||
using OpenSim.Region.Caches;
|
using OpenSim.Region.Caches;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Framework.Types;
|
||||||
using OpenSim.Framework.Communications;
|
using OpenSim.Framework.Communications;
|
||||||
using OpenSim.Framework.Servers;
|
using OpenSim.Framework.Servers;
|
||||||
using OpenSim.Region.Capabilities;
|
using OpenSim.Region.Capabilities;
|
||||||
|
|
79
prebuild.xml
79
prebuild.xml
|
@ -53,6 +53,7 @@
|
||||||
<Match pattern="*.cs" recurse="true"/>
|
<Match pattern="*.cs" recurse="true"/>
|
||||||
</Files>
|
</Files>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
|
|
||||||
<Project name="OpenSim.Framework.Data" path="OpenSim/Framework/Data" type="Library">
|
<Project name="OpenSim.Framework.Data" path="OpenSim/Framework/Data" type="Library">
|
||||||
<Configuration name="Debug">
|
<Configuration name="Debug">
|
||||||
|
@ -102,6 +103,8 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Project name="OpenSim.Framework.Servers" path="OpenSim/Framework/Servers" type="Library">
|
<Project name="OpenSim.Framework.Servers" path="OpenSim/Framework/Servers" type="Library">
|
||||||
<Configuration name="Debug">
|
<Configuration name="Debug">
|
||||||
<Options>
|
<Options>
|
||||||
|
@ -392,29 +395,7 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
<!-- Xml Config Dll -->
|
|
||||||
<Project name="OpenSim.Framework.GenericConfig.Xml" path="OpenSim/Framework/GenericConfig/Xml" type="Library">
|
|
||||||
<Configuration name="Debug">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration name="Release">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
|
|
||||||
<ReferencePath>../../../../bin/</ReferencePath>
|
|
||||||
<Reference name="System"/>
|
|
||||||
<Reference name="System.Xml"/>
|
|
||||||
<Reference name="OpenSim.Framework"/>
|
|
||||||
|
|
||||||
<Files>
|
|
||||||
<Match pattern="*.cs" recurse="true"/>
|
|
||||||
</Files>
|
|
||||||
</Project>
|
|
||||||
|
|
||||||
<!-- Terrain engine -->
|
<!-- Terrain engine -->
|
||||||
<Project name="OpenSim.Region.Terrain.BasicTerrain" path="OpenSim/Region/Terrain.BasicTerrain" type="Library">
|
<Project name="OpenSim.Region.Terrain.BasicTerrain" path="OpenSim/Region/Terrain.BasicTerrain" type="Library">
|
||||||
<Configuration name="Debug">
|
<Configuration name="Debug">
|
||||||
|
@ -487,7 +468,6 @@
|
||||||
<Reference name="OpenSim.Framework"/>
|
<Reference name="OpenSim.Framework"/>
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
<Reference name="OpenSim.Framework.Console"/>
|
||||||
<Reference name="OpenSim.Framework.Data"/>
|
<Reference name="OpenSim.Framework.Data"/>
|
||||||
<Reference name="OpenSim.Framework.GenericConfig.Xml"/>
|
|
||||||
<Reference name="OpenSim.Framework.Servers"/>
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
<Reference name="libsecondlife.dll"/>
|
<Reference name="libsecondlife.dll"/>
|
||||||
<Reference name="Db4objects.Db4o.dll"/>
|
<Reference name="Db4objects.Db4o.dll"/>
|
||||||
|
@ -602,7 +582,6 @@
|
||||||
<Reference name="OpenSim.Region.Terrain.BasicTerrain"/>
|
<Reference name="OpenSim.Region.Terrain.BasicTerrain"/>
|
||||||
<Reference name="OpenSim.Framework"/>
|
<Reference name="OpenSim.Framework"/>
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
<Reference name="OpenSim.Framework.Console"/>
|
||||||
<Reference name="OpenSim.Framework.GenericConfig.Xml"/>
|
|
||||||
<Reference name="OpenSim.Region.Physics.Manager"/>
|
<Reference name="OpenSim.Region.Physics.Manager"/>
|
||||||
<Reference name="OpenSim.Framework.Servers"/>
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
<Reference name="OpenSim.Region.Caches"/>
|
<Reference name="OpenSim.Region.Caches"/>
|
||||||
|
@ -705,7 +684,6 @@
|
||||||
<Reference name="OpenSim.Framework.Servers"/>
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
<Reference name="OpenSim.Region.Environment"/>
|
<Reference name="OpenSim.Region.Environment"/>
|
||||||
<Reference name="OpenSim.Region.ClientStack"/>
|
<Reference name="OpenSim.Region.ClientStack"/>
|
||||||
<Reference name="OpenSim.Framework.GenericConfig.Xml"/>
|
|
||||||
<Reference name="OpenSim.Framework.Communications"/>
|
<Reference name="OpenSim.Framework.Communications"/>
|
||||||
<Reference name="OpenSim.Region.Communications.OGS1"/>
|
<Reference name="OpenSim.Region.Communications.OGS1"/>
|
||||||
<Reference name="OpenSim.Region.Caches"/>
|
<Reference name="OpenSim.Region.Caches"/>
|
||||||
|
@ -881,7 +859,6 @@
|
||||||
<Reference name="OpenSim.Framework.Servers"/>
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
<Reference name="OpenSim.Framework.Data"/>
|
<Reference name="OpenSim.Framework.Data"/>
|
||||||
<Reference name="OpenSim.Grid.Framework.Manager"/>
|
<Reference name="OpenSim.Grid.Framework.Manager"/>
|
||||||
<Reference name="OpenSim.Framework.GenericConfig.Xml"/>
|
|
||||||
<Reference name="libsecondlife.dll"/>
|
<Reference name="libsecondlife.dll"/>
|
||||||
<Reference name="Db4objects.Db4o.dll"/>
|
<Reference name="Db4objects.Db4o.dll"/>
|
||||||
<Reference name="XMLRPC.dll"/>
|
<Reference name="XMLRPC.dll"/>
|
||||||
|
@ -939,7 +916,6 @@
|
||||||
<Reference name="OpenSim.Framework"/>
|
<Reference name="OpenSim.Framework"/>
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
<Reference name="OpenSim.Framework.Console"/>
|
||||||
<Reference name="OpenSim.Framework.Data"/>
|
<Reference name="OpenSim.Framework.Data"/>
|
||||||
<Reference name="OpenSim.Framework.GenericConfig.Xml"/>
|
|
||||||
<Reference name="OpenSim.Framework.Servers"/>
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
<Reference name="OpenSim.Framework.UserManagement" />
|
<Reference name="OpenSim.Framework.UserManagement" />
|
||||||
<Reference name="libsecondlife.dll"/>
|
<Reference name="libsecondlife.dll"/>
|
||||||
|
@ -951,55 +927,8 @@
|
||||||
</Files>
|
</Files>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
<Project name="OpenSim.Grid.GridServer.Config" path="OpenSim/Grid/GridServer.Config" type="Library">
|
|
||||||
<Configuration name="Debug">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration name="Release">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
|
|
||||||
<ReferencePath>../../../bin/</ReferencePath>
|
|
||||||
<Reference name="System" localCopy="false"/>
|
|
||||||
<Reference name="System.Data.dll"/>
|
|
||||||
<Reference name="System.Xml"/>
|
|
||||||
<Reference name="libsecondlife.dll"/>
|
|
||||||
<Reference name="Db4objects.Db4o.dll"/>
|
|
||||||
<Reference name="OpenSim.Framework"/>
|
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
|
||||||
<Files>
|
|
||||||
<Match pattern="*.cs" recurse="true"/>
|
|
||||||
</Files>
|
|
||||||
</Project>
|
|
||||||
|
|
||||||
<Project name="OpenSim.Grid.UserServer.Config" path="OpenSim/Grid/UserServer.Config" type="Library">
|
|
||||||
<Configuration name="Debug">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration name="Release">
|
|
||||||
<Options>
|
|
||||||
<OutputPath>../../../bin/</OutputPath>
|
|
||||||
</Options>
|
|
||||||
</Configuration>
|
|
||||||
|
|
||||||
<ReferencePath>../../../bin/</ReferencePath>
|
|
||||||
<Reference name="System" localCopy="false"/>
|
|
||||||
<Reference name="System.Data.dll"/>
|
|
||||||
<Reference name="System.Xml"/>
|
|
||||||
<Reference name="libsecondlife.dll"/>
|
|
||||||
<Reference name="Db4objects.Db4o.dll"/>
|
|
||||||
<Reference name="OpenSim.Framework"/>
|
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
|
||||||
<Files>
|
|
||||||
<Match pattern="*.cs" recurse="true"/>
|
|
||||||
</Files>
|
|
||||||
</Project>
|
|
||||||
|
|
||||||
</Solution>
|
</Solution>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue