From 7874a0b578acd49ecb981e1f1bdcbd33a67d16c6 Mon Sep 17 00:00:00 2001 From: onefang Date: Sun, 19 May 2019 22:39:27 +1000 Subject: Less Oh Silly Threat detection. Scripts run a little faster if they don't stop to be overly paranoid all the time. --- .../Shared/Api/Implementation/OSSL_Api.cs | 238 ++------------------ bin/config-include/osslEnable.ini | 248 +++++++++++---------- 2 files changed, 151 insertions(+), 335 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 6e28fe0..5c03191 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -516,13 +516,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Float osGetTerrainHeight(int x, int y) { - CheckThreatLevel(); return GetTerrainHeight(x, y); } public LSL_Float osTerrainGetHeight(int x, int y) { - CheckThreatLevel(); OSSLDeprecated("osTerrainGetHeight", "osGetTerrainHeight"); return GetTerrainHeight(x, y); } @@ -659,11 +657,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer) { - // This may be upgraded depending on the griefing or DOS - // potential, or guarded with a delay - // - CheckThreatLevel(ThreatLevel.VeryLow, "osSetDynamicTextureURL"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -683,8 +676,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams, int timer, int alpha) { - CheckThreatLevel(ThreatLevel.VeryLow, "osSetDynamicTextureURLBlend"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -704,8 +695,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureURLBlendFace(string dynamicID, string contentType, string url, string extraParams, bool blend, int disp, int timer, int alpha, int face) { - CheckThreatLevel(ThreatLevel.VeryLow, "osSetDynamicTextureURLBlendFace"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -731,8 +720,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureDataFace(string dynamicID, string contentType, string data, string extraParams, int timer, int face) { - CheckThreatLevel(ThreatLevel.VeryLow, "osSetDynamicTextureData"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -760,8 +747,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureDataBlend(string dynamicID, string contentType, string data, string extraParams, int timer, int alpha) { - CheckThreatLevel(ThreatLevel.VeryLow, "osSetDynamicTextureDataBlend"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -788,8 +773,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, bool blend, int disp, int timer, int alpha, int face) { - CheckThreatLevel(ThreatLevel.VeryLow , "osSetDynamicTextureDataBlendFace"); - if (dynamicID == String.Empty) { IDynamicTextureManager textureManager = World.RequestModuleInterface(); @@ -989,22 +972,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osTeleportOwner(string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat) { // Threat level None because this is what can already be done with the World Map in the viewer - CheckThreatLevel(ThreatLevel.None, "osTeleportOwner"); - TeleportAgent(m_host.OwnerID.ToString(), regionName, position, lookat); } public void osTeleportOwner(int regionGridX, int regionGridY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat) { - CheckThreatLevel(ThreatLevel.None, "osTeleportOwner"); - TeleportAgent(m_host.OwnerID.ToString(), regionGridX, regionGridY, position, lookat); } public void osTeleportOwner(LSL_Types.Vector3 position, LSL_Types.Vector3 lookat) { - CheckThreatLevel(ThreatLevel.None, "osTeleportOwner"); - osTeleportAgent(m_host.OwnerID.ToString(), position, lookat); } @@ -1062,8 +1039,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { // threat level is None as we could get this information with an // in-world script as well, just not as efficient - CheckThreatLevel(ThreatLevel.None, "osGetAgents"); - LSL_List result = new LSL_List(); World.ForEachRootScenePresence(delegate(ScenePresence sp) { @@ -1173,104 +1148,78 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osDrawResetTransform(string drawList) { - CheckThreatLevel(); - drawList += "ResetTransf;"; return drawList; } public string osDrawRotationTransform(string drawList, LSL_Float x) { - CheckThreatLevel(); - drawList += "RotTransf " + x + ";"; return drawList; } public string osDrawScaleTransform(string drawList, LSL_Float x, LSL_Float y) { - CheckThreatLevel(); - drawList += "ScaleTransf " + x + "," + y + ";"; return drawList; } public string osDrawTranslationTransform(string drawList, LSL_Float x, LSL_Float y) { - CheckThreatLevel(); - drawList += "TransTransf " + x + "," + y + ";"; return drawList; } public string osMovePen(string drawList, int x, int y) { - CheckThreatLevel(); - drawList += "MoveTo " + x + "," + y + ";"; return drawList; } public string osDrawLine(string drawList, int startX, int startY, int endX, int endY) { - CheckThreatLevel(); - drawList += "MoveTo "+ startX+","+ startY +"; LineTo "+endX +","+endY +"; "; return drawList; } public string osDrawLine(string drawList, int endX, int endY) { - CheckThreatLevel(); - drawList += "LineTo " + endX + "," + endY + "; "; return drawList; } public string osDrawText(string drawList, string text) { - CheckThreatLevel(ThreatLevel.None, "osDrawText"); - drawList += "Text " + text + "; "; return drawList; } public string osDrawEllipse(string drawList, int width, int height) { - CheckThreatLevel(); - drawList += "Ellipse " + width + "," + height + "; "; return drawList; } public string osDrawFilledEllipse(string drawList, int width, int height) { - CheckThreatLevel(); - drawList += "FillEllipse " + width + "," + height + "; "; return drawList; } public string osDrawRectangle(string drawList, int width, int height) { - CheckThreatLevel(); - drawList += "Rectangle " + width + "," + height + "; "; return drawList; } public string osDrawFilledRectangle(string drawList, int width, int height) { - CheckThreatLevel(); - drawList += "FillRectangle " + width + "," + height + "; "; return drawList; } public string osDrawFilledPolygon(string drawList, LSL_List x, LSL_List y) { - CheckThreatLevel(); - if (x.Length != y.Length || x.Length < 3) { return ""; @@ -1286,8 +1235,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osDrawPolygon(string drawList, LSL_List x, LSL_List y) { - CheckThreatLevel(); - if (x.Length != y.Length || x.Length < 3) { return ""; @@ -1303,32 +1250,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetFontSize(string drawList, int fontSize) { - CheckThreatLevel(); - drawList += "FontSize "+ fontSize +"; "; return drawList; } public string osSetFontName(string drawList, string fontName) { - CheckThreatLevel(); - drawList += "FontName "+ fontName +"; "; return drawList; } public string osSetPenSize(string drawList, int penSize) { - CheckThreatLevel(); - drawList += "PenSize " + penSize + "; "; return drawList; } public string osSetPenColor(string drawList, string color) { - CheckThreatLevel(); - drawList += "PenColor " + color + "; "; return drawList; } @@ -1336,7 +1275,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // Deprecated public string osSetPenColour(string drawList, string colour) { - CheckThreatLevel(); OSSLDeprecated("osSetPenColour", "osSetPenColor"); drawList += "PenColour " + colour + "; "; @@ -1345,24 +1283,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osSetPenCap(string drawList, string direction, string type) { - CheckThreatLevel(); - drawList += "PenCap " + direction + "," + type + "; "; return drawList; } public string osDrawImage(string drawList, int width, int height, string imageUrl) { - CheckThreatLevel(); - drawList +="Image " +width + "," + height+ ","+ imageUrl +"; " ; return drawList; } public LSL_Vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize) { - CheckThreatLevel(); - LSL_Vector vec = new LSL_Vector(0,0,0); IDynamicTextureManager textureManager = World.RequestModuleInterface(); if (textureManager != null) @@ -1403,7 +1335,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// The "Sun Hour" that is desired, 0...24, with 0 just after SunRise public void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour) { - CheckThreatLevel(ThreatLevel.High, "osSetRegionSunSettings"); + CheckThreatLevel(ThreatLevel.Nuisance, "osSetRegionSunSettings"); while (sunHour > 24.0) sunHour -= 24.0; @@ -1426,7 +1358,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// The "Sun Hour" that is desired, 0...24, with 0 just after SunRise public void osSetEstateSunSettings(bool sunFixed, double sunHour) { - CheckThreatLevel(ThreatLevel.High, "osSetEstateSunSettings"); + CheckThreatLevel(ThreatLevel.Nuisance, "osSetEstateSunSettings"); while (sunHour > 24.0) sunHour -= 24.0; @@ -1448,8 +1380,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public double osGetCurrentSunHour() { - CheckThreatLevel(); - // Must adjust for the fact that Region Sun Settings are still LL offset double sunHour = World.RegionInfo.RegionSettings.SunPosition - 6; @@ -1465,14 +1395,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public double osSunGetParam(string param) { - CheckThreatLevel(ThreatLevel.None, "osSunGetParam"); OSSLDeprecated("osSunGetParam", "osGetSunParam"); return GetSunParam(param); } public double osGetSunParam(string param) { - CheckThreatLevel(); return GetSunParam(param); } @@ -1491,14 +1419,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osSunSetParam(string param, double value) { - CheckThreatLevel(ThreatLevel.None, "osSunSetParam"); + CheckThreatLevel(ThreatLevel.Nuisance, "osSunSetParam"); OSSLDeprecated("osSunSetParam", "osSetSunParam"); SetSunParam(param, value); } public void osSetSunParam(string param, double value) { - CheckThreatLevel(ThreatLevel.None, "osSetSunParam"); + CheckThreatLevel(ThreatLevel.Nuisance, "osSetSunParam"); SetSunParam(param, value); } @@ -1513,8 +1441,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osWindActiveModelPluginName() { - CheckThreatLevel(ThreatLevel.None, "osWindActiveModelPluginName"); - IWindModule module = World.RequestModuleInterface(); if (module != null) { @@ -1526,7 +1452,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osSetWindParam(string plugin, string param, LSL_Float value) { - CheckThreatLevel(ThreatLevel.VeryLow, "osSetWindParam"); + CheckThreatLevel(ThreatLevel.Nuisance, "osSetWindParam"); IWindModule module = World.RequestModuleInterface(); if (module != null) @@ -1541,8 +1467,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Float osGetWindParam(string plugin, string param) { - CheckThreatLevel(ThreatLevel.VeryLow, "osGetWindParam"); - IWindModule module = World.RequestModuleInterface(); if (module != null) { @@ -1782,8 +1706,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // is not allowed to contain any. // This really should be removed. // - CheckThreatLevel(); - if (index < 0) { index = src.Length + index; @@ -1839,7 +1761,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // that trigger engine-specific failures. // Besides, public grid users aren't supposed to know. // - CheckThreatLevel(ThreatLevel.High, "osGetScriptEngineName"); + // And yet, they get to choose the engine in their scripts. Pfffft +// CheckThreatLevel(ThreatLevel.High, "osGetScriptEngineName"); int scriptEngineNameIndex = 0; @@ -1865,8 +1788,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Integer osCheckODE() { - CheckThreatLevel(); - LSL_Integer ret = 0; // false if (m_ScriptEngine.World.PhysicsScene != null) { @@ -1892,7 +1813,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api m_host.AddScriptLPS(1); string ret = String.Empty; - if (String.IsNullOrEmpty(CheckThreatLevelTest(ThreatLevel.High, "osGetPhysicsEngineType"))) +// if (String.IsNullOrEmpty(CheckThreatLevelTest(ThreatLevel.High, "osGetPhysicsEngineType"))) { if (m_ScriptEngine.World.PhysicsScene != null) { @@ -1928,7 +1849,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // require their user to know what they are doing (see script // kiddie) // - CheckThreatLevel(ThreatLevel.High,"osGetSimulatorVersion"); + // Or they could check in the About window. Pfffft +// CheckThreatLevel(ThreatLevel.High,"osGetSimulatorVersion"); return m_ScriptEngine.World.GetSimulatorVersion(); } @@ -1972,8 +1894,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public Object osParseJSONNew(string JSON) { - CheckThreatLevel(ThreatLevel.None, "osParseJSONNew"); - try { OSD decoded = OSDParser.DeserializeJson(JSON); @@ -1988,8 +1908,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public Hashtable osParseJSON(string JSON) { - CheckThreatLevel(ThreatLevel.None, "osParseJSON"); - Object decoded = osParseJSONNew(JSON); if ( decoded is Hashtable ) { @@ -2019,8 +1937,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public void osMessageObject(LSL_Key objectUUID, string message) { - CheckThreatLevel(ThreatLevel.Low, "osMessageObject"); - UUID objUUID; if (!UUID.TryParse(objectUUID, out objUUID)) // prior to patching, a thrown exception regarding invalid GUID format would be shouted instead. { @@ -2059,7 +1975,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api // CheckThreatLevel(ThreatLevel.VeryHigh, "osDie"); // if this is restricted to objects rezzed by this host level can be reduced - CheckThreatLevel(ThreatLevel.Low, "osDie"); +// CheckThreatLevel(ThreatLevel.Low, "osDie"); UUID objUUID; if (!UUID.TryParse(objectUUID, out objUUID)) @@ -2108,7 +2024,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// The contents of the notecard. public void osMakeNotecard(string notecardName, LSL_Types.list contents) { - CheckThreatLevel(ThreatLevel.High, "osMakeNotecard"); +// CheckThreatLevel(ThreatLevel.High, "osMakeNotecard"); StringBuilder notecardData = new StringBuilder(); @@ -2293,7 +2209,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// Notecard line public string osGetNotecardLine(string name, int line) { - CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNotecardLine"); +// CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNotecardLine"); UUID assetID = CacheNotecard(name); @@ -2320,7 +2236,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// Notecard text public string osGetNotecard(string name) { - CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNotecard"); +// CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNotecard"); string text = LoadNotecard(name); @@ -2349,7 +2265,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public int osGetNumberOfNotecardLines(string name) { - CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNumberOfNotecardLines"); +// CheckThreatLevel(ThreatLevel.VeryHigh, "osGetNumberOfNotecardLines"); UUID assetID = CacheNotecard(name); @@ -2415,8 +2331,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osKey2Name(string id) { - CheckThreatLevel(ThreatLevel.Low, "osKey2Name"); - UUID key = new UUID(); if (UUID.TryParse(id, out key)) @@ -2524,7 +2438,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public string osGetGridNick() { - CheckThreatLevel(ThreatLevel.Moderate, "osGetGridNick"); +// CheckThreatLevel(ThreatLevel.Moderate, "osGetGridNick"); string nick = String.Empty; IConfigSource config = m_ScriptEngine.ConfigSource; @@ -2540,7 +2454,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osGetGridName() { - CheckThreatLevel(ThreatLevel.Moderate, "osGetGridName"); +// CheckThreatLevel(ThreatLevel.Moderate, "osGetGridName"); string name = String.Empty; IConfigSource config = m_ScriptEngine.ConfigSource; @@ -2556,7 +2470,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osGetGridLoginURI() { - CheckThreatLevel(ThreatLevel.Moderate, "osGetGridLoginURI"); +// CheckThreatLevel(ThreatLevel.Moderate, "osGetGridLoginURI"); string loginURI = String.Empty; IConfigSource config = m_ScriptEngine.ConfigSource; @@ -2572,7 +2486,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osGetGridHomeURI() { - CheckThreatLevel(ThreatLevel.Moderate, "osGetGridHomeURI"); +// CheckThreatLevel(ThreatLevel.Moderate, "osGetGridHomeURI"); IConfigSource config = m_ScriptEngine.ConfigSource; string HomeURI = Util.GetConfigVarFromSections(config, "HomeURI", @@ -2611,7 +2525,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osGetGridCustom(string key) { - CheckThreatLevel(ThreatLevel.Moderate, "osGetGridCustom"); +// CheckThreatLevel(ThreatLevel.Moderate, "osGetGridCustom"); string retval = String.Empty; IConfigSource config = m_ScriptEngine.ConfigSource; @@ -2627,7 +2541,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osGetAvatarHomeURI(string uuid) { - CheckThreatLevel(ThreatLevel.Low, "osGetAvatarHomeURI"); +// CheckThreatLevel(ThreatLevel.Low, "osGetAvatarHomeURI"); IUserManagement userManager = m_ScriptEngine.World.RequestModuleInterface(); string returnValue = ""; @@ -2659,15 +2573,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_String osFormatString(string str, LSL_List strings) { - CheckThreatLevel(ThreatLevel.VeryLow, "osFormatString"); - return String.Format(str, strings.Data); } public LSL_List osMatchString(string src, string pattern, int start) { - CheckThreatLevel(ThreatLevel.VeryLow, "osMatchString"); - LSL_List result = new LSL_List(); // Normalize indices (if negative). @@ -2707,8 +2617,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_String osReplaceString(string src, string pattern, string replace, int count, int start) { - CheckThreatLevel(ThreatLevel.VeryLow, "osReplaceString"); - // Normalize indices (if negative). // After normlaization they may still be // negative, but that is now relative to @@ -2731,22 +2639,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public string osLoadedCreationDate() { - CheckThreatLevel(ThreatLevel.Low, "osLoadedCreationDate"); - return World.RegionInfo.RegionSettings.LoadedCreationDate; } public string osLoadedCreationTime() { - CheckThreatLevel(ThreatLevel.Low, "osLoadedCreationTime"); - return World.RegionInfo.RegionSettings.LoadedCreationTime; } public string osLoadedCreationID() { - CheckThreatLevel(ThreatLevel.Low, "osLoadedCreationID"); - return World.RegionInfo.RegionSettings.LoadedCreationID; } @@ -2765,7 +2667,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules) { - CheckThreatLevel(ThreatLevel.High, "osGetLinkPrimitiveParams"); + CheckThreatLevel(ThreatLevel.VeryLow, "osGetLinkPrimitiveParams"); InitLSL(); // One needs to cast m_LSL_Api because we're using functions not @@ -2817,8 +2719,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Integer osIsNpc(LSL_Key npc) { - CheckThreatLevel(); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -2989,8 +2889,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// The asset ID of the notecard saved. public LSL_Key osNpcSaveAppearance(LSL_Key npc, string notecard) { - CheckThreatLevel(ThreatLevel.High, "osNpcSaveAppearance"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) @@ -3010,8 +2908,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcLoadAppearance(LSL_Key npc, string notecard) { - CheckThreatLevel(ThreatLevel.High, "osNpcLoadAppearance"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) @@ -3041,8 +2937,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Key osNpcGetOwner(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.None, "osNpcGetOwner"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) { @@ -3062,8 +2956,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Vector osNpcGetPos(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.High, "osNpcGetPos"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) { @@ -3085,8 +2977,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcMoveTo(LSL_Key npc, LSL_Vector pos) { - CheckThreatLevel(ThreatLevel.High, "osNpcMoveTo"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3103,8 +2993,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcMoveToTarget(LSL_Key npc, LSL_Vector target, int options) { - CheckThreatLevel(ThreatLevel.High, "osNpcMoveToTarget"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3127,8 +3015,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Rotation osNpcGetRot(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.High, "osNpcGetRot"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) { @@ -3150,8 +3036,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcSetRot(LSL_Key npc, LSL_Rotation rotation) { - CheckThreatLevel(ThreatLevel.High, "osNpcSetRot"); - INPCModule npcModule = World.RequestModuleInterface(); if (npcModule != null) { @@ -3171,8 +3055,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcStopMoveToTarget(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.High, "osNpcStopMoveToTarget"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3187,8 +3069,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcSetProfileAbout(LSL_Key npc, string about) { - CheckThreatLevel(ThreatLevel.Low, "osNpcSetProfileAbout"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3205,8 +3085,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcSetProfileImage(LSL_Key npc, string image) { - CheckThreatLevel(ThreatLevel.Low, "osNpcSetProfileImage"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3238,8 +3116,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcSay(LSL_Key npc, int channel, string message) { - CheckThreatLevel(ThreatLevel.High, "osNpcSay"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3254,8 +3130,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcShout(LSL_Key npc, int channel, string message) { - CheckThreatLevel(ThreatLevel.High, "osNpcShout"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3270,8 +3144,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcSit(LSL_Key npc, LSL_Key target, int options) { - CheckThreatLevel(ThreatLevel.High, "osNpcSit"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3286,8 +3158,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcStand(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.High, "osNpcStand"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3302,8 +3172,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcRemove(LSL_Key npc) { - CheckThreatLevel(ThreatLevel.High, "osNpcRemove"); - try { INPCModule module = World.RequestModuleInterface(); @@ -3322,8 +3190,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcPlayAnimation(LSL_Key npc, string animation) { - CheckThreatLevel(ThreatLevel.High, "osNpcPlayAnimation"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3336,8 +3202,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcStopAnimation(LSL_Key npc, string animation) { - CheckThreatLevel(ThreatLevel.High, "osNpcStopAnimation"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3350,8 +3214,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcWhisper(LSL_Key npc, int channel, string message) { - CheckThreatLevel(ThreatLevel.High, "osNpcWhisper"); - INPCModule module = World.RequestModuleInterface(); if (module != null) { @@ -3366,8 +3228,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osNpcTouch(LSL_Key npcLSL_Key, LSL_Key object_key, LSL_Integer link_num) { - CheckThreatLevel(ThreatLevel.High, "osNpcTouch"); - INPCModule module = World.RequestModuleInterface(); int linkNum = link_num.value; if (module != null || (linkNum < 0 && linkNum != ScriptBaseClass.LINK_THIS)) @@ -3410,8 +3270,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// The asset ID of the notecard saved. public LSL_Key osOwnerSaveAppearance(string notecard) { - CheckThreatLevel(ThreatLevel.High, "osOwnerSaveAppearance"); - return SaveAppearanceToNotecard(m_host.OwnerID, notecard); } @@ -3469,8 +3327,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// "male" or "female" or "unknown" public LSL_String osGetGender(LSL_Key rawAvatarId) { - CheckThreatLevel(ThreatLevel.None, "osGetGender"); - UUID avatarId; if (!UUID.TryParse(rawAvatarId, out avatarId)) return new LSL_String("unknown"); @@ -3512,8 +3368,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_Key osGetMapTexture() { - CheckThreatLevel(); - return m_ScriptEngine.World.RegionInfo.RegionSettings.TerrainImageID.ToString(); } @@ -3524,8 +3378,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_Key osGetRegionMapTexture(string regionName) { - CheckThreatLevel(ThreatLevel.High, "osGetRegionMapTexture"); - Scene scene = m_ScriptEngine.World; UUID key = UUID.Zero; GridRegion region; @@ -3568,8 +3420,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Vector osGetRegionSize() { - CheckThreatLevel(); - Scene scene = m_ScriptEngine.World; RegionInfo reg = World.RegionInfo; // GridRegion region = scene.GridService.GetRegionByUUID(UUID.Zero, World.RegionInfo.RegionID); @@ -3637,8 +3487,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Float osGetHealth(string avatar) { - CheckThreatLevel(ThreatLevel.None, "osGetHealth"); - LSL_Float health = new LSL_Float(-1); ScenePresence presence = World.GetScenePresence(new UUID(avatar)); if (presence != null) @@ -3723,8 +3571,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Float osGetHealRate(string avatar) { - CheckThreatLevel(ThreatLevel.None, "osGetHealRate"); - LSL_Float rate = new LSL_Float(0); ScenePresence presence = World.GetScenePresence(new UUID(avatar)); if (presence != null) @@ -3742,7 +3588,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osSetPrimitiveParams(LSL_Key prim, LSL_List rules) { - CheckThreatLevel(ThreatLevel.High, "osSetPrimitiveParams"); + CheckThreatLevel(ThreatLevel.VeryLow, "osSetPrimitiveParams"); InitLSL(); m_LSL_Api.SetPrimitiveParamsEx(prim, rules, "osSetPrimitiveParams"); @@ -3791,8 +3637,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// Strided list of the UUID, position and name of each avatar in the region public LSL_List osGetAvatarList() { - CheckThreatLevel(ThreatLevel.None, "osGetAvatarList"); - LSL_List result = new LSL_List(); World.ForEachRootScenePresence(delegate (ScenePresence avatar) { @@ -3809,8 +3653,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_List osGetNPCList() { - CheckThreatLevel(ThreatLevel.None, "osGetNPCList"); - LSL_List result = new LSL_List(); World.ForEachRootScenePresence(delegate (ScenePresence avatar) { @@ -3833,8 +3675,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_String osUnixTimeToTimestamp(long time) { - CheckThreatLevel(ThreatLevel.VeryLow, "osUnixTimeToTimestamp"); - long baseTicks = 621355968000000000; long tickResolution = 10000000; long epochTicks = (time * tickResolution) + baseTicks; @@ -3850,8 +3690,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// Item description public LSL_String osGetInventoryDesc(string item) { - CheckThreatLevel(); - lock (m_host.TaskInventory) { foreach (KeyValuePair inv in m_host.TaskInventory) @@ -4064,7 +3902,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osForceDetachFromAvatar() { - CheckThreatLevel(ThreatLevel.High, "osForceDetachFromAvatar"); + CheckThreatLevel(ThreatLevel.VeryHigh, "osForceDetachFromAvatar"); InitLSL(); ((LSL_Api)m_LSL_Api).DetachFromAvatar(); @@ -4215,8 +4053,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// 1 if thing is a valid UUID, 0 otherwise public LSL_Integer osIsUUID(string thing) { - CheckThreatLevel(); - UUID test; return UUID.TryParse(thing, out test) ? 1 : 0; } @@ -4229,8 +4065,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_Float osMin(double a, double b) { - CheckThreatLevel(); - return Math.Min(a, b); } @@ -4242,15 +4076,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_Float osMax(double a, double b) { - CheckThreatLevel(); - return Math.Max(a, b); } public LSL_Key osGetRezzingObject() { - CheckThreatLevel(ThreatLevel.None, "osGetRezzingObject"); - UUID rezID = m_host.ParentGroup.RezzerID; if(rezID == UUID.Zero || m_host.ParentGroup.Scene.GetScenePresence(rezID) != null) return new LSL_Key(UUID.Zero.ToString()); @@ -4352,8 +4182,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Integer osListenRegex(int channelID, string name, string ID, string msg, int regexBitfield) { - CheckThreatLevel(ThreatLevel.Low, "osListenRegex"); - UUID keyID; UUID.TryParse(ID, out keyID); @@ -4400,8 +4228,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Integer osRegexIsMatch(string input, string pattern) { - CheckThreatLevel(ThreatLevel.Low, "osRegexIsMatch"); - try { return Regex.IsMatch(input, pattern) ? 1 : 0; @@ -4449,8 +4275,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osCollisionSound(string impact_sound, double impact_volume) { - CheckThreatLevel(); - if(impact_sound == "") { m_host.CollisionSoundVolume = (float)impact_volume; @@ -4503,8 +4327,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public LSL_List osGetInertiaData() { - CheckThreatLevel(); - LSL_List result = new LSL_List(); float TotalMass; Vector3 CenterOfMass; @@ -4550,8 +4372,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void osSetInertia(LSL_Float mass, LSL_Vector centerOfMass, LSL_Vector principalInertiaScaled, LSL_Rotation lslrot) { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return; @@ -4588,8 +4408,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public void osSetInertiaAsBox(LSL_Float mass, LSL_Vector boxSize, LSL_Vector centerOfMass, LSL_Rotation lslrot) { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return; @@ -4629,8 +4447,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public void osSetInertiaAsSphere(LSL_Float mass, LSL_Float radius, LSL_Vector centerOfMass) { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return; @@ -4668,8 +4484,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public void osSetInertiaAsCylinder(LSL_Float mass, LSL_Float radius, LSL_Float lenght, LSL_Vector centerOfMass, LSL_Rotation lslrot) { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return; @@ -4706,8 +4520,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api /// public void osClearInertia() { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return; @@ -4792,8 +4604,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Integer osGetLinkNumber(LSL_String name) { - CheckThreatLevel(); - SceneObjectGroup sog = m_host.ParentGroup; if(sog== null || sog.IsDeleted) return -1; diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini index ed90649..b984079 100644 --- a/bin/config-include/osslEnable.ini +++ b/bin/config-include/osslEnable.ini @@ -29,7 +29,7 @@ ; than 'Low' unless you have a high level of trust in all the users that can run scripts ; in your simulator. It is safer to explicitly allow certain types of user to run ; higher threat level OSSL functions, as detailed later on. - OSFunctionThreatLevel = VeryLow + OSFunctionThreatLevel = Moderate ; Some of the OSSL functions can be enabled or disabled individually. ; To disable, set the value to 'false'. @@ -55,10 +55,8 @@ ; appropriate line below to allow parcel ownership and groups to do restricted ; OSSL functions. It might be better to check the list below and edit the ones ; to enable individually. - osslParcelO = "" - osslParcelOG = "" - ; osslParcelO = "PARCEL_OWNER," - ; osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," + osslParcelO = "PARCEL_OWNER," + osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," ; NPC macros ; These can be mis-used so limit use to those you can trust. @@ -71,119 +69,174 @@ ; ************************************************* - ; ThreatLevel None - Allow_osGetAgents = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetAvatarList = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER +; ThreatLevel None +; Commented functions are out of Threat level control (for reference only) +; Allow_osCheckODE = true +; Allow_osClearInertia = true +; Allow_osCollisionSound = true + Allow_osDie = true +; Allow_osDrawEllipse = true +; Allow_osDrawFilledEllipse = true +; Allow_osDrawFilledPolygon = true +; Allow_osDrawFilledRectangle = true +; Allow_osDrawImage = true +; Allow_osDrawLine = true +; Allow_osDrawPolygon = true +; Allow_osDrawRectangle = true +; Allow_osDrawResetTransform = true +; Allow_osDrawRotationTransform = true +; Allow_osDrawScaleTransform = true +; Allow_osDrawText = true +; Allow_osDrawTranslationTransform = true + Allow_osFormatString = true +; Allow_osGetCurrentSunHour = true + Allow_osGetAgents = true + Allow_osGetAvatarList = true +; Allow_osGetDrawStringSize = true Allow_osGetGender = true + Allow_osGetGridCustom = true + Allow_osGetGridHomeURI = true + Allow_osGetGridLoginURI = true + Allow_osGetGridName = true + Allow_osGetGridNick = true Allow_osGetHealth = true Allow_osGetHealRate = true - Allow_osGetNPCList = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER +; Allow_osGetInertiaData = true +; Allow_osGetInventoryDesc = true +; Allow_osGetLinkNumber = true +; Allow_osGetMapTexture = true + ; The notecard functions can cause a lot of load on the region if over used. + ; So can any LSL loop. Pffft + Allow_osGetNotecard = true + Allow_osGetNotecardLine = true + Allow_osGetNumberOfNotecardLines = true + Allow_osMakeNotecard = true + Allow_osGetNPCList = true +; Allow_osGetPhysicsEngineName = true + Allow_osGetPhysicsEngineType = true + + Allow_osGetRegionMapTexture = true +; Allow_osGetRegionSize = true Allow_osGetRezzingObject = true - Allow_osNpcGetOwner = ${XEngine|osslNPC} + Allow_osGetScriptEngineName = true + Allow_osGetSimulatorVersion = true +; Allow_osGetSunParam = true +; Allow_osGetTerrainHeight = true + Allow_osGetWindParam = true +; Allow_osIsNpc = true +; Allow_osIsUUID = true + Allow_osKey2Name = true +; Allow_osList2Double = true + Allow_osListenRegex = true + Allow_osLoadedCreationDate = true + Allow_osLoadedCreationID = true + Allow_osLoadedCreationTime = true + Allow_osMatchString = true +; Allow_osMax = true +; Allow_osMin = true + Allow_osMessageObject = true +; Allow_osMovePen = true + Allow_osNpcGetOwner = true + Allow_osNpcGetPos = true + Allow_osNpcGetRot = nlue + Allow_osNpcLoadAppearance = true + Allow_osNpcMoveTo = true + Allow_osNpcMoveToTarget = true + Allow_osNpcPlayAnimation = true + Allow_osNpcRemove = true + Allow_osNpcSaveAppearance = true + Allow_osNpcSay = true + Allow_osNpcSetProfileAbout = true + Allow_osNpcSetProfileImage = true + Allow_osNpcSetRot = true + Allow_osNpcShout = true + Allow_osNpcSit = true + Allow_osNpcStand = true + Allow_osNpcStopAnimation = true + Allow_osNpcStopMoveToTarget = true + Allow_osNpcTouch = true + Allow_osNpcWhisper = true + Allow_osOwnerSaveAppearance = true Allow_osParseJSON = true Allow_osParseJSONNew = true - Allow_osSetSunParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osTeleportOwner = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegexIsMatch = true + Allow_osReplaceString = true + Allow_osSetDynamicTextureData = true + Allow_osSetDynamicTextureDataFace = true + Allow_osSetDynamicTextureDataBlend = true + Allow_osSetDynamicTextureDataBlendFace = true + Allow_osSetDynamicTextureURL = true + Allow_osSetDynamicTextureURLBlend = true + Allow_osSetDynamicTextureURLBlendFace = true +; Allow_osSetFontName = true +; Allow_osSetFontSize = true +; Allow_osSetInertia = true +; Allow_osSetInertiaAsBox = true +; Allow_osSetInertiaAsSphere = true +; Allow_osSetInertiaAsCylinder = true +; Allow_osSetPenCap = true +; Allow_osSetPenColor = true +; Allow_osSetPenSize = true + Allow_osSetPrimitiveParams = true +; Allow_osVolumeDetect = true + Allow_osTeleportOwner = true Allow_osWindActiveModelPluginName = true + Allow_osUnixTimeToTimestamp = true + + ; ThreatLevel Nuisance Allow_osSetEstateSunSettings = ESTATE_MANAGER,ESTATE_OWNER Allow_osSetRegionSunSettings = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetSunParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetWindParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER ; ThreatLevel VeryLow Allow_osEjectFromGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceBreakAllLinks = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceBreakLink = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetWindParam = true + Allow_osForceCreateLink = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetLinkPrimitiveParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetPrimitiveParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osInviteToGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osReplaceString = true - Allow_osSetDynamicTextureData = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataFace = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataBlend = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataBlendFace = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURL = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURLBlend = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURLBlendFace = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetParcelMediaURL = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetParcelSIPAddress = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetPrimFloatOnWater = true - Allow_osSetWindParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osTerrainFlush = ESTATE_MANAGER,ESTATE_OWNER - Allow_osUnixTimeToTimestamp = true ; ThreatLevel Low Allow_osAvatarName2Key = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osFormatString = true - Allow_osKey2Name = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osListenRegex = true - Allow_osLoadedCreationDate = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osLoadedCreationID = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osLoadedCreationTime = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMessageObject = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osRegexIsMatch = true Allow_osGetAvatarHomeURI = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osNpcSetProfileAbout = ${XEngine|osslNPC} - Allow_osNpcSetProfileImage = ${XEngine|osslNPC} - Allow_osDie = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER ; ThreatLevel Moderate Allow_osDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridCustom = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osGetGridGatekeeperURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridHomeURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridLoginURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridName = true - Allow_osGetGridNick = true Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osGetRegionStats = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osGetSimulatorMemory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osGetSimulatorMemoryKB = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMessageAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetSpeed = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMessageAttachments = true + Allow_osRequestURL = true + Allow_osRequestSecureURL = true + Allow_osSetSpeed = true ; ThreatLevel High - Allow_osCauseDamage = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osCauseDamage = ESTATE_MANAGER,ESTATE_OWNER Allow_osCauseHealing = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetHealth = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetHealRate = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceAttachToAvatar = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceAttachToAvatarFromInventory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceCreateLink = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osForceDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetLinkPrimitiveParams = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetPhysicsEngineType = true - Allow_osGetPrimitiveParams = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetRegionMapTexture = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetScriptEngineName = true - Allow_osGetSimulatorVersion = true - Allow_osMakeNotecard = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMatchString = true Allow_osNpcCreate = ${XEngine|osslNPC} - Allow_osNpcGetPos = ${XEngine|osslNPC} - Allow_osNpcGetRot = ${XEngine|osslNPC} - Allow_osNpcLoadAppearance = ${XEngine|osslNPC} - Allow_osNpcMoveTo = ${XEngine|osslNPC} - Allow_osNpcMoveToTarget = ${XEngine|osslNPC} - Allow_osNpcPlayAnimation = ${XEngine|osslNPC} - Allow_osNpcRemove = ${XEngine|osslNPC} - Allow_osNpcSaveAppearance = ${XEngine|osslNPC} - Allow_osNpcSay = ${XEngine|osslNPC} - Allow_osNpcSetRot = ${XEngine|osslNPC} - Allow_osNpcShout = ${XEngine|osslNPC} - Allow_osNpcSit = ${XEngine|osslNPC} - Allow_osNpcStand = ${XEngine|osslNPC} - Allow_osNpcStopAnimation = ${XEngine|osslNPC} - Allow_osNpcStopMoveToTarget = ${XEngine|osslNPC} - Allow_osNpcTouch = ${XEngine|osslNPC} - Allow_osNpcWhisper = ${XEngine|osslNPC} - Allow_osOwnerSaveAppearance = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osParcelJoin = ESTATE_MANAGER,ESTATE_OWNER + Allow_osParcelSetDetails = ESTATE_MANAGER,ESTATE_OWNER Allow_osParcelSubdivide = ESTATE_MANAGER,ESTATE_OWNER Allow_osRegionRestart = ESTATE_MANAGER,ESTATE_OWNER Allow_osSetContentType = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetPrimitiveParams = false + Allow_osSetParcelDetails = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetProjectionParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER Allow_osSetRegionWaterHeight = ESTATE_MANAGER,ESTATE_OWNER Allow_osSetStateEvents = false ; deprecated @@ -197,18 +250,13 @@ ; Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations. ; Similar things can be said for several of the 'force' functions. Enable with care and control. ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions. - Allow_osAvatarPlayAnimation = false - Allow_osAvatarStopAnimation = false + Allow_osAvatarPlayAnimation = true + Allow_osAvatarStopAnimation = true Allow_osForceAttachToOtherAvatarFromInventory = false Allow_osForceDetachFromAvatar = false Allow_osForceOtherSit = false - ; The notecard functions can cause a lot of load on the region if over used - Allow_osGetNotecard = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetNotecardLine = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetNumberOfNotecardLines = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER Allow_osRegionNotice = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetRot = false - Allow_osSetParcelDetails = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRot = ESTATE_OWNER, ESTATE_MANAGER ; ThreatLevel Severe Allow_osConsoleCommand = false @@ -221,46 +269,4 @@ ; ThreatLevel Severe with additional internal restrictions Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable) -; available functions out of Threat level control (for reference only) -; Allow_osCheckODE = true -; Allow_osClearInertia = true -; Allow_osCollisionSound = true -; Allow_osDrawEllipse = true -; Allow_osDrawFilledEllipse = true -; Allow_osDrawFilledPolygon = true -; Allow_osDrawFilledRectangle = true -; Allow_osDrawImage = true -; Allow_osDrawLine = true -; Allow_osDrawPolygon = true -; Allow_osDrawRectangle = true -; Allow_osDrawResetTransform = true -; Allow_osDrawRotationTransform = true -; Allow_osDrawScaleTransform = true -; Allow_osDrawText = true -; Allow_osDrawTranslationTransform = true -; Allow_osGetCurrentSunHour = true -; Allow_osGetInertiaData = true -; Allow_osGetInventoryDesc = true -; Allow_osGetLinkNumber = true -; Allow_osGetMapTexture = true -; Allow_osGetPhysicsEngineName = true -; Allow_osGetRegionSize = true -; Allow_osGetSunParam = true -; Allow_osGetTerrainHeight = true -; Allow_osGetDrawStringSize = true -; Allow_osIsNpc = true -; Allow_osIsUUID = true -; Allow_osList2Double = true -; Allow_osMax = true -; Allow_osMin = true -; Allow_osMovePen = true -; Allow_osSetFontName = true -; Allow_osSetFontSize = true -; Allow_osSetInertia = true -; Allow_osSetInertiaAsBox = true -; Allow_osSetInertiaAsSphere = true -; Allow_osSetInertiaAsCylinder = true -; Allow_osSetPenCap = true -; Allow_osSetPenColor = true -; Allow_osSetPenSize = true -; Allow_osVolumeDetect = true + -- cgit v1.1