mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
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.
This commit is contained in:
@@ -372,5 +372,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
||||
controllingClient.SendScriptRunningReply(objectID, itemID,
|
||||
id.Running);
|
||||
}
|
||||
|
||||
public IScriptApi GetApi(UUID itemID, string name)
|
||||
{
|
||||
return m_ScriptManager.GetApi(itemID, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -619,7 +619,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
||||
|
||||
InstanceData id = GetScript(localID, itemID);
|
||||
|
||||
if (id == null)
|
||||
return 0;
|
||||
|
||||
return id.StartParam;
|
||||
}
|
||||
|
||||
public IScriptApi GetApi(UUID itemID, string name)
|
||||
{
|
||||
uint localID = GetLocalID(itemID);
|
||||
|
||||
InstanceData id = GetScript(localID, itemID);
|
||||
if (id == null)
|
||||
return null;
|
||||
|
||||
if (id.Apis.ContainsKey(name))
|
||||
return id.Apis[name];
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,5 +66,6 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
|
||||
IConfig Config { get; }
|
||||
string ScriptEngineName { get; }
|
||||
ILog Log { get; }
|
||||
IScriptApi GetApi(UUID itemID, string name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,5 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
|
||||
/// Queue an event for execution
|
||||
/// </summary>
|
||||
IScriptWorkItem QueueEventHandler(object parms);
|
||||
|
||||
IScriptApi GetApi(UUID itemID, string name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7182,6 +7182,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
|
||||
public LSL_String llRequestSimulatorData(string simulator, int data)
|
||||
{
|
||||
IOSSL_Api ossl = (IOSSL_Api)m_ScriptEngine.GetApi(m_itemID, "OSSL");
|
||||
|
||||
try
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
@@ -7223,6 +7225,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
else
|
||||
reply = "UNKNOWN";
|
||||
break;
|
||||
case 128:
|
||||
if (ossl != null)
|
||||
ossl.CheckThreatLevel(ThreatLevel.High, "llRequestSimulatorData");
|
||||
reply = "OpenSim";
|
||||
break;
|
||||
default:
|
||||
// ScriptSleep(1000);
|
||||
return UUID.Zero.ToString(); // Raise no event
|
||||
|
||||
@@ -87,18 +87,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
// modification of user data, or allows the compromise of
|
||||
// sensitive data by design.
|
||||
|
||||
public enum ThreatLevel
|
||||
{
|
||||
None = 0,
|
||||
Nuisance = 1,
|
||||
VeryLow = 2,
|
||||
Low = 3,
|
||||
Moderate = 4,
|
||||
High = 5,
|
||||
VeryHigh = 6,
|
||||
Severe = 7
|
||||
};
|
||||
|
||||
[Serializable]
|
||||
public class OSSL_Api : MarshalByRefObject, IOSSL_Api, IScriptApi
|
||||
{
|
||||
@@ -180,7 +168,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
throw new Exception("OSSL Runtime Error: " + msg);
|
||||
}
|
||||
|
||||
protected void CheckThreatLevel(ThreatLevel level, string function)
|
||||
public void CheckThreatLevel(ThreatLevel level, string function)
|
||||
{
|
||||
if (!m_OSFunctionsEnabled)
|
||||
OSSLError(function+": permission denied"); // throws
|
||||
|
||||
@@ -28,8 +28,22 @@ using System.Collections;
|
||||
using OpenSim.Region.ScriptEngine.Interfaces;
|
||||
namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||
{
|
||||
public enum ThreatLevel
|
||||
{
|
||||
None = 0,
|
||||
Nuisance = 1,
|
||||
VeryLow = 2,
|
||||
Low = 3,
|
||||
Moderate = 4,
|
||||
High = 5,
|
||||
VeryHigh = 6,
|
||||
Severe = 7
|
||||
};
|
||||
|
||||
public interface IOSSL_Api
|
||||
{
|
||||
void CheckThreatLevel(ThreatLevel level, string function);
|
||||
|
||||
//OpenSim functions
|
||||
string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer);
|
||||
string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
|
||||
|
||||
Reference in New Issue
Block a user