* The equals override of 'Location' is not working as expected. This caused sim restarts to fail because the test that searches for and shutsdown the UDP server listener for that region never found and shutdown the udp server. hence the error message, "only one listener on port".
* This is a high profile candidate for a unit test. (big)0.6.1-post-fixes
parent
71e05a5707
commit
414bf2aaf1
|
@ -484,6 +484,8 @@ namespace OpenSim
|
||||||
|
|
||||||
for (int i = 0; i < m_clientServers.Count; i++)
|
for (int i = 0; i < m_clientServers.Count; i++)
|
||||||
{
|
{
|
||||||
|
//--> Melanie, the following needs to be fixed
|
||||||
|
// the Equals override is not returning true if the locations are actually equal
|
||||||
if (m_clientServers[i].HandlesRegion(new Location(whichRegion.RegionHandle)))
|
if (m_clientServers[i].HandlesRegion(new Location(whichRegion.RegionHandle)))
|
||||||
{
|
{
|
||||||
clientServerElement = i;
|
clientServerElement = i;
|
||||||
|
|
|
@ -106,7 +106,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
public bool HandlesRegion(Location x)
|
public bool HandlesRegion(Location x)
|
||||||
{
|
{
|
||||||
return x == m_location;
|
return x.RegionHandle == m_location.RegionHandle;
|
||||||
|
//return x == m_location;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddScene(Scene x)
|
public void AddScene(Scene x)
|
||||||
|
@ -306,6 +307,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// the next set of UDP data is for a valid client.
|
// the next set of UDP data is for a valid client.
|
||||||
ResetServerEndPoint(e);
|
ResetServerEndPoint(e);
|
||||||
}
|
}
|
||||||
|
catch (System.ObjectDisposedException)
|
||||||
|
{
|
||||||
|
m_log.Info("[UDPSERVER]: UDP Object disposed. No need to worry about this if you're restarting the simulator.");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue