diff options
author | Melanie Thielker | 2008-10-03 06:15:23 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-10-03 06:15:23 +0000 |
commit | cffd73c59fb8cba3b93a1555173e3f4d5cda1258 (patch) | |
tree | 61736afec7c67767f7dd53afdc64ca961f0d5f80 /OpenSim/Region | |
parent | Plumb in the start parameter in DNE (diff) | |
download | opensim-SC-cffd73c59fb8cba3b93a1555173e3f4d5cda1258.zip opensim-SC-cffd73c59fb8cba3b93a1555173e3f4d5cda1258.tar.gz opensim-SC-cffd73c59fb8cba3b93a1555173e3f4d5cda1258.tar.bz2 opensim-SC-cffd73c59fb8cba3b93a1555173e3f4d5cda1258.tar.xz |
Reintroduces the discovery mechanism to use llRequestSimulatorData("", 128)
Causes the dataserver event to return "OpenSim" when running on OpenSim.
Requires ThreatLevel to be "High" or above to function.
Diffstat (limited to 'OpenSim/Region')
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, |