diff options
author | John Hurliman | 2010-03-12 13:16:44 -0800 |
---|---|---|
committer | John Hurliman | 2010-03-12 13:16:44 -0800 |
commit | 0b5141d45bcd409544e909aedabc3e58e6a86a13 (patch) | |
tree | 6566ee2dd669e05584869436bc174590c37bbcd5 /OpenSim/Services/Connectors/SimianGrid/SimianPresenceServiceConnector.cs | |
parent | Simplify database setup and remove migration problems by moving all sqlite co... (diff) | |
download | opensim-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.cs | 32 |
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"); |