* Made a change to InterGrid module to prevent duplicate registrations.
parent
faccbf4994
commit
d05c443b71
|
@ -10,5 +10,6 @@ namespace OpenSim.Region.Environment.Modules.Communications.Interregion
|
||||||
T RequestInterface<T>(Location loc);
|
T RequestInterface<T>(Location loc);
|
||||||
T[] RequestInterface<T>();
|
T[] RequestInterface<T>();
|
||||||
Location GetLocationByDirection(Scene scene, InterregionModule.Direction dir);
|
Location GetLocationByDirection(Scene scene, InterregionModule.Direction dir);
|
||||||
|
void internal_CreateRemotingObjects();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -41,6 +41,7 @@ namespace OpenSim.Region.Environment.Modules.Communications.Interregion
|
||||||
|
|
||||||
#region IRegionModule Members
|
#region IRegionModule Members
|
||||||
|
|
||||||
|
//TODO: This prevents us from registering new scenes after PostInitialise if we want comms updated.
|
||||||
public void Initialise(Scene scene, IConfigSource source)
|
public void Initialise(Scene scene, IConfigSource source)
|
||||||
{
|
{
|
||||||
m_myLocations.Add(new Location((int) scene.RegionInfo.RegionLocX,
|
m_myLocations.Add(new Location((int) scene.RegionInfo.RegionLocX,
|
||||||
|
@ -61,7 +62,7 @@ namespace OpenSim.Region.Environment.Modules.Communications.Interregion
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateRemotingObjects();
|
internal_CreateRemotingObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Close()
|
public void Close()
|
||||||
|
@ -81,13 +82,19 @@ namespace OpenSim.Region.Environment.Modules.Communications.Interregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void CreateRemotingObjects()
|
public void internal_CreateRemotingObjects()
|
||||||
{
|
{
|
||||||
m_myRemote = new RemotingObject(m_interfaces, m_myLocations.ToArray());
|
lock (m_tcpChannel)
|
||||||
m_tcpChannel = new TcpChannel(m_tcpPort);
|
{
|
||||||
|
if (m_tcpChannel == null)
|
||||||
|
{
|
||||||
|
m_myRemote = new RemotingObject(m_interfaces, m_myLocations.ToArray());
|
||||||
|
m_tcpChannel = new TcpChannel(m_tcpPort);
|
||||||
|
|
||||||
ChannelServices.RegisterChannel(m_tcpChannel, false);
|
ChannelServices.RegisterChannel(m_tcpChannel, false);
|
||||||
RemotingServices.Marshal(m_myRemote, "OpenSimRemote2", typeof (RemotingObject));
|
RemotingServices.Marshal(m_myRemote, "OpenSimRemote2", typeof (RemotingObject));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterRemoteRegion(string uri)
|
public void RegisterRemoteRegion(string uri)
|
||||||
|
@ -155,7 +162,5 @@ namespace OpenSim.Region.Environment.Modules.Communications.Interregion
|
||||||
{
|
{
|
||||||
return new Location(0, 0);
|
return new Location(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: This prevents us from registering new scenes after PostInitialise if we want comms updated.
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue