aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-09-21 16:58:14 +0000
committerJustin Clarke Casey2008-09-21 16:58:14 +0000
commit1a71a3a56776bc1d91f9da031a295fd4a0023e87 (patch)
tree2ba99a3fa223499313d3cc9c199c042859af148d /OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
parentDon't attach attachements to child agents. This coincidentially fixes a race (diff)
downloadopensim-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.cs30
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;