From f801d50a8a2df43b3b4d99ebf32de603e4cfa226 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Mon, 27 Dec 2010 15:25:08 -0800
Subject: WARNING: simulator config var change! This affects only system-facing
 configs. Nothing to do if you follow the rules of not messing with Grid.ini
 and GridHypergrid.ini. Change the remote Grid region module so that it takes
 the network connector as a config variable. This allows the region plugin to
 be reused for both Robust and Simian network connectors.

---
 .../Grid/RemoteGridServiceConnector.cs                     | 14 ++++++++++++--
 bin/config-include/Grid.ini                                |  2 ++
 bin/config-include/GridHypergrid.ini                       |  2 ++
 bin/config-include/HyperSimianGrid.ini                     |  5 +++--
 bin/config-include/SimianGrid.ini                          |  3 ++-
 5 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
index dfba0d6..33cc838 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
@@ -36,6 +36,7 @@ using OpenSim.Framework;
 using OpenSim.Services.Connectors;
 using OpenSim.Region.Framework.Interfaces;
 using OpenSim.Region.Framework.Scenes;
+using OpenSim.Server.Base;
 using OpenSim.Services.Interfaces;
 using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 
@@ -97,9 +98,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
                 return;
             }
 
+            string networkConnector = gridConfig.GetString("NetworkConnector", string.Empty);
+            if (networkConnector == string.Empty)
+            {
+                m_log.Error("[REMOTE GRID CONNECTOR]: Please specify a network connector under [GridService]");
+                return;
+            }
+
+            Object[] args = new Object[] { source }; 
+            m_RemoteGridService = ServerUtils.LoadPlugin<IGridService>(networkConnector, args);
+
             m_LocalGridService = new LocalGridServicesConnector(source);
-            m_RemoteGridService = new GridServicesConnector(source);
-        }
+        }   
 
         public void PostInitialise()
         {
diff --git a/bin/config-include/Grid.ini b/bin/config-include/Grid.ini
index 5624a38..ce5588e 100644
--- a/bin/config-include/Grid.ini
+++ b/bin/config-include/Grid.ini
@@ -37,6 +37,8 @@
     LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
     ; for the LocalGridServicesConnector which is used by the Remote one
     StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
+
+	NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector"
     
 [LibraryService]
     LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini
index e983755..5142d90 100644
--- a/bin/config-include/GridHypergrid.ini
+++ b/bin/config-include/GridHypergrid.ini
@@ -49,6 +49,8 @@
     LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
     StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
 
+    NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector"
+
     ; Needed to display non-default map tile images for linked regions
     AssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector"
 
diff --git a/bin/config-include/HyperSimianGrid.ini b/bin/config-include/HyperSimianGrid.ini
index 29b51de..0b01116 100644
--- a/bin/config-include/HyperSimianGrid.ini
+++ b/bin/config-include/HyperSimianGrid.ini
@@ -21,7 +21,7 @@
     Include-Common = "config-include/GridCommon.ini"
 
 [Modules]
-    GridServices = "SimianGridServiceConnector"
+    GridServices = "RemoteGridServicesConnector"
     PresenceServices = "SimianPresenceServiceConnector"
     UserAccountServices = "SimianUserAccountServiceConnector"
     AuthenticationServices = "SimianAuthenticationServiceConnector"
@@ -53,7 +53,8 @@
 [GridService]
     LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
     StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
-    
+    NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector"
+
     AllowHypergridMapSearch = true
 
 [LibraryService]
diff --git a/bin/config-include/SimianGrid.ini b/bin/config-include/SimianGrid.ini
index 239ce30..311a55b 100644
--- a/bin/config-include/SimianGrid.ini
+++ b/bin/config-include/SimianGrid.ini
@@ -21,7 +21,7 @@
     Include-Common = "config-include/GridCommon.ini"
 
 [Modules]
-    GridServices = "SimianGridServiceConnector"
+    GridServices = "RemoteGridServicesConnector"
     PresenceServices = "SimianPresenceServiceConnector"
     UserAccountServices = "SimianUserAccountServiceConnector"
     AuthenticationServices = "SimianAuthenticationServiceConnector"
@@ -53,6 +53,7 @@
 [GridService]
     LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
     StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
+	NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector"
 
 [LibraryService]
     LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
-- 
cgit v1.1