* Remove client servers when regions are closed or removed
* Thanks randomhuman!
prioritization
Justin Clark-Casey (justincc) 2009-10-09 17:28:16 +01:00
parent bec4d0c564
commit b6678faf34
1 changed files with 13 additions and 7 deletions

View File

@ -459,7 +459,8 @@ namespace OpenSim
scene.DeleteAllSceneObjects(); scene.DeleteAllSceneObjects();
m_sceneManager.CloseScene(scene); m_sceneManager.CloseScene(scene);
ShutdownClientServer(scene.RegionInfo);
if (!cleanup) if (!cleanup)
return; return;
@ -519,7 +520,7 @@ namespace OpenSim
} }
m_sceneManager.CloseScene(scene); m_sceneManager.CloseScene(scene);
ShutdownClientServer(scene.RegionInfo);
} }
/// <summary> /// <summary>
@ -653,12 +654,10 @@ namespace OpenSim
storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim, storageManager, m_moduleLoader, false, m_configSettings.PhysicalPrim,
m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
} }
public void handleRestartRegion(RegionInfo whichRegion) protected void ShutdownClientServer(RegionInfo whichRegion)
{ {
m_log.Info("[OPENSIM]: Got restart signal from SceneManager"); // Close and remove the clientserver for a region
// Shutting down the client server
bool foundClientServer = false; bool foundClientServer = false;
int clientServerElement = 0; int clientServerElement = 0;
Location location = new Location(whichRegion.RegionHandle); Location location = new Location(whichRegion.RegionHandle);
@ -678,6 +677,13 @@ namespace OpenSim
m_clientServers[clientServerElement].NetworkStop(); m_clientServers[clientServerElement].NetworkStop();
m_clientServers.RemoveAt(clientServerElement); m_clientServers.RemoveAt(clientServerElement);
} }
}
public void handleRestartRegion(RegionInfo whichRegion)
{
m_log.Info("[OPENSIM]: Got restart signal from SceneManager");
ShutdownClientServer(whichRegion);
IScene scene; IScene scene;
CreateRegion(whichRegion, true, out scene); CreateRegion(whichRegion, true, out scene);
} }