aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/RegionInfo.cs
diff options
context:
space:
mode:
authorMelanie2014-04-12 16:58:07 +0100
committerMelanie2014-04-12 16:58:07 +0100
commit5d964a6424b301a9175becd6c878e542b7d278eb (patch)
treea0ce19775822fd1d3298276dc893a061127aedbc /OpenSim/Framework/RegionInfo.cs
parentTweak to PrimLimits and add missing Regions.ini example (diff)
downloadopensim-SC-5d964a6424b301a9175becd6c878e542b7d278eb.zip
opensim-SC-5d964a6424b301a9175becd6c878e542b7d278eb.tar.gz
opensim-SC-5d964a6424b301a9175becd6c878e542b7d278eb.tar.bz2
opensim-SC-5d964a6424b301a9175becd6c878e542b7d278eb.tar.xz
Remove the old XML format parsing. Now additional region params can just be
added as they are already exposed through an API when using Nini. That will remove the need to always edit RegioInfo just to add a region based setting.
Diffstat (limited to 'OpenSim/Framework/RegionInfo.cs')
-rw-r--r--OpenSim/Framework/RegionInfo.cs267
1 files changed, 6 insertions, 261 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 44d05b7..6b3adcc 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -102,7 +102,6 @@ namespace OpenSim.Framework
102 private static readonly string LogHeader = "[REGION INFO]"; 102 private static readonly string LogHeader = "[REGION INFO]";
103 103
104 public bool commFailTF = false; 104 public bool commFailTF = false;
105 public ConfigurationMember configMember;
106 public string RegionFile = String.Empty; 105 public string RegionFile = String.Empty;
107 public bool isSandbox = false; 106 public bool isSandbox = false;
108 public bool Persistent = true; 107 public bool Persistent = true;
@@ -204,7 +203,6 @@ namespace OpenSim.Framework
204 try 203 try
205 { 204 {
206 // This will throw if it's not legal Nini XML format 205 // This will throw if it's not legal Nini XML format
207 // and thereby toss it to the legacy loader
208 // 206 //
209 IConfigSource xmlsource = new XmlConfigSource(filename); 207 IConfigSource xmlsource = new XmlConfigSource(filename);
210 208
@@ -217,21 +215,18 @@ namespace OpenSim.Framework
217 catch (Exception) 215 catch (Exception)
218 { 216 {
219 } 217 }
220
221 configMember =
222 new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig);
223 configMember.performConfigurationRetrieve();
224 RegionFile = filename;
225 } 218 }
226 219
227 // The web loader uses this 220 // The web loader uses this
228 // 221 //
229 public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig, IConfigSource configSource) 222 public RegionInfo(string description, XmlNode xmlNode, bool skipConsoleConfig, IConfigSource configSource)
230 { 223 {
231 // m_configSource = configSource; 224 XmlElement elem = (XmlElement)xmlNode;
232 configMember = 225 string name = elem.GetAttribute("Name");
233 new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig); 226 string xmlstr = "<Nini>" + xmlNode.OuterXml + "</Nini>";
234 configMember.performConfigurationRetrieve(); 227 XmlConfigSource source = new XmlConfigSource(XmlReader.Create(new StringReader(xmlstr)));
228 ReadNiniConfig(source, name);
229
235 m_serverURI = string.Empty; 230 m_serverURI = string.Empty;
236 } 231 }
237 232
@@ -889,264 +884,14 @@ namespace OpenSim.Framework
889 884
890 return; 885 return;
891 } 886 }
892 else if (filename.ToLower().EndsWith(".xml"))
893 {
894 configMember = new ConfigurationMember(filename, description, loadConfigurationOptionsFromMe,
895 ignoreIncomingConfiguration, false);
896 configMember.performConfigurationRetrieve();
897 RegionFile = filename;
898 }
899 else 887 else
900 throw new Exception("Invalid file type for region persistence."); 888 throw new Exception("Invalid file type for region persistence.");
901 } 889 }
902 890
903 public void loadConfigurationOptionsFromMe()
904 {
905 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_UUID_NULL_FREE,
906 "UUID of Region (Default is recommended, random UUID)",
907 RegionID.ToString(), true);
908 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
909 "Region Name", RegionName, true);
910
911 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
912 "Grid Location (X Axis)", RegionLocX.ToString(), true);
913 configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
914 "Grid Location (Y Axis)", RegionLocY.ToString(), true);
915 configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
916 "Size of region in X dimension", RegionSizeX.ToString(), true);
917 configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
918 "Size of region in Y dimension", RegionSizeY.ToString(), true);
919 configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
920 "Size of region in Z dimension", RegionSizeZ.ToString(), true);
921
922 //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false);
923 configMember.addConfigurationOption("internal_ip_address",
924 ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS,
925 "Internal IP Address for incoming UDP client connections",
926 m_internalEndPoint.Address.ToString(),
927 true);
928 configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
929 "Internal IP Port for incoming UDP client connections",
930 m_internalEndPoint.Port.ToString(), true);
931 configMember.addConfigurationOption("allow_alternate_ports",
932 ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
933 "Allow sim to find alternate UDP ports when ports are in use?",
934 m_allow_alternate_ports.ToString(), true);
935 configMember.addConfigurationOption("external_host_name",
936 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
937 "External Host Name", m_externalHostName, true);
938 configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
939 "Last Map UUID", lastMapUUID.ToString(), true);
940 configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
941 "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
942
943 configMember.addConfigurationOption("nonphysical_prim_min", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
944 "Minimum size for nonphysical prims", m_nonphysPrimMin.ToString(), true);
945
946 configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
947 "Maximum size for nonphysical prims", m_nonphysPrimMax.ToString(), true);
948
949 configMember.addConfigurationOption("physical_prim_min", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
950 "Minimum size for nonphysical prims", m_physPrimMin.ToString(), true);
951
952 configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
953 "Maximum size for physical prims", m_physPrimMax.ToString(), true);
954
955 configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
956 "Clamp prims to max size", m_clampPrimSize.ToString(), true);
957
958 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
959 "Max objects this sim will hold", m_objectCapacity.ToString(), true);
960
961 configMember.addConfigurationOption("prims_per_user", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
962 "Max objects one user may rez", m_maxPrimsPerUser.ToString(), true);
963
964 configMember.addConfigurationOption("linkset_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
965 "Max prims an object will hold", m_linksetCapacity.ToString(), true);
966
967 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
968 "Max avatars this sim will hold", m_agentCapacity.ToString(), true);
969
970 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
971 "Scope ID for this region", ScopeID.ToString(), true);
972
973 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
974 "Free form string describing the type of region", String.Empty, true);
975
976 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
977 "UUID of a texture to use as the map for this region", m_maptileStaticUUID.ToString(), true);
978
979 configMember.addConfigurationOption("region_static_mapfile", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
980 "Filename of a texture to use as the map for this region", MaptileStaticFile, true);
981 }
982
983 public void loadConfigurationOptions()
984 {
985 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
986 "UUID of Region (Default is recommended, random UUID)",
987 UUID.Random().ToString(), true);
988 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
989 "Region Name", "OpenSim Test", false);
990
991 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
992 "Grid Location (X Axis)", "1000", false);
993 configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
994 "Grid Location (Y Axis)", "1000", false);
995 configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
996 "Size of region in X dimension", Constants.RegionSize.ToString(), false);
997 configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
998 "Size of region in Y dimension", Constants.RegionSize.ToString(), false);
999 configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
1000 "Size of region in Z dimension", Constants.RegionHeight.ToString(), false);
1001
1002 //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false);
1003 configMember.addConfigurationOption("internal_ip_address",
1004 ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS,
1005 "Internal IP Address for incoming UDP client connections", "0.0.0.0",
1006 false);
1007 configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1008 "Internal IP Port for incoming UDP client connections",
1009 ConfigSettings.DefaultRegionHttpPort.ToString(), false);
1010 configMember.addConfigurationOption("allow_alternate_ports", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
1011 "Allow sim to find alternate UDP ports when ports are in use?",
1012 "false", true);
1013 configMember.addConfigurationOption("external_host_name",
1014 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
1015 "External Host Name", "127.0.0.1", false);
1016 configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1017 "Last Map UUID", lastMapUUID.ToString(), true);
1018
1019 configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
1020 "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
1021
1022 configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1023 "Maximum size for nonphysical prims", "0", true);
1024
1025 configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1026 "Maximum size for physical prims", "0", true);
1027
1028 configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
1029 "Clamp prims to max size", "false", true);
1030
1031 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1032 "Max objects this sim will hold", "15000", true);
1033
1034 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1035 "Max avatars this sim will hold", "100", true);
1036
1037 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1038 "Scope ID for this region", UUID.Zero.ToString(), true);
1039
1040 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
1041 "Region Type", String.Empty, true);
1042
1043 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1044 "UUID of a texture to use as the map for this region", String.Empty, true);
1045
1046 configMember.addConfigurationOption("region_static_mapfile", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
1047 "Filename of a texture to use as the map for this region", String.Empty, true);
1048 }
1049
1050 public bool handleIncomingConfiguration(string configuration_key, object configuration_result)
1051 {
1052 switch (configuration_key)
1053 {
1054 case "sim_UUID":
1055 RegionID = (UUID) configuration_result;
1056 originRegionID = (UUID) configuration_result;
1057 break;
1058 case "sim_name":
1059 RegionName = (string) configuration_result;
1060 break;
1061 case "sim_location_x":
1062 RegionLocX = (uint) configuration_result;
1063 break;
1064 case "sim_location_y":
1065 RegionLocY = (uint) configuration_result;
1066 break;
1067 case "sim_size_x":
1068 RegionSizeX = (uint) configuration_result;
1069 break;
1070 case "sim_size_y":
1071 RegionSizeY = (uint) configuration_result;
1072 break;
1073 case "sim_size_z":
1074 RegionSizeZ = (uint) configuration_result;
1075 break;
1076 case "internal_ip_address":
1077 IPAddress address = (IPAddress) configuration_result;
1078 m_internalEndPoint = new IPEndPoint(address, 0);
1079 break;
1080 case "internal_ip_port":
1081 m_internalEndPoint.Port = (int) configuration_result;
1082 break;
1083 case "allow_alternate_ports":
1084 m_allow_alternate_ports = (bool) configuration_result;
1085 break;
1086 case "external_host_name":
1087 if ((string) configuration_result != "SYSTEMIP")
1088 {
1089 m_externalHostName = (string) configuration_result;
1090 }
1091 else
1092 {
1093 m_externalHostName = Util.GetLocalHost().ToString();
1094 }
1095 break;
1096 case "lastmap_uuid":
1097 lastMapUUID = (UUID)configuration_result;
1098 break;
1099 case "lastmap_refresh":
1100 lastMapRefresh = (string)configuration_result;
1101 break;
1102 case "nonphysical_prim_max":
1103 m_nonphysPrimMax = (int)configuration_result;
1104 break;
1105 case "physical_prim_max":
1106 m_physPrimMax = (int)configuration_result;
1107 break;
1108 case "clamp_prim_size":
1109 m_clampPrimSize = (bool)configuration_result;
1110 break;
1111 case "object_capacity":
1112 m_objectCapacity = (int)configuration_result;
1113 break;
1114 case "prims_per_user":
1115 m_maxPrimsPerUser = (int)configuration_result;
1116 break;
1117 case "linkset_capacity":
1118 m_linksetCapacity = (int)configuration_result;
1119 break;
1120 case "agent_capacity":
1121 m_agentCapacity = (int)configuration_result;
1122 break;
1123 case "scope_id":
1124 ScopeID = (UUID)configuration_result;
1125 break;
1126 case "region_type":
1127 m_regionType = (string)configuration_result;
1128 break;
1129 case "region_static_maptile":
1130 m_maptileStaticUUID = (UUID)configuration_result;
1131 break;
1132 case "region_static_mapfile":
1133 MaptileStaticFile = (string)configuration_result;
1134 break;
1135 }
1136
1137 return true;
1138 }
1139
1140 public void SaveLastMapUUID(UUID mapUUID) 891 public void SaveLastMapUUID(UUID mapUUID)
1141 { 892 {
1142 lastMapUUID = mapUUID; 893 lastMapUUID = mapUUID;
1143 lastMapRefresh = Util.UnixTimeSinceEpoch().ToString(); 894 lastMapRefresh = Util.UnixTimeSinceEpoch().ToString();
1144
1145 if (configMember == null)
1146 return;
1147
1148 configMember.forceSetConfigurationOption("lastmap_uuid", mapUUID.ToString());
1149 configMember.forceSetConfigurationOption("lastmap_refresh", lastMapRefresh);
1150 } 895 }
1151 896
1152 public OSDMap PackRegionInfoData() 897 public OSDMap PackRegionInfoData()