mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user