diff options
Diffstat (limited to 'OpenSim/Services/Connectors')
6 files changed, 47 insertions, 7 deletions
diff --git a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs index c426bba..6f159a0 100644 --- a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs +++ b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs | |||
@@ -87,7 +87,12 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
87 | paramList.Add(hash); | 87 | paramList.Add(hash); |
88 | 88 | ||
89 | XmlRpcRequest request = new XmlRpcRequest("link_region", paramList); | 89 | XmlRpcRequest request = new XmlRpcRequest("link_region", paramList); |
90 | string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/"; | 90 | IPEndPoint ext = info.ExternalEndPoint; |
91 | string uri = ""; | ||
92 | if (ext != null) | ||
93 | { | ||
94 | uri = "http://" + ext.Address + ":" + info.HttpPort + "/"; | ||
95 | } | ||
91 | //m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + uri); | 96 | //m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + uri); |
92 | XmlRpcResponse response = null; | 97 | XmlRpcResponse response = null; |
93 | try | 98 | try |
@@ -189,7 +194,12 @@ namespace OpenSim.Services.Connectors.Hypergrid | |||
189 | paramList.Add(hash); | 194 | paramList.Add(hash); |
190 | 195 | ||
191 | XmlRpcRequest request = new XmlRpcRequest("get_region", paramList); | 196 | XmlRpcRequest request = new XmlRpcRequest("get_region", paramList); |
192 | string uri = "http://" + gatekeeper.ExternalEndPoint.Address + ":" + gatekeeper.HttpPort + "/"; | 197 | IPEndPoint ext = gatekeeper.ExternalEndPoint; |
198 | string uri = ""; | ||
199 | if (ext != null) | ||
200 | { | ||
201 | uri = "http://" + ext.Address + ":" + gatekeeper.HttpPort + "/"; | ||
202 | } | ||
193 | m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: contacting " + uri); | 203 | m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: contacting " + uri); |
194 | XmlRpcResponse response = null; | 204 | XmlRpcResponse response = null; |
195 | try | 205 | try |
diff --git a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs index 06bc11c..0223a77 100644 --- a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs +++ b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs | |||
@@ -83,6 +83,8 @@ namespace OpenSim.Services.Connectors | |||
83 | if (info != null) // just to be sure | 83 | if (info != null) // just to be sure |
84 | { | 84 | { |
85 | XmlRpcRequest request = new XmlRpcRequest("land_data", paramList); | 85 | XmlRpcRequest request = new XmlRpcRequest("land_data", paramList); |
86 | |||
87 | //Possible nullref from info.externalendpoint will be caught here | ||
86 | string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/"; | 88 | string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/"; |
87 | XmlRpcResponse response = request.Send(uri, 10000); | 89 | XmlRpcResponse response = request.Send(uri, 10000); |
88 | if (response.IsFault) | 90 | if (response.IsFault) |
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs index 0a982f8..daf0439 100644 --- a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs +++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs | |||
@@ -87,7 +87,9 @@ namespace OpenSim.Services.Connectors | |||
87 | 87 | ||
88 | public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion) | 88 | public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion) |
89 | { | 89 | { |
90 | string uri = "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort + "/region/" + thisRegion.RegionID + "/"; | 90 | IPEndPoint ext = region.ExternalEndPoint; |
91 | if (ext == null) return false; | ||
92 | string uri = "http://" + ext.Address + ":" + region.HttpPort + "/region/" + thisRegion.RegionID + "/"; | ||
91 | //m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri); | 93 | //m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri); |
92 | 94 | ||
93 | WebRequest HelloNeighbourRequest = WebRequest.Create(uri); | 95 | WebRequest HelloNeighbourRequest = WebRequest.Create(uri); |
diff --git a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs index 41ebeaf..9f86078 100644 --- a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs +++ b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs | |||
@@ -300,6 +300,14 @@ namespace OpenSim.Services.Connectors | |||
300 | { | 300 | { |
301 | pinfo = new PresenceInfo((Dictionary<string, object>)replyData["result"]); | 301 | pinfo = new PresenceInfo((Dictionary<string, object>)replyData["result"]); |
302 | } | 302 | } |
303 | else | ||
304 | { | ||
305 | m_log.DebugFormat("[PRESENCE CONNECTOR]: Invalid reply (result not dictionary) received from presence server when querying for sessionID {0}", sessionID.ToString()); | ||
306 | } | ||
307 | } | ||
308 | else | ||
309 | { | ||
310 | m_log.DebugFormat("[PRESENCE CONNECTOR]: Invalid reply received from presence server when querying for sessionID {0}", sessionID.ToString()); | ||
303 | } | 311 | } |
304 | 312 | ||
305 | return pinfo; | 313 | return pinfo; |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs index 3a61226..57924b7 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs | |||
@@ -104,6 +104,8 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
104 | 104 | ||
105 | public string RegisterRegion(UUID scopeID, GridRegion regionInfo) | 105 | public string RegisterRegion(UUID scopeID, GridRegion regionInfo) |
106 | { | 106 | { |
107 | IPEndPoint ext = regionInfo.ExternalEndPoint; | ||
108 | if (ext == null) return "Region registration for " + regionInfo.RegionName + " failed: Could not resolve EndPoint"; | ||
107 | Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0); | 109 | Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0); |
108 | Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, 4096.0); | 110 | Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, 4096.0); |
109 | 111 | ||
@@ -114,7 +116,7 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
114 | { "ServerURI", OSD.FromString(regionInfo.ServerURI) }, | 116 | { "ServerURI", OSD.FromString(regionInfo.ServerURI) }, |
115 | { "InternalAddress", OSD.FromString(regionInfo.InternalEndPoint.Address.ToString()) }, | 117 | { "InternalAddress", OSD.FromString(regionInfo.InternalEndPoint.Address.ToString()) }, |
116 | { "InternalPort", OSD.FromInteger(regionInfo.InternalEndPoint.Port) }, | 118 | { "InternalPort", OSD.FromInteger(regionInfo.InternalEndPoint.Port) }, |
117 | { "ExternalAddress", OSD.FromString(regionInfo.ExternalEndPoint.Address.ToString()) }, | 119 | { "ExternalAddress", OSD.FromString(ext.Address.ToString()) }, |
118 | { "ExternalPort", OSD.FromInteger(regionInfo.ExternalEndPoint.Port) }, | 120 | { "ExternalPort", OSD.FromInteger(regionInfo.ExternalEndPoint.Port) }, |
119 | { "MapTexture", OSD.FromUUID(regionInfo.TerrainImage) }, | 121 | { "MapTexture", OSD.FromUUID(regionInfo.TerrainImage) }, |
120 | { "Access", OSD.FromInteger(regionInfo.Access) }, | 122 | { "Access", OSD.FromInteger(regionInfo.Access) }, |
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index ff0dd7e..748faef 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -348,9 +348,11 @@ namespace OpenSim.Services.Connectors.Simulation | |||
348 | 348 | ||
349 | public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent) | 349 | public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent) |
350 | { | 350 | { |
351 | IPEndPoint ext = destination.ExternalEndPoint; | ||
351 | agent = null; | 352 | agent = null; |
353 | if (ext == null) return false; | ||
352 | // Eventually, we want to use a caps url instead of the agentID | 354 | // Eventually, we want to use a caps url instead of the agentID |
353 | string uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; | 355 | string uri = "http://" + ext.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; |
354 | //Console.WriteLine(" >>> DoRetrieveRootAgentCall <<< " + uri); | 356 | //Console.WriteLine(" >>> DoRetrieveRootAgentCall <<< " + uri); |
355 | 357 | ||
356 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); | 358 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); |
@@ -442,7 +444,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
442 | return true; | 444 | return true; |
443 | } | 445 | } |
444 | 446 | ||
445 | public bool CloseAgent(GridRegion destination, UUID id) | 447 | private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly) |
446 | { | 448 | { |
447 | string uri = string.Empty; | 449 | string uri = string.Empty; |
448 | try | 450 | try |
@@ -459,6 +461,8 @@ namespace OpenSim.Services.Connectors.Simulation | |||
459 | 461 | ||
460 | WebRequest request = WebRequest.Create(uri); | 462 | WebRequest request = WebRequest.Create(uri); |
461 | request.Method = "DELETE"; | 463 | request.Method = "DELETE"; |
464 | if (ChildOnly) | ||
465 | request.Method += "CHILD"; | ||
462 | request.Timeout = 10000; | 466 | request.Timeout = 10000; |
463 | 467 | ||
464 | StreamReader sr = null; | 468 | StreamReader sr = null; |
@@ -491,6 +495,16 @@ namespace OpenSim.Services.Connectors.Simulation | |||
491 | return true; | 495 | return true; |
492 | } | 496 | } |
493 | 497 | ||
498 | public bool CloseChildAgent(GridRegion destination, UUID id) | ||
499 | { | ||
500 | return CloseAgent(destination, id, true); | ||
501 | } | ||
502 | |||
503 | public bool CloseAgent(GridRegion destination, UUID id) | ||
504 | { | ||
505 | return CloseAgent(destination, id, false); | ||
506 | } | ||
507 | |||
494 | #endregion Agents | 508 | #endregion Agents |
495 | 509 | ||
496 | #region Objects | 510 | #region Objects |
@@ -502,8 +516,10 @@ namespace OpenSim.Services.Connectors.Simulation | |||
502 | 516 | ||
503 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) | 517 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) |
504 | { | 518 | { |
519 | IPEndPoint ext = destination.ExternalEndPoint; | ||
520 | if (ext == null) return false; | ||
505 | string uri | 521 | string uri |
506 | = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + ObjectPath() + sog.UUID + "/"; | 522 | = "http://" + ext.Address + ":" + destination.HttpPort + ObjectPath() + sog.UUID + "/"; |
507 | //m_log.Debug(" >>> DoCreateObjectCall <<< " + uri); | 523 | //m_log.Debug(" >>> DoCreateObjectCall <<< " + uri); |
508 | 524 | ||
509 | WebRequest ObjectCreateRequest = WebRequest.Create(uri); | 525 | WebRequest ObjectCreateRequest = WebRequest.Create(uri); |