aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs16
-rw-r--r--OpenSim/Framework/Servers/ServerBase.cs4
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs17
-rw-r--r--OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs4
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsScene.cs2
-rw-r--r--OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs90
8 files changed, 90 insertions, 51 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 9f3844b..49fc566 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -70,6 +70,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
70 70
71 private string m_name = "RemoteAdminPlugin"; 71 private string m_name = "RemoteAdminPlugin";
72 private string m_version = "0.0"; 72 private string m_version = "0.0";
73 private string m_openSimVersion;
73 74
74 public string Version 75 public string Version
75 { 76 {
@@ -89,6 +90,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
89 90
90 public void Initialise(OpenSimBase openSim) 91 public void Initialise(OpenSimBase openSim)
91 { 92 {
93 m_openSimVersion = openSim.GetVersionText();
94
92 m_configSource = openSim.ConfigSource.Source; 95 m_configSource = openSim.ConfigSource.Source;
93 try 96 try
94 { 97 {
@@ -159,6 +162,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
159 162
160 // Misc 163 // Misc
161 availableMethods["admin_refresh_search"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcRefreshSearch); 164 availableMethods["admin_refresh_search"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcRefreshSearch);
165 availableMethods["admin_get_opensim_version"] = (req, ep) => InvokeXmlRpcMethod(req, ep, XmlRpcGetOpenSimVersion);
162 166
163 // Either enable full remote functionality or just selected features 167 // Either enable full remote functionality or just selected features
164 string enabledMethods = m_config.GetString("enabled_methods", "all"); 168 string enabledMethods = m_config.GetString("enabled_methods", "all");
@@ -1977,6 +1981,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
1977 m_log.Info("[RADMIN]: Refresh Search Request complete"); 1981 m_log.Info("[RADMIN]: Refresh Search Request complete");
1978 } 1982 }
1979 1983
1984 private void XmlRpcGetOpenSimVersion(XmlRpcRequest request, XmlRpcResponse response, IPEndPoint remoteClient)
1985 {
1986 m_log.Info("[RADMIN]: Received Get OpenSim Version Request");
1987
1988 Hashtable responseData = (Hashtable)response.Value;
1989
1990 responseData["version"] = m_openSimVersion;
1991 responseData["success"] = true;
1992
1993 m_log.Info("[RADMIN]: Get OpenSim Version Request complete");
1994 }
1995
1980 /// <summary> 1996 /// <summary>
1981 /// Parse a float with the given parameter name from a request data hash table. 1997 /// Parse a float with the given parameter name from a request data hash table.
1982 /// </summary> 1998 /// </summary>
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs
index c182a3a..9eb2281 100644
--- a/OpenSim/Framework/Servers/ServerBase.cs
+++ b/OpenSim/Framework/Servers/ServerBase.cs
@@ -531,7 +531,7 @@ namespace OpenSim.Framework.Servers
531 } 531 }
532 } 532 }
533 533
534 protected string GetVersionText() 534 public string GetVersionText()
535 { 535 {
536 return String.Format("Version: {0} (interface version {1})", m_version, VersionInfo.MajorInterfaceVersion); 536 return String.Format("Version: {0} (interface version {1})", m_version, VersionInfo.MajorInterfaceVersion);
537 } 537 }
@@ -563,4 +563,4 @@ namespace OpenSim.Framework.Servers
563 m_console.OutputFormat(format, components); 563 m_console.OutputFormat(format, components);
564 } 564 }
565 } 565 }
566} \ No newline at end of file 566}
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 0c8a2b1..cb09047 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -402,14 +402,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
402 { 402 {
403 // Record that this agent is in transit so that we can prevent simultaneous requests and do later detection 403 // Record that this agent is in transit so that we can prevent simultaneous requests and do later detection
404 // of whether the destination region completes the teleport. 404 // of whether the destination region completes the teleport.
405 if (!m_entityTransferStateMachine.SetInTransit(sp.UUID)) 405 m_entityTransferStateMachine.SetInTransit(sp.UUID);
406 { 406// if (!m_entityTransferStateMachine.SetInTransit(sp.UUID))
407 m_log.DebugFormat( 407// {
408 "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", 408// m_log.DebugFormat(
409 sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position); 409// "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.",
410 410// sp.Name, sp.UUID, reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position);
411 return; 411//
412 } 412// return;
413// }
413 414
414 if (reg == null || finalDestination == null) 415 if (reg == null || finalDestination == null)
415 { 416 {
diff --git a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
index 708b99d..0276267 100644
--- a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
+++ b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
@@ -533,6 +533,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
533 ResponseBody = e.Message; 533 ResponseBody = e.Message;
534 } 534 }
535 535
536 if (ResponseBody == null)
537 ResponseBody = String.Empty;
538
536 _finished = true; 539 _finished = true;
537 return; 540 return;
538 } 541 }
@@ -546,6 +549,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
546 response.Close(); 549 response.Close();
547 } 550 }
548 551
552 if (ResponseBody == null)
553 ResponseBody = String.Empty;
554
549 _finished = true; 555 _finished = true;
550 } 556 }
551 557
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 9d07537..e3bc8c7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2065,11 +2065,11 @@ namespace OpenSim.Region.Framework.Scenes
2065 EventManager.TriggerPrimsLoaded(this); 2065 EventManager.TriggerPrimsLoaded(this);
2066 } 2066 }
2067 2067
2068 public bool SuportsRayCastFiltered() 2068 public bool SupportsRayCastFiltered()
2069 { 2069 {
2070 if (PhysicsScene == null) 2070 if (PhysicsScene == null)
2071 return false; 2071 return false;
2072 return PhysicsScene.SuportsRaycastWorldFiltered(); 2072 return PhysicsScene.SupportsRaycastWorldFiltered();
2073 } 2073 }
2074 2074
2075 public object RayCastFiltered(Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter) 2075 public object RayCastFiltered(Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter)
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index d24ab2a..57e2d20 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -350,7 +350,7 @@ namespace OpenSim.Region.Physics.Manager
350 return null; 350 return null;
351 } 351 }
352 352
353 public virtual bool SuportsRaycastWorldFiltered() 353 public virtual bool SupportsRaycastWorldFiltered()
354 { 354 {
355 return false; 355 return false;
356 } 356 }
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
index 5113210..510cbe9 100644
--- a/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/UbitOdePlugin/OdeScene.cs
@@ -2643,7 +2643,7 @@ namespace OpenSim.Region.Physics.OdePlugin
2643 } 2643 }
2644 } 2644 }
2645 2645
2646 public override bool SuportsRaycastWorldFiltered() 2646 public override bool SupportsRaycastWorldFiltered()
2647 { 2647 {
2648 return true; 2648 return true;
2649 } 2649 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index fcb68b2..53c6e5c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3019,38 +3019,38 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3019 3019
3020 public LSL_Integer llGiveMoney(string destination, int amount) 3020 public LSL_Integer llGiveMoney(string destination, int amount)
3021 { 3021 {
3022 m_host.AddScriptLPS(1); 3022 Util.FireAndForget(x =>
3023
3024 if (m_item.PermsGranter == UUID.Zero)
3025 return 0;
3026
3027 if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_DEBIT) == 0)
3028 { 3023 {
3029 LSLError("No permissions to give money"); 3024 m_host.AddScriptLPS(1);
3030 return 0;
3031 }
3032 3025
3033 UUID toID = new UUID(); 3026 if (m_item.PermsGranter == UUID.Zero)
3027 return;
3034 3028
3035 if (!UUID.TryParse(destination, out toID)) 3029 if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_DEBIT) == 0)
3036 { 3030 {
3037 LSLError("Bad key in llGiveMoney"); 3031 LSLError("No permissions to give money");
3038 return 0; 3032 return;
3039 } 3033 }
3040 3034
3041 IMoneyModule money = World.RequestModuleInterface<IMoneyModule>(); 3035 UUID toID = new UUID();
3042 3036
3043 if (money == null) 3037 if (!UUID.TryParse(destination, out toID))
3044 { 3038 {
3045 NotImplemented("llGiveMoney"); 3039 LSLError("Bad key in llGiveMoney");
3046 return 0; 3040 return;
3047 } 3041 }
3048 3042
3049 bool result = money.ObjectGiveMoney( 3043 IMoneyModule money = World.RequestModuleInterface<IMoneyModule>();
3050 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero);
3051 3044
3052 if (result) 3045 if (money == null)
3053 return 1; 3046 {
3047 NotImplemented("llGiveMoney");
3048 return;
3049 }
3050
3051 money.ObjectGiveMoney(
3052 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero);
3053 });
3054 3054
3055 return 0; 3055 return 0;
3056 } 3056 }
@@ -7322,7 +7322,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7322 { 7322 {
7323 m_host.AddScriptLPS(1); 7323 m_host.AddScriptLPS(1);
7324 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 7324 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
7325 if (xmlrpcMod.IsEnabled()) 7325 if (xmlrpcMod != null && xmlrpcMod.IsEnabled())
7326 { 7326 {
7327 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_host.LocalId, m_item.ItemID, UUID.Zero); 7327 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_host.LocalId, m_item.ItemID, UUID.Zero);
7328 IXmlRpcRouter xmlRpcRouter = m_ScriptEngine.World.RequestModuleInterface<IXmlRpcRouter>(); 7328 IXmlRpcRouter xmlRpcRouter = m_ScriptEngine.World.RequestModuleInterface<IXmlRpcRouter>();
@@ -7354,6 +7354,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7354 m_host.AddScriptLPS(1); 7354 m_host.AddScriptLPS(1);
7355 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 7355 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
7356 ScriptSleep(3000); 7356 ScriptSleep(3000);
7357 if (xmlrpcMod == null)
7358 return "";
7357 return (xmlrpcMod.SendRemoteData(m_host.LocalId, m_item.ItemID, channel, dest, idata, sdata)).ToString(); 7359 return (xmlrpcMod.SendRemoteData(m_host.LocalId, m_item.ItemID, channel, dest, idata, sdata)).ToString();
7358 } 7360 }
7359 7361
@@ -7361,7 +7363,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7361 { 7363 {
7362 m_host.AddScriptLPS(1); 7364 m_host.AddScriptLPS(1);
7363 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 7365 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
7364 xmlrpcMod.RemoteDataReply(channel, message_id, sdata, idata); 7366 if (xmlrpcMod != null)
7367 xmlrpcMod.RemoteDataReply(channel, message_id, sdata, idata);
7365 ScriptSleep(3000); 7368 ScriptSleep(3000);
7366 } 7369 }
7367 7370
@@ -7369,7 +7372,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7369 { 7372 {
7370 m_host.AddScriptLPS(1); 7373 m_host.AddScriptLPS(1);
7371 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 7374 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
7372 xmlrpcMod.CloseXMLRPCChannel((UUID)channel); 7375 if (xmlrpcMod != null)
7376 xmlrpcMod.CloseXMLRPCChannel((UUID)channel);
7373 ScriptSleep(1000); 7377 ScriptSleep(1000);
7374 } 7378 }
7375 7379
@@ -12207,7 +12211,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12207 bool checkPhysical = !((rejectTypes & ScriptBaseClass.RC_REJECT_PHYSICAL) == ScriptBaseClass.RC_REJECT_PHYSICAL); 12211 bool checkPhysical = !((rejectTypes & ScriptBaseClass.RC_REJECT_PHYSICAL) == ScriptBaseClass.RC_REJECT_PHYSICAL);
12208 12212
12209 12213
12210 if (World.SuportsRayCastFiltered()) 12214 if (World.SupportsRayCastFiltered())
12211 { 12215 {
12212 if (dist == 0) 12216 if (dist == 0)
12213 return list; 12217 return list;
@@ -12270,13 +12274,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12270 } 12274 }
12271 else 12275 else
12272 { 12276 {
12273 if (checkTerrain)
12274 {
12275 ContactResult? groundContact = GroundIntersection(rayStart, rayEnd);
12276 if (groundContact != null)
12277 results.Add((ContactResult)groundContact);
12278 }
12279
12280 if (checkAgents) 12277 if (checkAgents)
12281 { 12278 {
12282 ContactResult[] agentHits = AvatarIntersection(rayStart, rayEnd); 12279 ContactResult[] agentHits = AvatarIntersection(rayStart, rayEnd);
@@ -12292,6 +12289,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12292 } 12289 }
12293 } 12290 }
12294 12291
12292 // Double check this
12293 if (checkTerrain)
12294 {
12295 bool skipGroundCheck = false;
12296
12297 foreach (ContactResult c in results)
12298 {
12299 if (c.ConsumerID == 0) // Physics gave us a ground collision
12300 skipGroundCheck = true;
12301 }
12302
12303 if (!skipGroundCheck)
12304 {
12305 ContactResult? groundContact = GroundIntersection(rayStart, rayEnd);
12306 if (groundContact != null)
12307 results.Add((ContactResult)groundContact);
12308 }
12309 }
12310
12295 results.Sort(delegate(ContactResult a, ContactResult b) 12311 results.Sort(delegate(ContactResult a, ContactResult b)
12296 { 12312 {
12297 return a.Depth.CompareTo(b.Depth); 12313 return a.Depth.CompareTo(b.Depth);
@@ -12585,7 +12601,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12585 } 12601 }
12586 12602
12587 bool result = money.ObjectGiveMoney( 12603 bool result = money.ObjectGiveMoney(
12588 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount,UUID.Zero); 12604 m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount, txn);
12589 12605
12590 if (result) 12606 if (result)
12591 { 12607 {