diff options
author | Justin Clarke Casey | 2008-09-21 16:58:14 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-09-21 16:58:14 +0000 |
commit | 1a71a3a56776bc1d91f9da031a295fd4a0023e87 (patch) | |
tree | 2ba99a3fa223499313d3cc9c199c042859af148d /OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |
parent | Don't attach attachements to child agents. This coincidentially fixes a race (diff) | |
download | opensim-SC-1a71a3a56776bc1d91f9da031a295fd4a0023e87.zip opensim-SC-1a71a3a56776bc1d91f9da031a295fd4a0023e87.tar.gz opensim-SC-1a71a3a56776bc1d91f9da031a295fd4a0023e87.tar.bz2 opensim-SC-1a71a3a56776bc1d91f9da031a295fd4a0023e87.tar.xz |
* Fix http://opensimulator.org/mantis/view.php?id=2189
* Allow a grid mode region simulator to properly shutdown even if the grid service is offline
Diffstat (limited to 'OpenSim/Region/Communications/OGS1/OGS1GridServices.cs')
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 45d0931..537947b 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -141,11 +141,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
141 | SendParams.Add(GridParams); | 141 | SendParams.Add(GridParams); |
142 | 142 | ||
143 | // Send Request | 143 | // Send Request |
144 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); | ||
144 | XmlRpcResponse GridResp; | 145 | XmlRpcResponse GridResp; |
146 | |||
145 | try | 147 | try |
146 | { | 148 | { |
147 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); | ||
148 | |||
149 | // The timeout should always be significantly larger than the timeout for the grid server to request | 149 | // The timeout should always be significantly larger than the timeout for the grid server to request |
150 | // the initial status of the region before confirming registration. | 150 | // the initial status of the region before confirming registration. |
151 | GridResp = GridReq.Send(serversInfo.GridURL, 90000); | 151 | GridResp = GridReq.Send(serversInfo.GridURL, 90000); |
@@ -154,7 +154,9 @@ namespace OpenSim.Region.Communications.OGS1 | |||
154 | { | 154 | { |
155 | Exception e2 | 155 | Exception e2 |
156 | = new Exception( | 156 | = new Exception( |
157 | String.Format("Unable to connect to grid at {0}. Grid service not running?", serversInfo.GridURL), | 157 | String.Format( |
158 | "Unable to register region with grid at {0}. Grid service not running?", | ||
159 | serversInfo.GridURL), | ||
158 | e); | 160 | e); |
159 | 161 | ||
160 | throw(e2); | 162 | throw(e2); |
@@ -193,6 +195,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
193 | return m_localBackend.RegisterRegion(regionInfo); | 195 | return m_localBackend.RegisterRegion(regionInfo); |
194 | } | 196 | } |
195 | 197 | ||
198 | // see IGridServices | ||
196 | public bool DeregisterRegion(RegionInfo regionInfo) | 199 | public bool DeregisterRegion(RegionInfo regionInfo) |
197 | { | 200 | { |
198 | Hashtable GridParams = new Hashtable(); | 201 | Hashtable GridParams = new Hashtable(); |
@@ -205,7 +208,24 @@ namespace OpenSim.Region.Communications.OGS1 | |||
205 | 208 | ||
206 | // Send Request | 209 | // Send Request |
207 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_after_region_moved", SendParams); | 210 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_after_region_moved", SendParams); |
208 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 10000); | 211 | XmlRpcResponse GridResp = null; |
212 | |||
213 | try | ||
214 | { | ||
215 | GridResp = GridReq.Send(serversInfo.GridURL, 10000); | ||
216 | } | ||
217 | catch (Exception e) | ||
218 | { | ||
219 | Exception e2 | ||
220 | = new Exception( | ||
221 | String.Format( | ||
222 | "Unable to deregister region with grid at {0}. Grid service not running?", | ||
223 | serversInfo.GridURL), | ||
224 | e); | ||
225 | |||
226 | throw(e2); | ||
227 | } | ||
228 | |||
209 | Hashtable GridRespData = (Hashtable) GridResp.Value; | 229 | Hashtable GridRespData = (Hashtable) GridResp.Value; |
210 | 230 | ||
211 | // Hashtable griddatahash = GridRespData; | 231 | // Hashtable griddatahash = GridRespData; |