--- XEngine.cs 2013-01-31 20:53:32.000000000 +0000 +++ XEngine.cs 2013-02-01 04:14:31.000000000 +0000 @@ -1016,6 +1016,36 @@ ScenePresence presence = m_Scene.GetScenePresence(item.OwnerID); + // Found at: http://grimore.org/opensim:server_patches:xengine_scripts_whitelisting + string language = script.Substring(2, 4).Trim(); + string scriptPerm = ""; + switch(language) { + case "c#": + scriptPerm = m_ScriptConfig.GetString("AllowScripting_c#", ""); + break; + case "vb": + scriptPerm = m_ScriptConfig.GetString("AllowScripting_vb", ""); + break; + case "js": + scriptPerm = m_ScriptConfig.GetString("AllowScripting_js", ""); + break; + case "yp": + scriptPerm = m_ScriptConfig.GetString("AllowScripting_yp", ""); + break; + default: + break; + } + if(scriptPerm == "") goto ScriptOK; + string[] ids = scriptPerm.Split(new char[] {','}); + foreach(string id in ids) { + string current = id.Trim(); + UUID uuid; + if(!UUID.TryParse(current, out uuid)) continue; + if(item.OwnerID == uuid) goto ScriptOK; + } + return false; + ScriptOK: + string assembly = ""; CultureInfo USCulture = new CultureInfo("en-US");