diff options
author | Melanie | 2014-04-12 16:58:07 +0100 |
---|---|---|
committer | Melanie | 2014-04-12 16:58:07 +0100 |
commit | 5d964a6424b301a9175becd6c878e542b7d278eb (patch) | |
tree | a0ce19775822fd1d3298276dc893a061127aedbc /OpenSim/Framework/RegionInfo.cs | |
parent | Tweak to PrimLimits and add missing Regions.ini example (diff) | |
download | opensim-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.cs | 267 |
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() |