diff options
Diffstat (limited to 'OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs')
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index a5f748f..a8ed66d 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -383,9 +383,11 @@ namespace OpenSim.Services.Connectors.Simulation | |||
383 | 383 | ||
384 | public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent) | 384 | public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent) |
385 | { | 385 | { |
386 | IPEndPoint ext = destination.ExternalEndPoint; | ||
386 | agent = null; | 387 | agent = null; |
388 | if (ext == null) return false; | ||
387 | // Eventually, we want to use a caps url instead of the agentID | 389 | // Eventually, we want to use a caps url instead of the agentID |
388 | string uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; | 390 | string uri = "http://" + ext.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/"; |
389 | //Console.WriteLine(" >>> DoRetrieveRootAgentCall <<< " + uri); | 391 | //Console.WriteLine(" >>> DoRetrieveRootAgentCall <<< " + uri); |
390 | 392 | ||
391 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); | 393 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); |
@@ -477,7 +479,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
477 | return true; | 479 | return true; |
478 | } | 480 | } |
479 | 481 | ||
480 | public bool CloseAgent(GridRegion destination, UUID id) | 482 | private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly) |
481 | { | 483 | { |
482 | string uri = string.Empty; | 484 | string uri = string.Empty; |
483 | try | 485 | try |
@@ -494,6 +496,8 @@ namespace OpenSim.Services.Connectors.Simulation | |||
494 | 496 | ||
495 | WebRequest request = WebRequest.Create(uri); | 497 | WebRequest request = WebRequest.Create(uri); |
496 | request.Method = "DELETE"; | 498 | request.Method = "DELETE"; |
499 | if (ChildOnly) | ||
500 | request.Method += "CHILD"; | ||
497 | request.Timeout = 10000; | 501 | request.Timeout = 10000; |
498 | 502 | ||
499 | StreamReader sr = null; | 503 | StreamReader sr = null; |
@@ -526,6 +530,16 @@ namespace OpenSim.Services.Connectors.Simulation | |||
526 | return true; | 530 | return true; |
527 | } | 531 | } |
528 | 532 | ||
533 | public bool CloseChildAgent(GridRegion destination, UUID id) | ||
534 | { | ||
535 | return CloseAgent(destination, id, true); | ||
536 | } | ||
537 | |||
538 | public bool CloseAgent(GridRegion destination, UUID id) | ||
539 | { | ||
540 | return CloseAgent(destination, id, false); | ||
541 | } | ||
542 | |||
529 | #endregion Agents | 543 | #endregion Agents |
530 | 544 | ||
531 | #region Objects | 545 | #region Objects |
@@ -537,8 +551,10 @@ namespace OpenSim.Services.Connectors.Simulation | |||
537 | 551 | ||
538 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) | 552 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) |
539 | { | 553 | { |
554 | IPEndPoint ext = destination.ExternalEndPoint; | ||
555 | if (ext == null) return false; | ||
540 | string uri | 556 | string uri |
541 | = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + ObjectPath() + sog.UUID + "/"; | 557 | = "http://" + ext.Address + ":" + destination.HttpPort + ObjectPath() + sog.UUID + "/"; |
542 | //m_log.Debug(" >>> DoCreateObjectCall <<< " + uri); | 558 | //m_log.Debug(" >>> DoCreateObjectCall <<< " + uri); |
543 | 559 | ||
544 | WebRequest ObjectCreateRequest = WebRequest.Create(uri); | 560 | WebRequest ObjectCreateRequest = WebRequest.Create(uri); |