Thank you kindly, SnowDrop, for a patch that:

This add a configuration option to the MRM module called "hidden".
if MRM is marked as enabled, the module will additionally check for 
the "Hidden" flag, before registering for client side scriping events.
When MRM is running hidden, it will not respond to client side 
scripting events, giving serverside scripting modules, like MRMLoader 
and MRMAddin the ability to leverage the MRM engine. This way, even 
a possible clientside exploit will not be possible, while still 
allowing the MRM engine to run.
trunk
Charles Krinke 2009-07-08 20:57:26 +00:00
parent 525ab2c278
commit 61008c9c13
1 changed files with 9 additions and 3 deletions

View File

@ -67,7 +67,14 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{ {
m_log.Info("[MRM] Enabling MRM Module"); m_log.Info("[MRM] Enabling MRM Module");
m_scene = scene; m_scene = scene;
// when hidden, we don't listen for client initiated script events
// only making the MRM engine available for region modules
if(!source.Configs["MRM"].GetBoolean("Hidden", false))
{
scene.EventManager.OnRezScript += EventManager_OnRezScript; scene.EventManager.OnRezScript += EventManager_OnRezScript;
}
scene.EventManager.OnFrame += EventManager_OnFrame; scene.EventManager.OnFrame += EventManager_OnFrame;
scene.RegisterModuleInterface<IMRMModule>(this); scene.RegisterModuleInterface<IMRMModule>(this);
@ -158,7 +165,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
m_microthreads); m_microthreads);
mmb.InitMiniModule(m_world, m_host, itemID); mmb.InitMiniModule(m_world, m_host, itemID);
} }
public void PostInitialise() public void PostInitialise()