diff options
author | Melanie | 2009-09-28 23:03:47 +0100 |
---|---|---|
committer | Melanie | 2009-09-28 23:03:47 +0100 |
commit | 07091493134341a316624d9a1f6a2ef1cfa2f2d8 (patch) | |
tree | 1d394e128be9766656a441058b2bdf141ba90269 /OpenSim/Services/Connectors/Grid | |
parent | Allow the notation config_name@port/dll_name:class_name as a handler spec (diff) | |
parent | Forgot a return statement. (diff) | |
download | opensim-SC_OLD-07091493134341a316624d9a1f6a2ef1cfa2f2d8.zip opensim-SC_OLD-07091493134341a316624d9a1f6a2ef1cfa2f2d8.tar.gz opensim-SC_OLD-07091493134341a316624d9a1f6a2ef1cfa2f2d8.tar.bz2 opensim-SC_OLD-07091493134341a316624d9a1f6a2ef1cfa2f2d8.tar.xz |
Merge branch 'grid-service-redux'
Diffstat (limited to 'OpenSim/Services/Connectors/Grid')
-rw-r--r-- | OpenSim/Services/Connectors/Grid/GridServiceConnector.cs | 3 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs | 92 |
2 files changed, 93 insertions, 2 deletions
diff --git a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs index 748892a..ba46b0d 100644 --- a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs +++ b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs | |||
@@ -94,7 +94,8 @@ namespace OpenSim.Services.Connectors | |||
94 | sendData[kvp.Key] = (string)kvp.Value; | 94 | sendData[kvp.Key] = (string)kvp.Value; |
95 | 95 | ||
96 | sendData["SCOPEID"] = scopeID.ToString(); | 96 | sendData["SCOPEID"] = scopeID.ToString(); |
97 | 97 | sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString(); | |
98 | sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString(); | ||
98 | sendData["METHOD"] = "register"; | 99 | sendData["METHOD"] = "register"; |
99 | 100 | ||
100 | string reqString = ServerUtils.BuildQueryString(sendData); | 101 | string reqString = ServerUtils.BuildQueryString(sendData); |
diff --git a/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs index b5e8743..dd19b01 100644 --- a/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs +++ b/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Services.Connectors.Grid | |||
66 | IList paramList = new ArrayList(); | 66 | IList paramList = new ArrayList(); |
67 | paramList.Add(hash); | 67 | paramList.Add(hash); |
68 | 68 | ||
69 | XmlRpcRequest request = new XmlRpcRequest("linkk_region", paramList); | 69 | XmlRpcRequest request = new XmlRpcRequest("link_region", paramList); |
70 | string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/"; | 70 | string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/"; |
71 | m_log.Debug("[HGrid]: Linking to " + uri); | 71 | m_log.Debug("[HGrid]: Linking to " + uri); |
72 | XmlRpcResponse response = request.Send(uri, 10000); | 72 | XmlRpcResponse response = request.Send(uri, 10000); |
@@ -82,6 +82,7 @@ namespace OpenSim.Services.Connectors.Grid | |||
82 | try | 82 | try |
83 | { | 83 | { |
84 | UUID.TryParse((string)hash["uuid"], out uuid); | 84 | UUID.TryParse((string)hash["uuid"], out uuid); |
85 | m_log.Debug(">> HERE, uuid: " + uuid); | ||
85 | info.RegionID = uuid; | 86 | info.RegionID = uuid; |
86 | if ((string)hash["handle"] != null) | 87 | if ((string)hash["handle"] != null) |
87 | { | 88 | { |
@@ -148,5 +149,94 @@ namespace OpenSim.Services.Connectors.Grid | |||
148 | } | 149 | } |
149 | } | 150 | } |
150 | 151 | ||
152 | public bool InformRegionOfUser(GridRegion regInfo, AgentCircuitData agentData, GridRegion home, string userServer, string assetServer, string inventoryServer) | ||
153 | { | ||
154 | string capsPath = agentData.CapsPath; | ||
155 | Hashtable loginParams = new Hashtable(); | ||
156 | loginParams["session_id"] = agentData.SessionID.ToString(); | ||
157 | |||
158 | loginParams["firstname"] = agentData.firstname; | ||
159 | loginParams["lastname"] = agentData.lastname; | ||
160 | |||
161 | loginParams["agent_id"] = agentData.AgentID.ToString(); | ||
162 | loginParams["circuit_code"] = agentData.circuitcode.ToString(); | ||
163 | loginParams["startpos_x"] = agentData.startpos.X.ToString(); | ||
164 | loginParams["startpos_y"] = agentData.startpos.Y.ToString(); | ||
165 | loginParams["startpos_z"] = agentData.startpos.Z.ToString(); | ||
166 | loginParams["caps_path"] = capsPath; | ||
167 | |||
168 | if (home != null) | ||
169 | { | ||
170 | loginParams["region_uuid"] = home.RegionID.ToString(); | ||
171 | loginParams["regionhandle"] = home.RegionHandle.ToString(); | ||
172 | loginParams["home_address"] = home.ExternalHostName; | ||
173 | loginParams["home_port"] = home.HttpPort.ToString(); | ||
174 | loginParams["internal_port"] = home.InternalEndPoint.Port.ToString(); | ||
175 | |||
176 | m_log.Debug(" --------- Home -------"); | ||
177 | m_log.Debug(" >> " + loginParams["home_address"] + " <<"); | ||
178 | m_log.Debug(" >> " + loginParams["region_uuid"] + " <<"); | ||
179 | m_log.Debug(" >> " + loginParams["regionhandle"] + " <<"); | ||
180 | m_log.Debug(" >> " + loginParams["home_port"] + " <<"); | ||
181 | m_log.Debug(" --------- ------------ -------"); | ||
182 | } | ||
183 | else | ||
184 | m_log.WarnFormat("[HGrid]: Home region not found for {0} {1}", agentData.firstname, agentData.lastname); | ||
185 | |||
186 | loginParams["userserver_id"] = userServer; | ||
187 | loginParams["assetserver_id"] = assetServer; | ||
188 | loginParams["inventoryserver_id"] = inventoryServer; | ||
189 | |||
190 | |||
191 | ArrayList SendParams = new ArrayList(); | ||
192 | SendParams.Add(loginParams); | ||
193 | |||
194 | // Send | ||
195 | string uri = "http://" + regInfo.ExternalHostName + ":" + regInfo.HttpPort + "/"; | ||
196 | //m_log.Debug("XXX uri: " + uri); | ||
197 | XmlRpcRequest request = new XmlRpcRequest("expect_hg_user", SendParams); | ||
198 | XmlRpcResponse reply; | ||
199 | try | ||
200 | { | ||
201 | reply = request.Send(uri, 6000); | ||
202 | } | ||
203 | catch (Exception e) | ||
204 | { | ||
205 | m_log.Warn("[HGrid]: Failed to notify region about user. Reason: " + e.Message); | ||
206 | return false; | ||
207 | } | ||
208 | |||
209 | if (!reply.IsFault) | ||
210 | { | ||
211 | bool responseSuccess = true; | ||
212 | if (reply.Value != null) | ||
213 | { | ||
214 | Hashtable resp = (Hashtable)reply.Value; | ||
215 | if (resp.ContainsKey("success")) | ||
216 | { | ||
217 | if ((string)resp["success"] == "FALSE") | ||
218 | { | ||
219 | responseSuccess = false; | ||
220 | } | ||
221 | } | ||
222 | } | ||
223 | if (responseSuccess) | ||
224 | { | ||
225 | m_log.Info("[HGrid]: Successfully informed remote region about user " + agentData.AgentID); | ||
226 | return true; | ||
227 | } | ||
228 | else | ||
229 | { | ||
230 | m_log.ErrorFormat("[HGrid]: Region responded that it is not available to receive clients"); | ||
231 | return false; | ||
232 | } | ||
233 | } | ||
234 | else | ||
235 | { | ||
236 | m_log.ErrorFormat("[HGrid]: XmlRpc request to region failed with message {0}, code {1} ", reply.FaultString, reply.FaultCode); | ||
237 | return false; | ||
238 | } | ||
239 | } | ||
240 | |||
151 | } | 241 | } |
152 | } | 242 | } |