aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs')
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs22
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);