diff --git a/OpenSim/Framework/SerializableRegionInfo.cs b/OpenSim/Framework/SerializableRegionInfo.cs index cd59b75de5..dc440b6421 100644 --- a/OpenSim/Framework/SerializableRegionInfo.cs +++ b/OpenSim/Framework/SerializableRegionInfo.cs @@ -1,195 +1,195 @@ -/* -* Copyright (c) Contributors, http://opensimulator.org/ -* See CONTRIBUTORS.TXT for a full list of copyright holders. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* * Neither the name of the OpenSim Project nor the -* names of its contributors may be used to endorse or promote products -* derived from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY -* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY -* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -*/ -using System; -using System.Globalization; -using System.Net; -using System.Xml; -using System.Net.Sockets; -using libsecondlife; - - - - -namespace OpenSim.Framework -{ - [Serializable] - public class SearializableRegionInfo - { - public SearializableRegionInfo() - { - } - public SearializableRegionInfo(RegionInfo ConvertFrom) - { - m_regionLocX = ConvertFrom.RegionLocX; - m_regionLocY = ConvertFrom.RegionLocY; - m_internalEndPoint = ConvertFrom.InternalEndPoint; - m_externalHostName = ConvertFrom.ExternalHostName; - m_remotingPort = ConvertFrom.RemotingPort; - RemotingAddress = ConvertFrom.RemotingAddress; - - } - public SearializableRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) - { - - m_regionLocX = regionLocX; - m_regionLocY = regionLocY; - - m_internalEndPoint = internalEndPoint; - m_externalHostName = externalUri; - } - - public SearializableRegionInfo(uint regionLocX, uint regionLocY, string externalUri, int port) - { - - m_regionLocX = regionLocX; - m_regionLocY = regionLocY; - - m_externalHostName = externalUri; - - m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), port); - } - - public LLUUID RegionID = LLUUID.Zero; - - public uint m_remotingPort; - public uint RemotingPort - { - get - { - return m_remotingPort; - } - set - { - m_remotingPort = value; - } - } - - public string RemotingAddress; - - - public IPEndPoint ExternalEndPoint - { - get - { - // Old one defaults to IPv6 - //return new IPEndPoint( Dns.GetHostAddresses( m_externalHostName )[0], m_internalEndPoint.Port ); - - IPAddress ia = null; - // If it is already an IP, don't resolve it - just return directly - if (IPAddress.TryParse(m_externalHostName, out ia)) - return new IPEndPoint(ia, m_internalEndPoint.Port); - - // Reset for next check - ia = null; - - - // New method favors IPv4 - foreach (IPAddress Adr in Dns.GetHostAddresses(m_externalHostName)) - { - if (ia == null) - ia = Adr; - - if (Adr.AddressFamily == AddressFamily.InterNetwork) - { - ia = Adr; - break; - } - - } - - return new IPEndPoint(ia, m_internalEndPoint.Port); - } - - set - { - m_externalHostName = value.ToString(); - } - } - - protected string m_externalHostName; - public string ExternalHostName - { - get - { - return m_externalHostName; - } - set - { - m_externalHostName = value; - } - } - - protected IPEndPoint m_internalEndPoint; - public IPEndPoint InternalEndPoint - { - get - { - return m_internalEndPoint; - } - set - { - m_internalEndPoint = value; - } - } - - protected uint? m_regionLocX; - public uint RegionLocX - { - get - { - return m_regionLocX.Value; - } - set - { - m_regionLocX = value; - } - } - - protected uint? m_regionLocY; - public uint RegionLocY - { - get - { - return m_regionLocY.Value; - } - set - { - m_regionLocY = value; - } - } - - public ulong RegionHandle - { - get - { - return Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256)); - } - } - } - -} +/* +* Copyright (c) Contributors, http://opensimulator.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Globalization; +using System.Net; +using System.Xml; +using System.Net.Sockets; +using libsecondlife; + + + + +namespace OpenSim.Framework +{ + [Serializable] + public class SearializableRegionInfo + { + public SearializableRegionInfo() + { + } + public SearializableRegionInfo(RegionInfo ConvertFrom) + { + m_regionLocX = ConvertFrom.RegionLocX; + m_regionLocY = ConvertFrom.RegionLocY; + m_internalEndPoint = ConvertFrom.InternalEndPoint; + m_externalHostName = ConvertFrom.ExternalHostName; + m_remotingPort = ConvertFrom.RemotingPort; + RemotingAddress = ConvertFrom.RemotingAddress; + + } + public SearializableRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) + { + + m_regionLocX = regionLocX; + m_regionLocY = regionLocY; + + m_internalEndPoint = internalEndPoint; + m_externalHostName = externalUri; + } + + public SearializableRegionInfo(uint regionLocX, uint regionLocY, string externalUri, int port) + { + + m_regionLocX = regionLocX; + m_regionLocY = regionLocY; + + m_externalHostName = externalUri; + + m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), port); + } + + public LLUUID RegionID = LLUUID.Zero; + + public uint m_remotingPort; + public uint RemotingPort + { + get + { + return m_remotingPort; + } + set + { + m_remotingPort = value; + } + } + + public string RemotingAddress; + + + public IPEndPoint ExternalEndPoint + { + get + { + // Old one defaults to IPv6 + //return new IPEndPoint( Dns.GetHostAddresses( m_externalHostName )[0], m_internalEndPoint.Port ); + + IPAddress ia = null; + // If it is already an IP, don't resolve it - just return directly + if (IPAddress.TryParse(m_externalHostName, out ia)) + return new IPEndPoint(ia, m_internalEndPoint.Port); + + // Reset for next check + ia = null; + + + // New method favors IPv4 + foreach (IPAddress Adr in Dns.GetHostAddresses(m_externalHostName)) + { + if (ia == null) + ia = Adr; + + if (Adr.AddressFamily == AddressFamily.InterNetwork) + { + ia = Adr; + break; + } + + } + + return new IPEndPoint(ia, m_internalEndPoint.Port); + } + + set + { + m_externalHostName = value.ToString(); + } + } + + protected string m_externalHostName; + public string ExternalHostName + { + get + { + return m_externalHostName; + } + set + { + m_externalHostName = value; + } + } + + protected IPEndPoint m_internalEndPoint; + public IPEndPoint InternalEndPoint + { + get + { + return m_internalEndPoint; + } + set + { + m_internalEndPoint = value; + } + } + + protected uint? m_regionLocX; + public uint RegionLocX + { + get + { + return m_regionLocX.Value; + } + set + { + m_regionLocX = value; + } + } + + protected uint? m_regionLocY; + public uint RegionLocY + { + get + { + return m_regionLocY.Value; + } + set + { + m_regionLocY = value; + } + } + + public ulong RegionHandle + { + get + { + return Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256)); + } + } + } + +}