diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 271 |
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 | ||
41 | namespace OpenSim.Framework | 41 | namespace 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 | } |