aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/RegionInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/RegionInfo.cs271
1 files changed, 264 insertions, 7 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 79fbd96..ac77352 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -40,6 +40,7 @@ using OpenMetaverse.StructuredData;
40 40
41namespace OpenSim.Framework 41namespace OpenSim.Framework
42{ 42{
43 [Serializable]
43 public class RegionLightShareData : ICloneable 44 public class RegionLightShareData : ICloneable
44 { 45 {
45 public bool valid = false; 46 public bool valid = false;
@@ -101,6 +102,11 @@ namespace OpenSim.Framework
101 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 102 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
102 private static readonly string LogHeader = "[REGION INFO]"; 103 private static readonly string LogHeader = "[REGION INFO]";
103 104
105
106 public bool commFailTF = false;
107 public ConfigurationMember configMember;
108 public string DataStore = String.Empty;
109
104 public string RegionFile = String.Empty; 110 public string RegionFile = String.Empty;
105 public bool isSandbox = false; 111 public bool isSandbox = false;
106 public bool Persistent = true; 112 public bool Persistent = true;
@@ -527,7 +533,7 @@ namespace OpenSim.Framework
527 return null; 533 return null;
528 } 534 }
529 535
530 private void SetExtraSetting(string key, string value) 536 public void SetExtraSetting(string key, string value)
531 { 537 {
532 string keylower = key.ToLower(); 538 string keylower = key.ToLower();
533 m_extraSettings[keylower] = value; 539 m_extraSettings[keylower] = value;
@@ -823,14 +829,16 @@ namespace OpenSim.Framework
823 string location = String.Format("{0},{1}", RegionLocX, RegionLocY); 829 string location = String.Format("{0},{1}", RegionLocX, RegionLocY);
824 config.Set("Location", location); 830 config.Set("Location", location);
825 831
826 if (RegionSizeX > 0) 832 if (DataStore != String.Empty)
827 config.Set("SizeX", RegionSizeX); 833 config.Set("Datastore", DataStore);
828 834
829 if (RegionSizeY > 0) 835 if (RegionSizeX != Constants.RegionSize || RegionSizeY != Constants.RegionSize)
836 {
837 config.Set("SizeX", RegionSizeX);
830 config.Set("SizeY", RegionSizeY); 838 config.Set("SizeY", RegionSizeY);
831 839 // if (RegionSizeZ > 0)
832// if (RegionSizeZ > 0) 840 // config.Set("SizeZ", RegionSizeZ);
833// config.Set("SizeZ", RegionSizeZ); 841 }
834 842
835 config.Set("InternalAddress", m_internalEndPoint.Address.ToString()); 843 config.Set("InternalAddress", m_internalEndPoint.Address.ToString());
836 config.Set("InternalPort", m_internalEndPoint.Port); 844 config.Set("InternalPort", m_internalEndPoint.Port);
@@ -901,6 +909,232 @@ namespace OpenSim.Framework
901 throw new Exception("Invalid file type for region persistence."); 909 throw new Exception("Invalid file type for region persistence.");
902 } 910 }
903 911
912 public void loadConfigurationOptionsFromMe()
913 {
914 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_UUID_NULL_FREE,
915 "UUID of Region (Default is recommended, random UUID)",
916 RegionID.ToString(), true);
917 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
918 "Region Name", RegionName, true);
919
920 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
921 "Grid Location (X Axis)", RegionLocX.ToString(), true);
922 configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
923 "Grid Location (Y Axis)", RegionLocY.ToString(), true);
924 configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
925 "Size of region in X dimension", RegionSizeX.ToString(), true);
926 configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
927 "Size of region in Y dimension", RegionSizeY.ToString(), true);
928 configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
929 "Size of region in Z dimension", RegionSizeZ.ToString(), true);
930
931 //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false);
932 configMember.addConfigurationOption("internal_ip_address",
933 ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS,
934 "Internal IP Address for incoming UDP client connections",
935 m_internalEndPoint.Address.ToString(),
936 true);
937 configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
938 "Internal IP Port for incoming UDP client connections",
939 m_internalEndPoint.Port.ToString(), true);
940 configMember.addConfigurationOption("allow_alternate_ports",
941 ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
942 "Allow sim to find alternate UDP ports when ports are in use?",
943 m_allow_alternate_ports.ToString(), true);
944 configMember.addConfigurationOption("external_host_name",
945 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
946 "External Host Name", m_externalHostName, true);
947 configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
948 "Last Map UUID", lastMapUUID.ToString(), true);
949 configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
950 "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
951
952 configMember.addConfigurationOption("nonphysical_prim_min", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
953 "Minimum size for nonphysical prims", m_nonphysPrimMin.ToString(), true);
954
955 configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
956 "Maximum size for nonphysical prims", m_nonphysPrimMax.ToString(), true);
957
958 configMember.addConfigurationOption("physical_prim_min", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
959 "Minimum size for nonphysical prims", m_physPrimMin.ToString(), true);
960
961 configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
962 "Maximum size for physical prims", m_physPrimMax.ToString(), true);
963
964 configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
965 "Clamp prims to max size", m_clampPrimSize.ToString(), true);
966
967 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
968 "Max objects this sim will hold", m_objectCapacity.ToString(), true);
969
970 configMember.addConfigurationOption("linkset_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
971 "Max prims an object will hold", m_linksetCapacity.ToString(), true);
972
973 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
974 "Max avatars this sim will hold",AgentCapacity.ToString(), true);
975
976 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
977 "Scope ID for this region", ScopeID.ToString(), true);
978
979 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
980 "Free form string describing the type of region", String.Empty, true);
981
982 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
983 "UUID of a texture to use as the map for this region", m_maptileStaticUUID.ToString(), true);
984 }
985
986 public void loadConfigurationOptions()
987 {
988 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
989 "UUID of Region (Default is recommended, random UUID)",
990 UUID.Random().ToString(), true);
991 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
992 "Region Name", "OpenSim Test", false);
993
994 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
995 "Grid Location (X Axis)", "1000", false);
996 configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
997 "Grid Location (Y Axis)", "1000", false);
998 configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
999 "Size of region in X dimension", Constants.RegionSize.ToString(), false);
1000 configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
1001 "Size of region in Y dimension", Constants.RegionSize.ToString(), false);
1002 configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
1003 "Size of region in Z dimension", Constants.RegionHeight.ToString(), false);
1004
1005 //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false);
1006 configMember.addConfigurationOption("internal_ip_address",
1007 ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS,
1008 "Internal IP Address for incoming UDP client connections", "0.0.0.0",
1009 false);
1010 configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1011 "Internal IP Port for incoming UDP client connections",
1012 ConfigSettings.DefaultRegionHttpPort.ToString(), false);
1013 configMember.addConfigurationOption("allow_alternate_ports", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
1014 "Allow sim to find alternate UDP ports when ports are in use?",
1015 "false", true);
1016 configMember.addConfigurationOption("external_host_name",
1017 ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
1018 "External Host Name", "127.0.0.1", false);
1019 configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1020 "Last Map UUID", lastMapUUID.ToString(), true);
1021
1022 configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
1023 "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true);
1024
1025 configMember.addConfigurationOption("nonphysical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1026 "Maximum size for nonphysical prims", "0", true);
1027
1028 configMember.addConfigurationOption("physical_prim_max", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1029 "Maximum size for physical prims", "0", true);
1030
1031 configMember.addConfigurationOption("clamp_prim_size", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
1032 "Clamp prims to max size", "false", true);
1033
1034 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1035 "Max objects this sim will hold", "15000", true);
1036
1037 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1038 "Max avatars this sim will hold", "100", true);
1039
1040 configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1041 "Scope ID for this region", UUID.Zero.ToString(), true);
1042
1043 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
1044 "Region Type", String.Empty, true);
1045
1046 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1047 "UUID 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 "datastore":
1077 DataStore = (string) configuration_result;
1078 break;
1079 case "internal_ip_address":
1080 IPAddress address = (IPAddress) configuration_result;
1081 m_internalEndPoint = new IPEndPoint(address, 0);
1082 break;
1083 case "internal_ip_port":
1084 m_internalEndPoint.Port = (int) configuration_result;
1085 break;
1086 case "allow_alternate_ports":
1087 m_allow_alternate_ports = (bool) configuration_result;
1088 break;
1089 case "external_host_name":
1090 if ((string) configuration_result != "SYSTEMIP")
1091 {
1092 m_externalHostName = (string) configuration_result;
1093 }
1094 else
1095 {
1096 m_externalHostName = Util.GetLocalHost().ToString();
1097 }
1098 break;
1099 case "lastmap_uuid":
1100 lastMapUUID = (UUID)configuration_result;
1101 break;
1102 case "lastmap_refresh":
1103 lastMapRefresh = (string)configuration_result;
1104 break;
1105 case "nonphysical_prim_max":
1106 m_nonphysPrimMax = (int)configuration_result;
1107 break;
1108 case "physical_prim_max":
1109 m_physPrimMax = (int)configuration_result;
1110 break;
1111 case "clamp_prim_size":
1112 m_clampPrimSize = (bool)configuration_result;
1113 break;
1114 case "object_capacity":
1115 m_objectCapacity = (int)configuration_result;
1116 break;
1117 case "linkset_capacity":
1118 m_linksetCapacity = (int)configuration_result;
1119 break;
1120 case "agent_capacity":
1121 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 }
1133
1134 return true;
1135 }
1136
1137
904 public void SaveLastMapUUID(UUID mapUUID) 1138 public void SaveLastMapUUID(UUID mapUUID)
905 { 1139 {
906 lastMapUUID = mapUUID; 1140 lastMapUUID = mapUUID;
@@ -1004,5 +1238,28 @@ namespace OpenSim.Framework
1004 regionInfo.ServerURI = serverURI; 1238 regionInfo.ServerURI = serverURI;
1005 return regionInfo; 1239 return regionInfo;
1006 } 1240 }
1241
1242 public int getInternalEndPointPort()
1243 {
1244 return m_internalEndPoint.Port;
1245 }
1246
1247 public Dictionary<string, object> ToKeyValuePairs()
1248 {
1249 Dictionary<string, object> kvp = new Dictionary<string, object>();
1250 kvp["uuid"] = RegionID.ToString();
1251 kvp["locX"] = RegionLocX.ToString();
1252 kvp["locY"] = RegionLocY.ToString();
1253 kvp["external_ip_address"] = ExternalEndPoint.Address.ToString();
1254 kvp["external_port"] = ExternalEndPoint.Port.ToString();
1255 kvp["external_host_name"] = ExternalHostName;
1256 kvp["http_port"] = HttpPort.ToString();
1257 kvp["internal_ip_address"] = InternalEndPoint.Address.ToString();
1258 kvp["internal_port"] = InternalEndPoint.Port.ToString();
1259 kvp["alternate_ports"] = m_allow_alternate_ports.ToString();
1260 kvp["server_uri"] = ServerURI;
1261
1262 return kvp;
1263 }
1007 } 1264 }
1008} 1265}