diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index 67558dd3d4..8892996394 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs @@ -393,6 +393,9 @@ namespace OpenSim.Framework //IP:port for the avatar sync server this actor is configured to connect to private string m_avatarSyncServerAddr = String.Empty; private int m_avatarSyncServerPort; + //IP:port for the physics sync server this actor is configured to connect to + private string m_physicsSyncServerAddr = String.Empty; + private int m_physicsSyncServerPort; private uint m_quarkLocX; private uint m_quarkLocY; //end of SYMMETRIC SYNC @@ -703,6 +706,14 @@ namespace OpenSim.Framework { get { return m_avatarSyncServerPort; } } + public string PhysicsSyncServerAddress + { + get { return m_physicsSyncServerAddr; } + } + public int PhysicsSyncServerPort + { + get { return m_physicsSyncServerPort; } + } public uint SyncQuarkLocationX { @@ -884,6 +895,11 @@ namespace OpenSim.Framework if (m_avatarSyncServerPort == -1) m_avatarSyncServerAddr = String.Empty; + m_physicsSyncServerAddr = config.GetString("PhysicsSyncServerAddress", String.Empty); + m_physicsSyncServerPort = config.GetInt("PhysicsSyncServerPort", -1); + if (m_physicsSyncServerPort == -1) + m_physicsSyncServerAddr = String.Empty; + string quarkLocation = config.GetString("SyncQuarkLocation", "1000,1000"); string[] quarkLocElements = location.Split(new char[] { ',' }); diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/PhysEngineToSceneConnectorModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/PhysEngineToSceneConnectorModule.cs index d1a284e9b6..d14adfae33 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/PhysEngineToSceneConnectorModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/PhysEngineToSceneConnectorModule.cs @@ -105,10 +105,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_log.Debug(LogHeader + " Init PEToSceneConnectorModule, for local scene " + scene.RegionInfo.RegionName); - string configString = scene.RegionInfo.RegionName + "_SceneToPESyncServerIP"; - m_serveraddr = syncConfig.GetString(configString, "127.0.0.1"); - configString = scene.RegionInfo.RegionName + "_SceneToPESyncServerPort"; - m_serverport = syncConfig.GetInt(configString, 13000); + // string configString = scene.RegionInfo.RegionName + "_SceneToPESyncServerIP"; + // m_serveraddr = syncConfig.GetString(configString, "127.0.0.1"); + // configString = scene.RegionInfo.RegionName + "_SceneToPESyncServerPort"; + // m_serverport = syncConfig.GetInt(configString, 13000); m_scene = scene; m_scene.RegisterModuleInterface(this); @@ -133,8 +133,6 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole; InstallInterfaces(); - SyncStart(null); // fake a 'phys start' to get things going - m_log.Warn(LogHeader + " Initialised"); // collect all the scenes for later routing @@ -149,6 +147,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule if (!m_active) return; + Start(); // fake a 'phys start' to get things going + //m_log.Warn(LogHeader + " Post-Initialised"); } @@ -364,6 +364,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule private void SyncStart(Object[] args) { + Start(); + } + + private void Start() + { + m_serveraddr = m_scene.RegionInfo.PhysicsSyncServerAddress; + m_serverport = m_scene.RegionInfo.PhysicsSyncServerPort; + lock (m_client_lock) { //m_log.Warn(LogHeader + " Starting synchronization"); diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs index 44c2ccc7f8..be029d4687 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs @@ -118,11 +118,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule DefaultPort++; //Get sync server info for Physics Engine actors - string peServerAddr = scene.RegionInfo.RegionName + "_SceneToPESyncServerIP"; - m_peSyncServeraddr = syncConfig.GetString(peServerAddr, "127.0.0.1"); - string peServerPort = scene.RegionInfo.RegionName + "_SceneToPESyncServerPort"; - m_peSyncServerport = syncConfig.GetInt(peServerPort, DefaultPort); - DefaultPort++; + // string peServerAddr = scene.RegionInfo.RegionName + "_SceneToPESyncServerIP"; + // m_peSyncServeraddr = syncConfig.GetString(peServerAddr, "127.0.0.1"); + // string peServerPort = scene.RegionInfo.RegionName + "_SceneToPESyncServerPort"; + // m_peSyncServerport = syncConfig.GetInt(peServerPort, DefaultPort); + // DefaultPort++; // m_symsync = syncConfig.GetBoolean("SymSync", false); @@ -190,6 +190,8 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_sceneToSESyncServer.Start(); } + m_peSyncServeraddr = m_scene.RegionInfo.PhysicsSyncServerAddress; + m_peSyncServerport = m_scene.RegionInfo.PhysicsSyncServerPort; if (!m_peSyncServeraddr.Equals(IPAddrUnknown) && m_peSyncServerport != PortUnknown) { m_log.Warn("[REGION SYNC SERVER MODULE] Starting SceneToPhysEngineSyncServer");