diff options
author | Robert Adams | 2013-12-28 06:58:15 -0800 |
---|---|---|
committer | Robert Adams | 2013-12-28 06:58:15 -0800 |
commit | 6869633d76b2a6664743a608e4284b8dd7df85a6 (patch) | |
tree | e976908cac58662ac37b0dfee8c748f314a259c7 /OpenSim/Framework/RegionInfo.cs | |
parent | Merge branch 'justincc-master' (diff) | |
download | opensim-SC-6869633d76b2a6664743a608e4284b8dd7df85a6.zip opensim-SC-6869633d76b2a6664743a608e4284b8dd7df85a6.tar.gz opensim-SC-6869633d76b2a6664743a608e4284b8dd7df85a6.tar.bz2 opensim-SC-6869633d76b2a6664743a608e4284b8dd7df85a6.tar.xz |
Add serialization/deserialization of region size to RegionInfo, GridRegion, and RegionData.
This does not modify interfaces or handling of variable sized regions. This only
enables the loading and storing of the region size and the reporting of the
region size in grid service responses.
The database tables already have the code to load and store the region size.
Diffstat (limited to 'OpenSim/Framework/RegionInfo.cs')
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 189 |
1 files changed, 152 insertions, 37 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index 24b9c89..857c151 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -99,6 +99,7 @@ namespace OpenSim.Framework | |||
99 | public class RegionInfo | 99 | public class RegionInfo |
100 | { | 100 | { |
101 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 101 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
102 | private static readonly string LogHeader = "[REGION INFO]"; | ||
102 | 103 | ||
103 | public bool commFailTF = false; | 104 | public bool commFailTF = false; |
104 | public ConfigurationMember configMember; | 105 | public ConfigurationMember configMember; |
@@ -137,16 +138,20 @@ namespace OpenSim.Framework | |||
137 | public bool m_allow_alternate_ports; | 138 | public bool m_allow_alternate_ports; |
138 | protected string m_externalHostName; | 139 | protected string m_externalHostName; |
139 | protected IPEndPoint m_internalEndPoint; | 140 | protected IPEndPoint m_internalEndPoint; |
140 | protected uint? m_regionLocX; | ||
141 | protected uint? m_regionLocY; | ||
142 | protected uint m_remotingPort; | 141 | protected uint m_remotingPort; |
143 | public UUID RegionID = UUID.Zero; | 142 | public UUID RegionID = UUID.Zero; |
144 | public string RemotingAddress; | 143 | public string RemotingAddress; |
145 | public UUID ScopeID = UUID.Zero; | 144 | public UUID ScopeID = UUID.Zero; |
146 | private UUID m_maptileStaticUUID = UUID.Zero; | 145 | private UUID m_maptileStaticUUID = UUID.Zero; |
147 | 146 | ||
148 | private Dictionary<String, String> m_otherSettings = new Dictionary<string, string>(); | 147 | public uint WorldLocX = 0; |
148 | public uint WorldLocY = 0; | ||
149 | public uint WorldLocZ = 0; | ||
150 | public uint RegionSizeX = Constants.RegionSize; | ||
151 | public uint RegionSizeY = Constants.RegionSize; | ||
152 | public uint RegionSizeZ = Constants.RegionHeight; | ||
149 | 153 | ||
154 | private Dictionary<String, String> m_otherSettings = new Dictionary<string, string>(); | ||
150 | 155 | ||
151 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. | 156 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. |
152 | 157 | ||
@@ -229,11 +234,10 @@ namespace OpenSim.Framework | |||
229 | m_serverURI = string.Empty; | 234 | m_serverURI = string.Empty; |
230 | } | 235 | } |
231 | 236 | ||
232 | public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) | 237 | public RegionInfo(uint legacyRegionLocX, uint legacyRegionLocY, IPEndPoint internalEndPoint, string externalUri) |
233 | { | 238 | { |
234 | m_regionLocX = regionLocX; | 239 | RegionLocX = legacyRegionLocX; |
235 | m_regionLocY = regionLocY; | 240 | RegionLocY = legacyRegionLocY; |
236 | |||
237 | m_internalEndPoint = internalEndPoint; | 241 | m_internalEndPoint = internalEndPoint; |
238 | m_externalHostName = externalUri; | 242 | m_externalHostName = externalUri; |
239 | m_serverURI = string.Empty; | 243 | m_serverURI = string.Empty; |
@@ -447,25 +451,42 @@ namespace OpenSim.Framework | |||
447 | 451 | ||
448 | /// <summary> | 452 | /// <summary> |
449 | /// The x co-ordinate of this region in map tiles (e.g. 1000). | 453 | /// The x co-ordinate of this region in map tiles (e.g. 1000). |
454 | /// Coordinate is scaled as world coordinates divided by the legacy region size | ||
455 | /// and is thus is the number of legacy regions. | ||
450 | /// </summary> | 456 | /// </summary> |
451 | public uint RegionLocX | 457 | public uint RegionLocX |
452 | { | 458 | { |
453 | get { return m_regionLocX.Value; } | 459 | get { return WorldLocX / Constants.RegionSize; } |
454 | set { m_regionLocX = value; } | 460 | set { WorldLocX = value * Constants.RegionSize; } |
455 | } | 461 | } |
456 | 462 | ||
457 | /// <summary> | 463 | /// <summary> |
458 | /// The y co-ordinate of this region in map tiles (e.g. 1000). | 464 | /// The y co-ordinate of this region in map tiles (e.g. 1000). |
465 | /// Coordinate is scaled as world coordinates divided by the legacy region size | ||
466 | /// and is thus is the number of legacy regions. | ||
459 | /// </summary> | 467 | /// </summary> |
460 | public uint RegionLocY | 468 | public uint RegionLocY |
461 | { | 469 | { |
462 | get { return m_regionLocY.Value; } | 470 | get { return WorldLocY / Constants.RegionSize; } |
463 | set { m_regionLocY = value; } | 471 | set { WorldLocY = value * Constants.RegionSize; } |
472 | } | ||
473 | |||
474 | public void SetDefaultRegionSize() | ||
475 | { | ||
476 | WorldLocX = 0; | ||
477 | WorldLocY = 0; | ||
478 | WorldLocZ = 0; | ||
479 | RegionSizeX = Constants.RegionSize; | ||
480 | RegionSizeY = Constants.RegionSize; | ||
481 | RegionSizeZ = Constants.RegionHeight; | ||
464 | } | 482 | } |
465 | 483 | ||
484 | // A unique region handle is created from the region's world coordinates. | ||
485 | // This cannot be changed because some code expects to receive the region handle and then | ||
486 | // compute the region coordinates from it. | ||
466 | public ulong RegionHandle | 487 | public ulong RegionHandle |
467 | { | 488 | { |
468 | get { return Util.UIntsToLong((RegionLocX * (uint) Constants.RegionSize), (RegionLocY * (uint) Constants.RegionSize)); } | 489 | get { return Util.UIntsToLong(WorldLocX, WorldLocY); } |
469 | } | 490 | } |
470 | 491 | ||
471 | public void SetEndPoint(string ipaddr, int port) | 492 | public void SetEndPoint(string ipaddr, int port) |
@@ -572,8 +593,25 @@ namespace OpenSim.Framework | |||
572 | 593 | ||
573 | string[] locationElements = location.Split(new char[] {','}); | 594 | string[] locationElements = location.Split(new char[] {','}); |
574 | 595 | ||
575 | m_regionLocX = Convert.ToUInt32(locationElements[0]); | 596 | RegionLocX = Convert.ToUInt32(locationElements[0]); |
576 | m_regionLocY = Convert.ToUInt32(locationElements[1]); | 597 | RegionLocY = Convert.ToUInt32(locationElements[1]); |
598 | |||
599 | // Region size | ||
600 | // Default to legacy region size if not specified. | ||
601 | allKeys.Remove("SizeX"); | ||
602 | string configSizeX = config.GetString("SizeX", Constants.RegionSize.ToString()); | ||
603 | config.Set("SizeX", configSizeX); | ||
604 | RegionSizeX = Convert.ToUInt32(configSizeX); | ||
605 | allKeys.Remove("SizeY"); | ||
606 | string configSizeY = config.GetString("SizeY", Constants.RegionSize.ToString()); | ||
607 | config.Set("SizeY", configSizeX); | ||
608 | RegionSizeY = Convert.ToUInt32(configSizeY); | ||
609 | allKeys.Remove("SizeZ"); | ||
610 | string configSizeZ = config.GetString("SizeZ", Constants.RegionHeight.ToString()); | ||
611 | config.Set("SizeZ", configSizeX); | ||
612 | RegionSizeZ = Convert.ToUInt32(configSizeZ); | ||
613 | |||
614 | DoRegionSizeSanityChecks(); | ||
577 | 615 | ||
578 | // InternalAddress | 616 | // InternalAddress |
579 | // | 617 | // |
@@ -693,6 +731,57 @@ namespace OpenSim.Framework | |||
693 | } | 731 | } |
694 | } | 732 | } |
695 | 733 | ||
734 | // Make sure user specified region sizes are sane. | ||
735 | // Must be multiples of legacy region size (256). | ||
736 | private void DoRegionSizeSanityChecks() | ||
737 | { | ||
738 | if (RegionSizeX != Constants.RegionSize || RegionSizeY != Constants.RegionSize) | ||
739 | { | ||
740 | // Doing non-legacy region sizes. | ||
741 | // Enforce region size to be multiples of the legacy region size (256) | ||
742 | uint partial = RegionSizeX % Constants.RegionSize; | ||
743 | if (partial != 0) | ||
744 | { | ||
745 | RegionSizeX -= partial; | ||
746 | if (RegionSizeX == 0) | ||
747 | RegionSizeX = Constants.RegionSize; | ||
748 | m_log.ErrorFormat("{0} Region size must be multiple of {1}. Enforcing {2}.RegionSizeX={3} instead of specified {4}", | ||
749 | LogHeader, Constants.RegionSize, m_regionName, RegionSizeX, RegionSizeX + partial); | ||
750 | } | ||
751 | partial = RegionSizeY % Constants.RegionSize; | ||
752 | if (partial != 0) | ||
753 | { | ||
754 | RegionSizeY -= partial; | ||
755 | if (RegionSizeY == 0) | ||
756 | RegionSizeY = Constants.RegionSize; | ||
757 | m_log.ErrorFormat("{0} Region size must be multiple of {1}. Enforcing {2}.RegionSizeY={3} instead of specified {4}", | ||
758 | LogHeader, Constants.RegionSize, m_regionName, RegionSizeY, RegionSizeY + partial); | ||
759 | } | ||
760 | |||
761 | // Because of things in the viewer, regions MUST be square. | ||
762 | // Remove this check when viewers have been updated. | ||
763 | if (RegionSizeX != RegionSizeY) | ||
764 | { | ||
765 | uint minSize = Math.Min(RegionSizeX, RegionSizeY); | ||
766 | RegionSizeX = minSize; | ||
767 | RegionSizeY = minSize; | ||
768 | m_log.ErrorFormat("{0} Regions must be square until viewers are updated. Forcing region {1} size to <{2},{3}>", | ||
769 | LogHeader, m_regionName, RegionSizeX, RegionSizeY); | ||
770 | } | ||
771 | |||
772 | // There is a practical limit to region size. | ||
773 | if (RegionSizeX > Constants.MaximumRegionSize || RegionSizeY > Constants.MaximumRegionSize) | ||
774 | { | ||
775 | RegionSizeX = Util.Clamp<uint>(RegionSizeX, Constants.RegionSize, Constants.MaximumRegionSize); | ||
776 | RegionSizeY = Util.Clamp<uint>(RegionSizeY, Constants.RegionSize, Constants.MaximumRegionSize); | ||
777 | m_log.ErrorFormat("{0} Region dimensions must be less than {1}. Clamping {2}'s size to <{3},{4}>", | ||
778 | LogHeader, Constants.MaximumRegionSize, m_regionName, RegionSizeX, RegionSizeY); | ||
779 | } | ||
780 | |||
781 | m_log.InfoFormat("{0} Region {1} size set to <{2},{3}>", LogHeader, m_regionName, RegionSizeX, RegionSizeY); | ||
782 | } | ||
783 | } | ||
784 | |||
696 | private void WriteNiniConfig(IConfigSource source) | 785 | private void WriteNiniConfig(IConfigSource source) |
697 | { | 786 | { |
698 | IConfig config = source.Configs[RegionName]; | 787 | IConfig config = source.Configs[RegionName]; |
@@ -704,9 +793,16 @@ namespace OpenSim.Framework | |||
704 | 793 | ||
705 | config.Set("RegionUUID", RegionID.ToString()); | 794 | config.Set("RegionUUID", RegionID.ToString()); |
706 | 795 | ||
707 | string location = String.Format("{0},{1}", m_regionLocX, m_regionLocY); | 796 | string location = String.Format("{0},{1}", RegionLocX, RegionLocY); |
708 | config.Set("Location", location); | 797 | config.Set("Location", location); |
709 | 798 | ||
799 | if (RegionSizeX != Constants.RegionSize || RegionSizeY != Constants.RegionSize) | ||
800 | { | ||
801 | config.Set("SizeX", RegionSizeX); | ||
802 | config.Set("SizeY", RegionSizeY); | ||
803 | config.Set("SizeZ", RegionSizeZ); | ||
804 | } | ||
805 | |||
710 | config.Set("InternalAddress", m_internalEndPoint.Address.ToString()); | 806 | config.Set("InternalAddress", m_internalEndPoint.Address.ToString()); |
711 | config.Set("InternalPort", m_internalEndPoint.Port); | 807 | config.Set("InternalPort", m_internalEndPoint.Port); |
712 | 808 | ||
@@ -789,10 +885,18 @@ namespace OpenSim.Framework | |||
789 | RegionID.ToString(), true); | 885 | RegionID.ToString(), true); |
790 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 886 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
791 | "Region Name", RegionName, true); | 887 | "Region Name", RegionName, true); |
888 | |||
792 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 889 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
793 | "Grid Location (X Axis)", m_regionLocX.ToString(), true); | 890 | "Grid Location (X Axis)", RegionLocX.ToString(), true); |
794 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 891 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
795 | "Grid Location (Y Axis)", m_regionLocY.ToString(), true); | 892 | "Grid Location (Y Axis)", RegionLocY.ToString(), true); |
893 | configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
894 | "Size of region in X dimension", RegionSizeX.ToString(), true); | ||
895 | configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
896 | "Size of region in Y dimension", RegionSizeY.ToString(), true); | ||
897 | configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
898 | "Size of region in Z dimension", RegionSizeZ.ToString(), true); | ||
899 | |||
796 | //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); | 900 | //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); |
797 | configMember.addConfigurationOption("internal_ip_address", | 901 | configMember.addConfigurationOption("internal_ip_address", |
798 | ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, | 902 | ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, |
@@ -855,10 +959,18 @@ namespace OpenSim.Framework | |||
855 | UUID.Random().ToString(), true); | 959 | UUID.Random().ToString(), true); |
856 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 960 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
857 | "Region Name", "OpenSim Test", false); | 961 | "Region Name", "OpenSim Test", false); |
962 | |||
858 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 963 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
859 | "Grid Location (X Axis)", "1000", false); | 964 | "Grid Location (X Axis)", "1000", false); |
860 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 965 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
861 | "Grid Location (Y Axis)", "1000", false); | 966 | "Grid Location (Y Axis)", "1000", false); |
967 | configMember.addConfigurationOption("sim_size_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
968 | "Size of region in X dimension", Constants.RegionSize.ToString(), false); | ||
969 | configMember.addConfigurationOption("sim_size_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
970 | "Size of region in Y dimension", Constants.RegionSize.ToString(), false); | ||
971 | configMember.addConfigurationOption("sim_size_z", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
972 | "Size of region in Z dimension", Constants.RegionHeight.ToString(), false); | ||
973 | |||
862 | //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); | 974 | //m_configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); |
863 | configMember.addConfigurationOption("internal_ip_address", | 975 | configMember.addConfigurationOption("internal_ip_address", |
864 | ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, | 976 | ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, |
@@ -916,10 +1028,19 @@ namespace OpenSim.Framework | |||
916 | RegionName = (string) configuration_result; | 1028 | RegionName = (string) configuration_result; |
917 | break; | 1029 | break; |
918 | case "sim_location_x": | 1030 | case "sim_location_x": |
919 | m_regionLocX = (uint) configuration_result; | 1031 | RegionLocX = (uint) configuration_result; |
920 | break; | 1032 | break; |
921 | case "sim_location_y": | 1033 | case "sim_location_y": |
922 | m_regionLocY = (uint) configuration_result; | 1034 | RegionLocY = (uint) configuration_result; |
1035 | break; | ||
1036 | case "sim_size_x": | ||
1037 | RegionSizeX = (uint) configuration_result; | ||
1038 | break; | ||
1039 | case "sim_size_y": | ||
1040 | RegionSizeY = (uint) configuration_result; | ||
1041 | break; | ||
1042 | case "sim_size_z": | ||
1043 | RegionSizeZ = (uint) configuration_result; | ||
923 | break; | 1044 | break; |
924 | case "internal_ip_address": | 1045 | case "internal_ip_address": |
925 | IPAddress address = (IPAddress) configuration_result; | 1046 | IPAddress address = (IPAddress) configuration_result; |
@@ -1000,8 +1121,13 @@ namespace OpenSim.Framework | |||
1000 | args["external_host_name"] = OSD.FromString(ExternalHostName); | 1121 | args["external_host_name"] = OSD.FromString(ExternalHostName); |
1001 | args["http_port"] = OSD.FromString(HttpPort.ToString()); | 1122 | args["http_port"] = OSD.FromString(HttpPort.ToString()); |
1002 | args["server_uri"] = OSD.FromString(ServerURI); | 1123 | args["server_uri"] = OSD.FromString(ServerURI); |
1124 | |||
1003 | args["region_xloc"] = OSD.FromString(RegionLocX.ToString()); | 1125 | args["region_xloc"] = OSD.FromString(RegionLocX.ToString()); |
1004 | args["region_yloc"] = OSD.FromString(RegionLocY.ToString()); | 1126 | args["region_yloc"] = OSD.FromString(RegionLocY.ToString()); |
1127 | args["region_size_x"] = OSD.FromString(RegionSizeX.ToString()); | ||
1128 | args["region_size_y"] = OSD.FromString(RegionSizeY.ToString()); | ||
1129 | args["region_size_z"] = OSD.FromString(RegionSizeZ.ToString()); | ||
1130 | |||
1005 | args["internal_ep_address"] = OSD.FromString(InternalEndPoint.Address.ToString()); | 1131 | args["internal_ep_address"] = OSD.FromString(InternalEndPoint.Address.ToString()); |
1006 | args["internal_ep_port"] = OSD.FromString(InternalEndPoint.Port.ToString()); | 1132 | args["internal_ep_port"] = OSD.FromString(InternalEndPoint.Port.ToString()); |
1007 | if ((RemotingAddress != null) && !RemotingAddress.Equals("")) | 1133 | if ((RemotingAddress != null) && !RemotingAddress.Equals("")) |
@@ -1040,6 +1166,13 @@ namespace OpenSim.Framework | |||
1040 | UInt32.TryParse(args["region_yloc"].AsString(), out locy); | 1166 | UInt32.TryParse(args["region_yloc"].AsString(), out locy); |
1041 | RegionLocY = locy; | 1167 | RegionLocY = locy; |
1042 | } | 1168 | } |
1169 | if (args.ContainsKey("region_size_x")) | ||
1170 | RegionSizeX = (uint)args["region_size_x"].AsInteger(); | ||
1171 | if (args.ContainsKey("region_size_y")) | ||
1172 | RegionSizeY = (uint)args["region_size_y"].AsInteger(); | ||
1173 | if (args.ContainsKey("region_size_z")) | ||
1174 | RegionSizeZ = (uint)args["region_size_z"].AsInteger(); | ||
1175 | |||
1043 | IPAddress ip_addr = null; | 1176 | IPAddress ip_addr = null; |
1044 | if (args["internal_ep_address"] != null) | 1177 | if (args["internal_ep_address"] != null) |
1045 | { | 1178 | { |
@@ -1076,23 +1209,5 @@ namespace OpenSim.Framework | |||
1076 | regionInfo.ServerURI = serverURI; | 1209 | regionInfo.ServerURI = serverURI; |
1077 | return regionInfo; | 1210 | return regionInfo; |
1078 | } | 1211 | } |
1079 | |||
1080 | public Dictionary<string, object> ToKeyValuePairs() | ||
1081 | { | ||
1082 | Dictionary<string, object> kvp = new Dictionary<string, object>(); | ||
1083 | kvp["uuid"] = RegionID.ToString(); | ||
1084 | kvp["locX"] = RegionLocX.ToString(); | ||
1085 | kvp["locY"] = RegionLocY.ToString(); | ||
1086 | kvp["external_ip_address"] = ExternalEndPoint.Address.ToString(); | ||
1087 | kvp["external_port"] = ExternalEndPoint.Port.ToString(); | ||
1088 | kvp["external_host_name"] = ExternalHostName; | ||
1089 | kvp["http_port"] = HttpPort.ToString(); | ||
1090 | kvp["internal_ip_address"] = InternalEndPoint.Address.ToString(); | ||
1091 | kvp["internal_port"] = InternalEndPoint.Port.ToString(); | ||
1092 | kvp["alternate_ports"] = m_allow_alternate_ports.ToString(); | ||
1093 | kvp["server_uri"] = ServerURI; | ||
1094 | |||
1095 | return kvp; | ||
1096 | } | ||
1097 | } | 1212 | } |
1098 | } | 1213 | } |