diff options
7 files changed, 45 insertions, 15 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs index 76bf41b..433a1c2 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs | |||
@@ -372,5 +372,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
372 | controllingClient.SendScriptRunningReply(objectID, itemID, | 372 | controllingClient.SendScriptRunningReply(objectID, itemID, |
373 | id.Running); | 373 | id.Running); |
374 | } | 374 | } |
375 | |||
376 | public IScriptApi GetApi(UUID itemID, string name) | ||
377 | { | ||
378 | return m_ScriptManager.GetApi(itemID, name); | ||
379 | } | ||
375 | } | 380 | } |
376 | } | 381 | } |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 875b29e..fc6024a 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs | |||
@@ -619,7 +619,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
619 | 619 | ||
620 | InstanceData id = GetScript(localID, itemID); | 620 | InstanceData id = GetScript(localID, itemID); |
621 | 621 | ||
622 | if (id == null) | ||
623 | return 0; | ||
624 | |||
622 | return id.StartParam; | 625 | return id.StartParam; |
623 | } | 626 | } |
627 | |||
628 | public IScriptApi GetApi(UUID itemID, string name) | ||
629 | { | ||
630 | uint localID = GetLocalID(itemID); | ||
631 | |||
632 | InstanceData id = GetScript(localID, itemID); | ||
633 | if (id == null) | ||
634 | return null; | ||
635 | |||
636 | if (id.Apis.ContainsKey(name)) | ||
637 | return id.Apis[name]; | ||
638 | |||
639 | return null; | ||
640 | } | ||
624 | } | 641 | } |
625 | } | 642 | } |
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IEventReceiver.cs b/OpenSim/Region/ScriptEngine/Interfaces/IEventReceiver.cs index 084e279..898d670 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IEventReceiver.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IEventReceiver.cs | |||
@@ -66,5 +66,6 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
66 | IConfig Config { get; } | 66 | IConfig Config { get; } |
67 | string ScriptEngineName { get; } | 67 | string ScriptEngineName { get; } |
68 | ILog Log { get; } | 68 | ILog Log { get; } |
69 | IScriptApi GetApi(UUID itemID, string name); | ||
69 | } | 70 | } |
70 | } | 71 | } |
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs index ccfbca8..5bd2f79 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs | |||
@@ -46,7 +46,5 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
46 | /// Queue an event for execution | 46 | /// Queue an event for execution |
47 | /// </summary> | 47 | /// </summary> |
48 | IScriptWorkItem QueueEventHandler(object parms); | 48 | IScriptWorkItem QueueEventHandler(object parms); |
49 | |||
50 | IScriptApi GetApi(UUID itemID, string name); | ||
51 | } | 49 | } |
52 | } | 50 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 4ae4fe2..783b1e4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -7182,6 +7182,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7182 | 7182 | ||
7183 | public LSL_String llRequestSimulatorData(string simulator, int data) | 7183 | public LSL_String llRequestSimulatorData(string simulator, int data) |
7184 | { | 7184 | { |
7185 | IOSSL_Api ossl = (IOSSL_Api)m_ScriptEngine.GetApi(m_itemID, "OSSL"); | ||
7186 | |||
7185 | try | 7187 | try |
7186 | { | 7188 | { |
7187 | m_host.AddScriptLPS(1); | 7189 | m_host.AddScriptLPS(1); |
@@ -7223,6 +7225,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7223 | else | 7225 | else |
7224 | reply = "UNKNOWN"; | 7226 | reply = "UNKNOWN"; |
7225 | break; | 7227 | break; |
7228 | case 128: | ||
7229 | if (ossl != null) | ||
7230 | ossl.CheckThreatLevel(ThreatLevel.High, "llRequestSimulatorData"); | ||
7231 | reply = "OpenSim"; | ||
7232 | break; | ||
7226 | default: | 7233 | default: |
7227 | // ScriptSleep(1000); | 7234 | // ScriptSleep(1000); |
7228 | return UUID.Zero.ToString(); // Raise no event | 7235 | return UUID.Zero.ToString(); // Raise no event |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index c5e6359..bfe289c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -87,18 +87,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
87 | // modification of user data, or allows the compromise of | 87 | // modification of user data, or allows the compromise of |
88 | // sensitive data by design. | 88 | // sensitive data by design. |
89 | 89 | ||
90 | public enum ThreatLevel | ||
91 | { | ||
92 | None = 0, | ||
93 | Nuisance = 1, | ||
94 | VeryLow = 2, | ||
95 | Low = 3, | ||
96 | Moderate = 4, | ||
97 | High = 5, | ||
98 | VeryHigh = 6, | ||
99 | Severe = 7 | ||
100 | }; | ||
101 | |||
102 | [Serializable] | 90 | [Serializable] |
103 | public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi | 91 | public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi |
104 | { | 92 | { |
@@ -180,7 +168,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
180 | throw new Exception("OSSL Runtime Error: " + msg); | 168 | throw new Exception("OSSL Runtime Error: " + msg); |
181 | } | 169 | } |
182 | 170 | ||
183 | protected void CheckThreatLevel(ThreatLevel level, string function) | 171 | public void CheckThreatLevel(ThreatLevel level, string function) |
184 | { | 172 | { |
185 | if (!m_OSFunctionsEnabled) | 173 | if (!m_OSFunctionsEnabled) |
186 | OSSLError(function+": permission denied"); // throws | 174 | OSSLError(function+": permission denied"); // throws |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index f486bd2..48eddd2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | |||
@@ -28,8 +28,22 @@ using System.Collections; | |||
28 | using OpenSim.Region.ScriptEngine.Interfaces; | 28 | using OpenSim.Region.ScriptEngine.Interfaces; |
29 | namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | 29 | namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces |
30 | { | 30 | { |
31 | public enum ThreatLevel | ||
32 | { | ||
33 | None = 0, | ||
34 | Nuisance = 1, | ||
35 | VeryLow = 2, | ||
36 | Low = 3, | ||
37 | Moderate = 4, | ||
38 | High = 5, | ||
39 | VeryHigh = 6, | ||
40 | Severe = 7 | ||
41 | }; | ||
42 | |||
31 | public interface IOSSL_Api | 43 | public interface IOSSL_Api |
32 | { | 44 | { |
45 | void CheckThreatLevel(ThreatLevel level, string function); | ||
46 | |||
33 | //OpenSim functions | 47 | //OpenSim functions |
34 | string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer); | 48 | string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer); |
35 | string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams, | 49 | string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams, |