diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index 680e702a11..857d811d23 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs @@ -386,6 +386,14 @@ namespace OpenSim.Framework public string RemotingAddress; public UUID ScopeID = UUID.Zero; + //SYMMETRIC SYNC + //IP:port for the symmetric sync listener this actor is configured to connect to + private string m_syncListenerAddr = String.Empty; + private int m_syncListenerPort; + //IP:port for the avatar sync server this actor is configured to connect to + private string m_serverAddr = String.Empty; + private int m_serverPort; + //end of SYMMETRIC SYNC // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. @@ -676,6 +684,25 @@ namespace OpenSim.Framework get { return Util.UIntsToLong((RegionLocX * (uint) Constants.RegionSize), (RegionLocY * (uint) Constants.RegionSize)); } } + //SYMMETRIC SYNC + public string SyncListenerAddress + { + get { return m_syncListenerAddr; } + } + public int SyncListenerPort + { + get { return m_syncListenerPort; } + } + public string ServerIPAddress + { + get { return m_serverAddr; } + } + public int ServerPort + { + get { return m_serverPort; } + } + //end of SYMMETRIC SYNC + public void SetEndPoint(string ipaddr, int port) { IPAddress tmpIP = IPAddress.Parse(ipaddr); @@ -830,6 +857,21 @@ namespace OpenSim.Framework // Multi-tenancy // ScopeID = new UUID(config.GetString("ScopeID", UUID.Zero.ToString())); + + // SYMMETRIC SYNC + m_syncListenerAddr = config.GetString("SyncListenerIPAddress", String.Empty); + m_syncListenerPort = config.GetInt("SyncListenerPort", -1); + //if either IP or port is not configured, we set IP to empty to raise warning later + if (m_syncListenerPort == -1) + m_syncListenerAddr = String.Empty; + + m_serverAddr = config.GetString("ServerIPAddress", String.Empty); + m_serverPort = config.GetInt("ServerPort", -1); + if (m_serverPort == -1) + m_serverAddr = String.Empty; + + // end of SYMMETRIC SYNC + } private void WriteNiniConfig(IConfigSource source) diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientModule.cs index a065be3002..c0bd54ca56 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncClientModule.cs @@ -69,10 +69,12 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_active = true; m_scene.RegionSyncEnabled = true; m_scene.RegionSyncMode = "client"; - string serverAddrDefault = syncConfig.GetString("ServerIPAddress", "127.0.0.1"); - m_serveraddr = syncConfig.GetString(scene.RegionInfo.RegionName+"_ServerIPAddress", serverAddrDefault); - int serverPortDefault = syncConfig.GetInt("ServerPort", 13000); - m_serverport = syncConfig.GetInt(scene.RegionInfo.RegionName+"_ServerPort", serverPortDefault); + + //string serverAddrDefault = syncConfig.GetString("ServerIPAddress", "127.0.0.1"); + //m_serveraddr = syncConfig.GetString(scene.RegionInfo.RegionName+"_ServerIPAddress", serverAddrDefault); + //int serverPortDefault = syncConfig.GetInt("ServerPort", 13000); + //m_serverport = syncConfig.GetInt(scene.RegionInfo.RegionName+"_ServerPort", serverPortDefault); + m_scene.RegisterModuleInterface(this); m_symsync = syncConfig.GetBoolean("SymSync", false); @@ -230,7 +232,16 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule private void Start() { - + m_serveraddr = m_scene.RegionInfo.ServerIPAddress; + m_serverport = m_scene.RegionInfo.ServerPort; + + if (m_serveraddr.Equals(String.Empty) || m_serverport == -1) + { + m_log.Warn("[REGION SYNC CLIENT MODULE] No IP or port of RegionSyncServer has been configured. Shut down."); + m_active = false; + return; + } + lock (m_client_lock) { if (m_client != null) diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs index d408e87202..49753fe399 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncServerModule.cs @@ -97,10 +97,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule m_statsWriter = File.AppendText(syncstats); //Get sync server info for Client Manager actors - string serverAddr = scene.RegionInfo.RegionName + "_ServerIPAddress"; - m_serveraddr = syncConfig.GetString(serverAddr, IPAddrUnknown); - string serverPort = scene.RegionInfo.RegionName + "_ServerPort"; - m_serverport = syncConfig.GetInt(serverPort, PortUnknown); + //string serverAddr = scene.RegionInfo.RegionName + "_ServerIPAddress"; + //m_serveraddr = syncConfig.GetString(serverAddr, IPAddrUnknown); + //string serverPort = scene.RegionInfo.RegionName + "_ServerPort"; + //m_serverport = syncConfig.GetInt(serverPort, PortUnknown); + // Client manager load balancing m_maxClientsPerManager = syncConfig.GetInt("MaxClientsPerManager", 100); DefaultPort++; @@ -154,6 +155,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule } //end of SYMMETRIC SYNC // Start the server and listen for RegionSyncClients + m_serveraddr = m_scene.RegionInfo.ServerIPAddress; + m_serverport = m_scene.RegionInfo.ServerPort; + + m_log.Debug("[REGION SYNC SERVER MODULE] to start server on " + m_serveraddr + ":" + m_serverport); + if (!m_serveraddr.Equals(IPAddrUnknown) && m_serverport != PortUnknown) { m_log.Warn("[REGION SYNC SERVER MODULE] Starting RegionSyncServer"); diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs index 33f9c76776..a4972d05d6 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/SymmetricSync/RegionSyncModule.cs @@ -377,7 +377,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule ///////////////////////////////////////////////////////////////////////////////////////// private static int PortUnknown = -1; - private static string IPAddrUnknown = ""; + private static string IPAddrUnknown = String.Empty; private ILog m_log; //private bool m_active = true; @@ -563,8 +563,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule { m_log.Debug("reading in " + m_scene.RegionInfo.RegionName + "_SyncListenerIPAddress" + " and " + m_scene.RegionInfo.RegionName + "_SyncListenerPort"); - string addr = m_sysConfig.GetString(m_scene.RegionInfo.RegionName+"_SyncListenerIPAddress", IPAddrUnknown); - int port = m_sysConfig.GetInt(m_scene.RegionInfo.RegionName+"_SyncListenerPort", PortUnknown); + //string addr = m_sysConfig.GetString(m_scene.RegionInfo.RegionName+"_SyncListenerIPAddress", IPAddrUnknown); + //int port = m_sysConfig.GetInt(m_scene.RegionInfo.RegionName+"_SyncListenerPort", PortUnknown); + + string addr = m_scene.RegionInfo.SyncListenerAddress; + int port = m_scene.RegionInfo.SyncListenerPort; m_log.Warn(LogHeader + ", listener addr: " + addr + ", port: " + port); @@ -586,8 +589,12 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule { //For now, we assume there is only one remote listener to connect to. Later on, //we may need to modify the code to read in multiple listeners. - string addr = m_sysConfig.GetString(m_scene.RegionInfo.RegionName + "_SyncListenerIPAddress", IPAddrUnknown); - int port = m_sysConfig.GetInt(m_scene.RegionInfo.RegionName + "_SyncListenerPort", PortUnknown); + //string addr = m_sysConfig.GetString(m_scene.RegionInfo.RegionName + "_SyncListenerIPAddress", IPAddrUnknown); + //int port = m_sysConfig.GetInt(m_scene.RegionInfo.RegionName + "_SyncListenerPort", PortUnknown); + + string addr = m_scene.RegionInfo.SyncListenerAddress; + int port = m_scene.RegionInfo.SyncListenerPort; + if (!addr.Equals(IPAddrUnknown) && port != PortUnknown) { RegionSyncListenerInfo info = new RegionSyncListenerInfo(addr, port);