aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Grid
diff options
context:
space:
mode:
authorMelanie2009-09-28 23:03:47 +0100
committerMelanie2009-09-28 23:03:47 +0100
commit07091493134341a316624d9a1f6a2ef1cfa2f2d8 (patch)
tree1d394e128be9766656a441058b2bdf141ba90269 /OpenSim/Services/Connectors/Grid
parentAllow the notation config_name@port/dll_name:class_name as a handler spec (diff)
parentForgot a return statement. (diff)
downloadopensim-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.cs3
-rw-r--r--OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs92
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}