aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
diff options
context:
space:
mode:
authorJohn Hurliman2010-03-12 13:16:44 -0800
committerJohn Hurliman2010-03-12 13:16:44 -0800
commit0b5141d45bcd409544e909aedabc3e58e6a86a13 (patch)
tree6566ee2dd669e05584869436bc174590c37bbcd5 /OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
parentSimplify database setup and remove migration problems by moving all sqlite co... (diff)
downloadopensim-SC_OLD-0b5141d45bcd409544e909aedabc3e58e6a86a13.zip
opensim-SC_OLD-0b5141d45bcd409544e909aedabc3e58e6a86a13.tar.gz
opensim-SC_OLD-0b5141d45bcd409544e909aedabc3e58e6a86a13.tar.bz2
opensim-SC_OLD-0b5141d45bcd409544e909aedabc3e58e6a86a13.tar.xz
Fixed SimianGrid connectors to gracefully exit if the required config sections are missing
Diffstat (limited to 'OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs')
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs32
1 files changed, 19 insertions, 13 deletions
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
index 45d1824..542093f 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
51 /// message routing) to the SimianGrid backend 51 /// message routing) to the SimianGrid backend
52 /// </summary> 52 /// </summary>
53 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] 53 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")]
54 public class SimianPresenceServiceConnector : IPresenceService 54 public class SimianPresenceServiceConnector : IPresenceService, ISharedRegionModule
55 { 55 {
56 private static readonly ILog m_log = 56 private static readonly ILog m_log =
57 LogManager.GetLogger( 57 LogManager.GetLogger(
@@ -70,23 +70,29 @@ namespace OpenSim.Services.Connectors.SimianGrid
70 public string Name { get { return "SimianPresenceServiceConnector"; } } 70 public string Name { get { return "SimianPresenceServiceConnector"; } }
71 public void AddRegion(Scene scene) 71 public void AddRegion(Scene scene)
72 { 72 {
73 scene.RegisterModuleInterface<IPresenceService>(this); 73 if (!String.IsNullOrEmpty(m_serverUrl))
74 {
75 scene.RegisterModuleInterface<IPresenceService>(this);
74 76
75 scene.EventManager.OnMakeRootAgent += MakeRootAgentHandler; 77 scene.EventManager.OnMakeRootAgent += MakeRootAgentHandler;
76 scene.EventManager.OnNewClient += NewClientHandler; 78 scene.EventManager.OnNewClient += NewClientHandler;
77 scene.EventManager.OnSignificantClientMovement += SignificantClientMovementHandler; 79 scene.EventManager.OnSignificantClientMovement += SignificantClientMovementHandler;
78 80
79 LogoutRegionAgents(scene.RegionInfo.RegionID); 81 LogoutRegionAgents(scene.RegionInfo.RegionID);
82 }
80 } 83 }
81 public void RemoveRegion(Scene scene) 84 public void RemoveRegion(Scene scene)
82 { 85 {
83 scene.UnregisterModuleInterface<IPresenceService>(this); 86 if (!String.IsNullOrEmpty(m_serverUrl))
87 {
88 scene.UnregisterModuleInterface<IPresenceService>(this);
84 89
85 scene.EventManager.OnMakeRootAgent -= MakeRootAgentHandler; 90 scene.EventManager.OnMakeRootAgent -= MakeRootAgentHandler;
86 scene.EventManager.OnNewClient -= NewClientHandler; 91 scene.EventManager.OnNewClient -= NewClientHandler;
87 scene.EventManager.OnSignificantClientMovement -= SignificantClientMovementHandler; 92 scene.EventManager.OnSignificantClientMovement -= SignificantClientMovementHandler;
88 93
89 LogoutRegionAgents(scene.RegionInfo.RegionID); 94 LogoutRegionAgents(scene.RegionInfo.RegionID);
95 }
90 } 96 }
91 97
92 #endregion ISharedRegionModule 98 #endregion ISharedRegionModule
@@ -101,8 +107,8 @@ namespace OpenSim.Services.Connectors.SimianGrid
101 IConfig gridConfig = source.Configs["PresenceService"]; 107 IConfig gridConfig = source.Configs["PresenceService"];
102 if (gridConfig == null) 108 if (gridConfig == null)
103 { 109 {
104 m_log.Error("[PRESENCE CONNECTOR]: PresenceService missing from OpenSim.ini"); 110 m_log.Info("[PRESENCE CONNECTOR]: PresenceService missing from OpenSim.ini, skipping SimianPresenceServiceConnector");
105 throw new Exception("Presence connector init error"); 111 return;
106 } 112 }
107 113
108 string serviceUrl = gridConfig.GetString("PresenceServerURI"); 114 string serviceUrl = gridConfig.GetString("PresenceServerURI");