Merge branch 'master' of /home/opensim/var/repo/opensim

Conflicts:
	OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
integration
BlueWall 2012-11-13 19:36:00 -05:00
commit 4e8e3874ae
176 changed files with 2767 additions and 3591 deletions

View File

@ -99,12 +99,12 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
RegionInfo[] regionsToLoad = regionLoader.LoadRegions(); RegionInfo[] regionsToLoad = regionLoader.LoadRegions();
m_log.Info("[LOAD REGIONS PLUGIN]: Loading specific shared modules..."); m_log.Info("[LOAD REGIONS PLUGIN]: Loading specific shared modules...");
m_log.Info("[LOAD REGIONS PLUGIN]: DynamicTextureModule..."); //m_log.Info("[LOAD REGIONS PLUGIN]: DynamicTextureModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new DynamicTextureModule()); //m_openSim.ModuleLoader.LoadDefaultSharedModule(new DynamicTextureModule());
m_log.Info("[LOAD REGIONS PLUGIN]: LoadImageURLModule..."); //m_log.Info("[LOAD REGIONS PLUGIN]: LoadImageURLModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new LoadImageURLModule()); //m_openSim.ModuleLoader.LoadDefaultSharedModule(new LoadImageURLModule());
m_log.Info("[LOAD REGIONS PLUGIN]: XMLRPCModule..."); //m_log.Info("[LOAD REGIONS PLUGIN]: XMLRPCModule...");
m_openSim.ModuleLoader.LoadDefaultSharedModule(new XMLRPCModule()); //m_openSim.ModuleLoader.LoadDefaultSharedModule(new XMLRPCModule());
// m_log.Info("[LOADREGIONSPLUGIN]: AssetTransactionModule..."); // m_log.Info("[LOADREGIONSPLUGIN]: AssetTransactionModule...");
// m_openSim.ModuleLoader.LoadDefaultSharedModule(new AssetTransactionModule()); // m_openSim.ModuleLoader.LoadDefaultSharedModule(new AssetTransactionModule());
m_log.Info("[LOAD REGIONS PLUGIN]: Done."); m_log.Info("[LOAD REGIONS PLUGIN]: Done.");

View File

@ -215,7 +215,7 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
} }
} }
#region IRegionModulesController implementation #region Region Module interfacesController implementation
/// <summary> /// <summary>
/// Check that the given module is no disabled in the [Modules] section of the config files. /// Check that the given module is no disabled in the [Modules] section of the config files.

View File

@ -757,33 +757,13 @@ namespace OpenSim
switch (cmdparams[0].ToLower()) switch (cmdparams[0].ToLower())
{ {
case "list": case "list":
foreach (IRegionModule irm in m_moduleLoader.GetLoadedSharedModules) //TODO: Convert to new region modules
{
MainConsole.Instance.Output(String.Format("Shared region module: {0}", irm.Name));
}
break; break;
case "unload": case "unload":
if (cmdparams.Length > 1) //TODO: Convert to new region modules
{
foreach (IRegionModule rm in new ArrayList(m_moduleLoader.GetLoadedSharedModules))
{
if (rm.Name.ToLower() == cmdparams[1].ToLower())
{
MainConsole.Instance.Output(String.Format("Unloading module: {0}", rm.Name));
m_moduleLoader.UnloadModule(rm);
}
}
}
break; break;
case "load": case "load":
if (cmdparams.Length > 1) //TODO: Convert to new region modules
{
foreach (Scene s in new ArrayList(SceneManager.Scenes))
{
MainConsole.Instance.Output(String.Format("Loading module: {0}", cmdparams[1]));
m_moduleLoader.LoadRegionModules(cmdparams[1], s);
}
}
break; break;
} }
} }
@ -1018,28 +998,9 @@ namespace OpenSim
break; break;
case "modules": case "modules":
MainConsole.Instance.Output("The currently loaded shared modules are:");
foreach (IRegionModule module in m_moduleLoader.GetLoadedSharedModules)
{
MainConsole.Instance.Output("Shared Module: " + module.Name);
}
SceneManager.ForEachScene( SceneManager.ForEachScene(
delegate(Scene scene) { delegate(Scene scene) {
m_log.Error("The currently loaded modules in " + scene.RegionInfo.RegionName + " are:"); MainConsole.Instance.Output("Loaded region modules in" + scene.RegionInfo.RegionName + " are:");
foreach (IRegionModule module in scene.Modules.Values)
{
if (!module.IsSharedModule)
{
m_log.Error("Region Module: " + module.Name);
}
}
}
);
SceneManager.ForEachScene(
delegate(Scene scene) {
MainConsole.Instance.Output("Loaded new region modules in" + scene.RegionInfo.RegionName + " are:");
foreach (IRegionModuleBase module in scene.RegionModules.Values) foreach (IRegionModuleBase module in scene.RegionModules.Values)
{ {
Type type = module.GetType().GetInterface("ISharedRegionModule"); Type type = module.GetType().GetInterface("ISharedRegionModule");

View File

@ -127,14 +127,6 @@ namespace OpenSim
get { return m_httpServerPort; } get { return m_httpServerPort; }
} }
public ModuleLoader ModuleLoader
{
get { return m_moduleLoader; }
set { m_moduleLoader = value; }
}
protected ModuleLoader m_moduleLoader;
protected IRegistryCore m_applicationRegistry = new RegistryCore(); protected IRegistryCore m_applicationRegistry = new RegistryCore();
public IRegistryCore ApplicationRegistry public IRegistryCore ApplicationRegistry
@ -223,9 +215,6 @@ namespace OpenSim
base.StartupSpecific(); base.StartupSpecific();
// Create a ModuleLoader instance
m_moduleLoader = new ModuleLoader(m_config.Source);
LoadPlugins(); LoadPlugins();
foreach (IApplicationPlugin plugin in m_plugins) foreach (IApplicationPlugin plugin in m_plugins)
{ {
@ -370,12 +359,6 @@ namespace OpenSim
m_log.Info("[MODULES]: Loading Region's modules (old style)"); m_log.Info("[MODULES]: Loading Region's modules (old style)");
List<IRegionModule> modules = m_moduleLoader.PickupModules(scene, ".");
// This needs to be ahead of the script engine load, so the
// script module can pick up events exposed by a module
m_moduleLoader.InitialiseSharedModules(scene);
// Use this in the future, the line above will be deprecated soon // Use this in the future, the line above will be deprecated soon
m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)"); m_log.Info("[REGIONMODULES]: Loading Region's modules (new style)");
IRegionModulesController controller; IRegionModulesController controller;
@ -426,13 +409,6 @@ namespace OpenSim
clientServer.Start(); clientServer.Start();
} }
if (do_post_init)
{
foreach (IRegionModule module in modules)
{
module.PostInitialise();
}
}
scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); }; scene.EventManager.OnShutdown += delegate() { ShutdownRegion(scene); };
mscene = scene; mscene = scene;
@ -722,7 +698,7 @@ namespace OpenSim
return new Scene( return new Scene(
regionInfo, circuitManager, sceneGridService, regionInfo, circuitManager, sceneGridService,
simDataService, estateDataService, m_moduleLoader, false, simDataService, estateDataService, false,
m_config.Source, m_version); m_config.Source, m_version);
} }

View File

@ -45,7 +45,7 @@ using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "BunchOfCapsModule")]
public class BunchOfCapsModule : INonSharedRegionModule public class BunchOfCapsModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =

View File

@ -55,8 +55,8 @@ namespace OpenSim.Region.ClientStack.Linden
public OSDMap body; public OSDMap body;
} }
//[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "EventQueueGetModule")]
public class EventQueueGetModule : IEventQueue, IRegionModule public class EventQueueGetModule : IEventQueue, INonSharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -66,8 +66,6 @@ namespace OpenSim.Region.ClientStack.Linden
public int DebugLevel { get; set; } public int DebugLevel { get; set; }
protected Scene m_scene; protected Scene m_scene;
private IConfigSource m_gConfig;
bool enabledYN;
private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>(); private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>();
@ -75,60 +73,46 @@ namespace OpenSim.Region.ClientStack.Linden
private Dictionary<UUID, UUID> m_QueueUUIDAvatarMapping = new Dictionary<UUID, UUID>(); private Dictionary<UUID, UUID> m_QueueUUIDAvatarMapping = new Dictionary<UUID, UUID>();
private Dictionary<UUID, UUID> m_AvatarQueueUUIDMapping = new Dictionary<UUID, UUID>(); private Dictionary<UUID, UUID> m_AvatarQueueUUIDMapping = new Dictionary<UUID, UUID>();
#region IRegionModule methods #region INonSharedRegionModule methods
public virtual void Initialise(Scene scene, IConfigSource config) public virtual void Initialise(IConfigSource config)
{ {
m_gConfig = config;
IConfig startupConfig = m_gConfig.Configs["Startup"];
ReadConfigAndPopulate(scene, startupConfig, "Startup");
if (enabledYN)
{
m_scene = scene;
scene.RegisterModuleInterface<IEventQueue>(this);
// Register fallback handler
// Why does EQG Fail on region crossings!
//scene.CommsManager.HttpServer.AddLLSDHandler("/CAPS/EQG/", EventQueueFallBack);
// scene.EventManager.OnNewClient += OnNewClient;
// TODO: Leaving these open, or closing them when we
// become a child is incorrect. It messes up TP in a big
// way. CAPS/EQ need to be active as long as the UDP
// circuit is there.
scene.EventManager.OnClientClosed += ClientClosed;
scene.EventManager.OnMakeChildAgent += MakeChildAgent;
scene.EventManager.OnRegisterCaps += OnRegisterCaps;
MainConsole.Instance.Commands.AddCommand(
"Debug",
false,
"debug eq",
"debug eq [0|1|2]",
"Turn on event queue debugging\n"
+ " <= 0 - turns off all event queue logging\n"
+ " >= 1 - turns on outgoing event logging\n"
+ " >= 2 - turns on poll notification",
HandleDebugEq);
}
else
{
m_gConfig = null;
}
} }
private void ReadConfigAndPopulate(Scene scene, IConfig startupConfig, string p) public void AddRegion(Scene scene)
{ {
enabledYN = startupConfig.GetBoolean("EventQueue", true); m_scene = scene;
scene.RegisterModuleInterface<IEventQueue>(this);
scene.EventManager.OnClientClosed += ClientClosed;
scene.EventManager.OnMakeChildAgent += MakeChildAgent;
scene.EventManager.OnRegisterCaps += OnRegisterCaps;
MainConsole.Instance.Commands.AddCommand(
"Debug",
false,
"debug eq",
"debug eq [0|1|2]",
"Turn on event queue debugging\n"
+ " <= 0 - turns off all event queue logging\n"
+ " >= 1 - turns on outgoing event logging\n"
+ " >= 2 - turns on poll notification",
HandleDebugEq);
} }
public void PostInitialise() public void RemoveRegion(Scene scene)
{
if (m_scene != scene)
return;
scene.EventManager.OnClientClosed -= ClientClosed;
scene.EventManager.OnMakeChildAgent -= MakeChildAgent;
scene.EventManager.OnRegisterCaps -= OnRegisterCaps;
scene.UnregisterModuleInterface<IEventQueue>(this);
m_scene = null;
}
public void RegionLoaded(Scene scene)
{ {
} }
@ -141,10 +125,11 @@ namespace OpenSim.Region.ClientStack.Linden
get { return "EventQueueGetModule"; } get { return "EventQueueGetModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return false; } get { return null; }
} }
#endregion #endregion
protected void HandleDebugEq(string module, string[] args) protected void HandleDebugEq(string module, string[] args)

View File

@ -45,7 +45,7 @@ namespace OpenSim.Region.ClientStack.Linden
/// <summary> /// <summary>
/// This module implements both WebFetchInventoryDescendents and FetchInventoryDescendents2 capabilities. /// This module implements both WebFetchInventoryDescendents and FetchInventoryDescendents2 capabilities.
/// </summary> /// </summary>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "FetchInventory2Module")]
public class FetchInventory2Module : INonSharedRegionModule public class FetchInventory2Module : INonSharedRegionModule
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -47,7 +47,7 @@ using Caps = OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GetMeshModule")]
public class GetMeshModule : INonSharedRegionModule public class GetMeshModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =
@ -58,7 +58,7 @@ namespace OpenSim.Region.ClientStack.Linden
private bool m_Enabled = true; private bool m_Enabled = true;
private string m_URL; private string m_URL;
#region IRegionModuleBase Members #region Region Module interfaceBase Members
public Type ReplaceableInterface public Type ReplaceableInterface
{ {

View File

@ -51,7 +51,7 @@ using OpenSim.Capabilities.Handlers;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GetTextureModule")]
public class GetTextureModule : INonSharedRegionModule public class GetTextureModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =

View File

@ -45,7 +45,7 @@ namespace OpenSim.Region.ClientStack.Linden
/// <summary> /// <summary>
/// MeshUploadFlag capability. This is required for uploading Mesh. /// MeshUploadFlag capability. This is required for uploading Mesh.
/// </summary> /// </summary>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MeshUploadFlagModule")]
public class MeshUploadFlagModule : INonSharedRegionModule public class MeshUploadFlagModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =

View File

@ -47,7 +47,7 @@ using OpenSim.Framework.Capabilities;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "NewFileAgentInventoryVariablePriceModule")]
public class NewFileAgentInventoryVariablePriceModule : INonSharedRegionModule public class NewFileAgentInventoryVariablePriceModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -58,7 +58,7 @@ namespace OpenSim.Region.ClientStack.Linden
private bool m_enabled = true; private bool m_enabled = true;
private int m_levelUpload = 0; private int m_levelUpload = 0;
#region IRegionModuleBase Members #region Region Module interfaceBase Members
public Type ReplaceableInterface public Type ReplaceableInterface
@ -98,7 +98,7 @@ namespace OpenSim.Region.ClientStack.Linden
#endregion #endregion
#region IRegionModule Members #region Region Module interface

View File

@ -32,6 +32,7 @@ using log4net;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenMetaverse.StructuredData; using OpenMetaverse.StructuredData;
using Mono.Addins;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
@ -41,30 +42,60 @@ using Caps=OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
public class ObjectAdd : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ObjectAdd")]
public class ObjectAdd : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene; private Scene m_scene;
#region IRegionModule Members
public void Initialise(Scene pScene, IConfigSource pSource) #region INonSharedRegionModule Members
public void Initialise(IConfigSource pSource)
{ {
m_scene = pScene; }
public void AddRegion(Scene scene)
{
m_scene = scene;
m_scene.EventManager.OnRegisterCaps += RegisterCaps; m_scene.EventManager.OnRegisterCaps += RegisterCaps;
} }
public void PostInitialise() public void RemoveRegion(Scene scene)
{ {
if (m_scene == scene)
{
m_scene.EventManager.OnRegisterCaps -= RegisterCaps;
m_scene = null;
}
} }
public void RegionLoaded(Scene scene)
{
}
public void Close()
{
}
public string Name
{
get { return "ObjectAddModule"; }
}
public Type ReplaceableInterface
{
get { return null; }
}
#endregion
public void RegisterCaps(UUID agentID, Caps caps) public void RegisterCaps(UUID agentID, Caps caps)
{ {
UUID capuuid = UUID.Random(); UUID capuuid = UUID.Random();
// m_log.InfoFormat("[OBJECTADD]: {0}", "/CAPS/OA/" + capuuid + "/"); // m_log.InfoFormat("[OBJECTADD]: {0}", "/CAPS/OA/" + capuuid + "/");
caps.RegisterHandler( caps.RegisterHandler(
"ObjectAdd", "ObjectAdd",
@ -73,7 +104,7 @@ namespace OpenSim.Region.ClientStack.Linden
"/CAPS/OA/" + capuuid + "/", "/CAPS/OA/" + capuuid + "/",
httpMethod => ProcessAdd(httpMethod, agentID, caps), httpMethod => ProcessAdd(httpMethod, agentID, caps),
"ObjectAdd", "ObjectAdd",
agentID.ToString()));; agentID.ToString())); ;
} }
public Hashtable ProcessAdd(Hashtable request, UUID AgentId, Caps cap) public Hashtable ProcessAdd(Hashtable request, UUID AgentId, Caps cap)
@ -138,7 +169,7 @@ namespace OpenSim.Region.ClientStack.Linden
return responsedata; return responsedata;
} }
OSDMap ObjMap = (OSDMap) rm["ObjectData"]; OSDMap ObjMap = (OSDMap)rm["ObjectData"];
bypass_raycast = ObjMap["BypassRaycast"].AsBoolean(); bypass_raycast = ObjMap["BypassRaycast"].AsBoolean();
everyone_mask = readuintval(ObjMap["EveryoneMask"]); everyone_mask = readuintval(ObjMap["EveryoneMask"]);
@ -195,9 +226,9 @@ namespace OpenSim.Region.ClientStack.Linden
state = ObjMap["State"].AsInteger(); state = ObjMap["State"].AsInteger();
try try
{ {
ray_end = ((OSDArray) ObjMap["RayEnd"]).AsVector3(); ray_end = ((OSDArray)ObjMap["RayEnd"]).AsVector3();
ray_start = ((OSDArray) ObjMap["RayStart"]).AsVector3(); ray_start = ((OSDArray)ObjMap["RayStart"]).AsVector3();
scale = ((OSDArray) ObjMap["Scale"]).AsVector3(); scale = ((OSDArray)ObjMap["Scale"]).AsVector3();
rotation = ((OSDArray)ObjMap["Rotation"]).AsQuaternion(); rotation = ((OSDArray)ObjMap["Rotation"]).AsQuaternion();
} }
catch (Exception) catch (Exception)
@ -214,7 +245,7 @@ namespace OpenSim.Region.ClientStack.Linden
return responsedata; return responsedata;
} }
OSDMap AgentDataMap = (OSDMap) rm["AgentData"]; OSDMap AgentDataMap = (OSDMap)rm["AgentData"];
//session_id = AgentDataMap["SessionId"].AsUUID(); //session_id = AgentDataMap["SessionId"].AsUUID();
group_id = AgentDataMap["GroupId"].AsUUID(); group_id = AgentDataMap["GroupId"].AsUUID();
@ -275,7 +306,7 @@ namespace OpenSim.Region.ClientStack.Linden
Vector3 pos = m_scene.GetNewRezLocation(ray_start, ray_end, ray_target_id, rotation, (bypass_raycast) ? (byte)1 : (byte)0, (ray_end_is_intersection) ? (byte)1 : (byte)0, true, scale, false); Vector3 pos = m_scene.GetNewRezLocation(ray_start, ray_end, ray_target_id, rotation, (bypass_raycast) ? (byte)1 : (byte)0, (ray_end_is_intersection) ? (byte)1 : (byte)0, true, scale, false);
PrimitiveBaseShape pbs = PrimitiveBaseShape.CreateBox(); PrimitiveBaseShape pbs = PrimitiveBaseShape.CreateBox();
@ -286,17 +317,17 @@ namespace OpenSim.Region.ClientStack.Linden
pbs.PathRevolutions = (byte)path_revolutions; pbs.PathRevolutions = (byte)path_revolutions;
pbs.PathScaleX = (byte)path_scale_x; pbs.PathScaleX = (byte)path_scale_x;
pbs.PathScaleY = (byte)path_scale_y; pbs.PathScaleY = (byte)path_scale_y;
pbs.PathShearX = (byte) path_shear_x; pbs.PathShearX = (byte)path_shear_x;
pbs.PathShearY = (byte)path_shear_y; pbs.PathShearY = (byte)path_shear_y;
pbs.PathSkew = (sbyte)path_skew; pbs.PathSkew = (sbyte)path_skew;
pbs.PathTaperX = (sbyte)path_taper_x; pbs.PathTaperX = (sbyte)path_taper_x;
pbs.PathTaperY = (sbyte)path_taper_y; pbs.PathTaperY = (sbyte)path_taper_y;
pbs.PathTwist = (sbyte)path_twist; pbs.PathTwist = (sbyte)path_twist;
pbs.PathTwistBegin = (sbyte)path_twist_begin; pbs.PathTwistBegin = (sbyte)path_twist_begin;
pbs.HollowShape = (HollowShape) hollow; pbs.HollowShape = (HollowShape)hollow;
pbs.PCode = (byte)p_code; pbs.PCode = (byte)p_code;
pbs.ProfileBegin = (ushort) profile_begin; pbs.ProfileBegin = (ushort)profile_begin;
pbs.ProfileCurve = (byte) profile_curve; pbs.ProfileCurve = (byte)profile_curve;
pbs.ProfileEnd = (ushort)profile_end; pbs.ProfileEnd = (ushort)profile_end;
pbs.Scale = scale; pbs.Scale = scale;
pbs.State = (byte)state; pbs.State = (byte)state;
@ -306,7 +337,7 @@ namespace OpenSim.Region.ClientStack.Linden
if (m_scene.Permissions.CanRezObject(1, avatar.UUID, pos)) if (m_scene.Permissions.CanRezObject(1, avatar.UUID, pos))
{ {
// rez ON the ground, not IN the ground // rez ON the ground, not IN the ground
// pos.Z += 0.25F; // pos.Z += 0.25F;
obj = m_scene.AddNewPrim(avatar.UUID, group_id, pos, rotation, pbs); obj = m_scene.AddNewPrim(avatar.UUID, group_id, pos, rotation, pbs);
} }
@ -329,7 +360,7 @@ namespace OpenSim.Region.ClientStack.Linden
responsedata["int_response_code"] = 200; //501; //410; //404; responsedata["int_response_code"] = 200; //501; //410; //404;
responsedata["content_type"] = "text/plain"; responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false; responsedata["keepalive"] = false;
responsedata["str_response_string"] = String.Format("<llsd><map><key>local_id</key>{0}</map></llsd>",ConvertUintToBytes(obj.LocalId)); responsedata["str_response_string"] = String.Format("<llsd><map><key>local_id</key>{0}</map></llsd>", ConvertUintToBytes(obj.LocalId));
return responsedata; return responsedata;
} }
@ -347,24 +378,8 @@ namespace OpenSim.Region.ClientStack.Linden
byte[] resultbytes = Utils.UIntToBytes(val); byte[] resultbytes = Utils.UIntToBytes(val);
if (BitConverter.IsLittleEndian) if (BitConverter.IsLittleEndian)
Array.Reverse(resultbytes); Array.Reverse(resultbytes);
return String.Format("<binary encoding=\"base64\">{0}</binary>",Convert.ToBase64String(resultbytes)); return String.Format("<binary encoding=\"base64\">{0}</binary>", Convert.ToBase64String(resultbytes));
} }
public void Close()
{
}
public string Name
{
get { return "ObjectAddModule"; }
}
public bool IsSharedModule
{
get { return false; }
}
#endregion
} }
} }

View File

@ -51,14 +51,14 @@ using ExtraParamType = OpenMetaverse.ExtraParamType;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "UploadObjectAssetModule")]
public class UploadObjectAssetModule : INonSharedRegionModule public class UploadObjectAssetModule : INonSharedRegionModule
{ {
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene; private Scene m_scene;
#region IRegionModuleBase Members #region Region Module interfaceBase Members
public Type ReplaceableInterface public Type ReplaceableInterface
@ -92,7 +92,7 @@ namespace OpenSim.Region.ClientStack.Linden
#endregion #endregion
#region IRegionModule Members #region Region Module interface

View File

@ -53,7 +53,7 @@ namespace OpenSim.Region.ClientStack.Linden
/// NOTE: Part of this code was adapted from the Aurora project, specifically /// NOTE: Part of this code was adapted from the Aurora project, specifically
/// the normal part of the response in the capability handler. /// the normal part of the response in the capability handler.
/// </remarks> /// </remarks>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimulatorFeaturesModule")]
public class SimulatorFeaturesModule : ISharedRegionModule, ISimulatorFeaturesModule public class SimulatorFeaturesModule : ISharedRegionModule, ISimulatorFeaturesModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =

View File

@ -50,7 +50,7 @@ using OpenSim.Capabilities.Handlers;
namespace OpenSim.Region.ClientStack.Linden namespace OpenSim.Region.ClientStack.Linden
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "UploadBakedTextureModule")]
public class UploadBakedTextureModule : INonSharedRegionModule public class UploadBakedTextureModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =

View File

@ -45,7 +45,7 @@ namespace OpenSim.Region.ClientStack.Linden
/// <summary> /// <summary>
/// This module implements both WebFetchInventoryDescendents and FetchInventoryDescendents2 capabilities. /// This module implements both WebFetchInventoryDescendents and FetchInventoryDescendents2 capabilities.
/// </summary> /// </summary>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WebFetchInvDescModule")]
public class WebFetchInvDescModule : INonSharedRegionModule public class WebFetchInvDescModule : INonSharedRegionModule
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -54,7 +54,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
private Dictionary<UUID, AgentAssetTransactions> AgentTransactions = private Dictionary<UUID, AgentAssetTransactions> AgentTransactions =
new Dictionary<UUID, AgentAssetTransactions>(); new Dictionary<UUID, AgentAssetTransactions>();
#region IRegionModule Members #region Region Module interface
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -36,13 +37,18 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Agent.IPBan namespace OpenSim.Region.CoreModules.Agent.IPBan
{ {
public class IPBanModule : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "IPBanModule")]
public class IPBanModule : ISharedRegionModule
{ {
#region Implementation of IRegionModule #region Implementation of ISharedRegionModule
private List<string> m_bans = new List<string>(); private List<string> m_bans = new List<string>();
public void Initialise(Scene scene, IConfigSource source) public void Initialise(IConfigSource source)
{
}
public void AddRegion(Scene scene)
{ {
new SceneBanner(scene, m_bans); new SceneBanner(scene, m_bans);
@ -58,6 +64,14 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan
} }
} }
public void RemoveRegion(Scene scene)
{
}
public void RegionLoaded(Scene scene)
{
}
public void PostInitialise() public void PostInitialise()
{ {
if (File.Exists("bans.txt")) if (File.Exists("bans.txt"))
@ -80,9 +94,9 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan
get { return "IPBanModule"; } get { return "IPBanModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion

View File

@ -32,6 +32,7 @@ using System.Reflection;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenMetaverse.Imaging; using OpenMetaverse.Imaging;
@ -45,7 +46,8 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
{ {
public delegate void J2KDecodeDelegate(UUID assetID); public delegate void J2KDecodeDelegate(UUID assetID);
public class J2KDecoderModule : IRegionModule, IJ2KDecoder [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "J2KDecoderModule")]
public class J2KDecoderModule : ISharedRegionModule, IJ2KDecoder
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -55,27 +57,32 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
private readonly Dictionary<UUID, List<DecodedCallback>> m_notifyList = new Dictionary<UUID, List<DecodedCallback>>(); private readonly Dictionary<UUID, List<DecodedCallback>> m_notifyList = new Dictionary<UUID, List<DecodedCallback>>();
/// <summary>Cache that will store decoded JPEG2000 layer boundary data</summary> /// <summary>Cache that will store decoded JPEG2000 layer boundary data</summary>
private IImprovedAssetCache m_cache; private IImprovedAssetCache m_cache;
private IImprovedAssetCache Cache
{
get
{
if (m_cache == null)
m_cache = m_scene.RequestModuleInterface<IImprovedAssetCache>();
return m_cache;
}
}
/// <summary>Reference to a scene (doesn't matter which one as long as it can load the cache module)</summary> /// <summary>Reference to a scene (doesn't matter which one as long as it can load the cache module)</summary>
private UUID m_CreatorID = UUID.Zero;
private Scene m_scene; private Scene m_scene;
#region IRegionModule #region ISharedRegionModule
private bool m_useCSJ2K = true; private bool m_useCSJ2K = true;
public string Name { get { return "J2KDecoderModule"; } } public string Name { get { return "J2KDecoderModule"; } }
public bool IsSharedModule { get { return true; } }
public J2KDecoderModule() public J2KDecoderModule()
{ {
} }
public void Initialise(Scene scene, IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (m_scene == null)
m_scene = scene;
scene.RegisterModuleInterface<IJ2KDecoder>(this);
IConfig startupConfig = source.Configs["Startup"]; IConfig startupConfig = source.Configs["Startup"];
if (startupConfig != null) if (startupConfig != null)
{ {
@ -83,16 +90,42 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
} }
} }
public void AddRegion(Scene scene)
{
if (m_scene == null)
{
m_scene = scene;
m_CreatorID = scene.RegionInfo.RegionID;
}
scene.RegisterModuleInterface<IJ2KDecoder>(this);
}
public void RemoveRegion(Scene scene)
{
if (m_scene == scene)
m_scene = null;
}
public void PostInitialise() public void PostInitialise()
{ {
m_cache = m_scene.RequestModuleInterface<IImprovedAssetCache>();
} }
public void Close() public void Close()
{ {
} }
#endregion IRegionModule public void RegionLoaded(Scene scene)
{
}
public Type ReplaceableInterface
{
get { return null; }
}
#endregion Region Module interface
#region IJ2KDecoder #region IJ2KDecoder
@ -275,11 +308,11 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
{ {
m_decodedCache.AddOrUpdate(AssetId, Layers, TimeSpan.FromMinutes(10)); m_decodedCache.AddOrUpdate(AssetId, Layers, TimeSpan.FromMinutes(10));
if (m_cache != null) if (Cache != null)
{ {
string assetID = "j2kCache_" + AssetId.ToString(); string assetID = "j2kCache_" + AssetId.ToString();
AssetBase layerDecodeAsset = new AssetBase(assetID, assetID, (sbyte)AssetType.Notecard, m_scene.RegionInfo.RegionID.ToString()); AssetBase layerDecodeAsset = new AssetBase(assetID, assetID, (sbyte)AssetType.Notecard, m_CreatorID.ToString());
layerDecodeAsset.Local = true; layerDecodeAsset.Local = true;
layerDecodeAsset.Temporary = true; layerDecodeAsset.Temporary = true;
@ -299,7 +332,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
#endregion Serialize Layer Data #endregion Serialize Layer Data
m_cache.Cache(layerDecodeAsset); Cache.Cache(layerDecodeAsset);
} }
} }
@ -309,10 +342,10 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
{ {
return true; return true;
} }
else if (m_cache != null) else if (Cache != null)
{ {
string assetName = "j2kCache_" + AssetId.ToString(); string assetName = "j2kCache_" + AssetId.ToString();
AssetBase layerDecodeAsset = m_cache.Get(assetName); AssetBase layerDecodeAsset = Cache.Get(assetName);
if (layerDecodeAsset != null) if (layerDecodeAsset != null)
{ {
@ -324,7 +357,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
if (lines.Length == 0) if (lines.Length == 0)
{ {
m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (empty) " + assetName); m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (empty) " + assetName);
m_cache.Expire(assetName); Cache.Expire(assetName);
return false; return false;
} }
@ -345,7 +378,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
catch (FormatException) catch (FormatException)
{ {
m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (format) " + assetName); m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (format) " + assetName);
m_cache.Expire(assetName); Cache.Expire(assetName);
return false; return false;
} }
@ -356,7 +389,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
else else
{ {
m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (layout) " + assetName); m_log.Warn("[J2KDecodeCache]: Expiring corrupted layer data (layout) " + assetName);
m_cache.Expire(assetName); Cache.Expire(assetName);
return false; return false;
} }
} }

View File

@ -35,9 +35,12 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Agent.Xfer namespace OpenSim.Region.CoreModules.Agent.Xfer
{ {
public class XferModule : IRegionModule, IXfer [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "XferModule")]
public class XferModule : INonSharedRegionModule, IXfer
{ {
private Scene m_scene; private Scene m_scene;
private Dictionary<string, FileData> NewFiles = new Dictionary<string, FileData>(); private Dictionary<string, FileData> NewFiles = new Dictionary<string, FileData>();
@ -59,9 +62,13 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
public int Count; public int Count;
} }
#region IRegionModule Members #region INonSharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{
}
public void AddRegion(Scene scene)
{ {
m_scene = scene; m_scene = scene;
m_scene.EventManager.OnNewClient += NewClient; m_scene.EventManager.OnNewClient += NewClient;
@ -69,8 +76,21 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
m_scene.RegisterModuleInterface<IXfer>(this); m_scene.RegisterModuleInterface<IXfer>(this);
} }
public void PostInitialise() public void RemoveRegion(Scene scene)
{ {
m_scene.EventManager.OnNewClient -= NewClient;
m_scene.UnregisterModuleInterface<IXfer>(this);
m_scene = null;
}
public void RegionLoaded(Scene scene)
{
}
public Type ReplaceableInterface
{
get { return null; }
} }
public void Close() public void Close()
@ -82,11 +102,6 @@ namespace OpenSim.Region.CoreModules.Agent.Xfer
get { return "XferModule"; } get { return "XferModule"; }
} }
public bool IsSharedModule
{
get { return false; }
}
#endregion #endregion
#region IXfer Members #region IXfer Members

View File

@ -28,6 +28,7 @@
using System; using System;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -89,6 +90,7 @@ namespace OpenSim.Region.CoreModules.Asset
/// ExpirationTime = 60 /// ExpirationTime = 60
/// </code> /// </code>
/// </example> /// </example>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "CenomeMemoryAssetCache")]
public class CenomeMemoryAssetCache : IImprovedAssetCache, ISharedRegionModule public class CenomeMemoryAssetCache : IImprovedAssetCache, ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -30,6 +30,7 @@ using System;
using System.IO; using System.IO;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -38,6 +39,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Asset namespace OpenSim.Region.CoreModules.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "CoreAssetCache")]
public class CoreAssetCache : ISharedRegionModule, IImprovedAssetCache public class CoreAssetCache : ISharedRegionModule, IImprovedAssetCache
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -49,12 +49,12 @@ using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
[assembly: Addin("FlotsamAssetCache", "1.1")] //[assembly: Addin("FlotsamAssetCache", "1.1")]
[assembly: AddinDependency("OpenSim", "0.5")] //[assembly: AddinDependency("OpenSim", "0.5")]
namespace OpenSim.Region.CoreModules.Asset namespace OpenSim.Region.CoreModules.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "FlotsamAssetCache")]
public class FlotsamAssetCache : ISharedRegionModule, IImprovedAssetCache, IAssetService public class FlotsamAssetCache : ISharedRegionModule, IImprovedAssetCache, IAssetService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -31,6 +31,7 @@ using System.IO;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using GlynnTucker.Cache; using GlynnTucker.Cache;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -39,6 +40,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Asset namespace OpenSim.Region.CoreModules.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GlynnTuckerAssetCache")]
public class GlynnTuckerAssetCache : ISharedRegionModule, IImprovedAssetCache public class GlynnTuckerAssetCache : ISharedRegionModule, IImprovedAssetCache
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -39,9 +39,12 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
{ {
public class AvatarFactoryModule : IAvatarFactoryModule, IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AvatarFactoryModule")]
public class AvatarFactoryModule : IAvatarFactoryModule, INonSharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -59,12 +62,10 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
private object m_setAppearanceLock = new object(); private object m_setAppearanceLock = new object();
#region IRegionModule #region Region Module interface
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
scene.RegisterModuleInterface<IAvatarFactoryModule>(this);
scene.EventManager.OnNewClient += SubscribeToClientEvents;
IConfig appearanceConfig = config.Configs["Appearance"]; IConfig appearanceConfig = config.Configs["Appearance"];
if (appearanceConfig != null) if (appearanceConfig != null)
@ -74,11 +75,29 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
// m_log.InfoFormat("[AVFACTORY] configured for {0} save and {1} send",m_savetime,m_sendtime); // m_log.InfoFormat("[AVFACTORY] configured for {0} save and {1} send",m_savetime,m_sendtime);
} }
if (m_scene == null)
m_scene = scene;
} }
public void PostInitialise() public void AddRegion(Scene scene)
{
if (m_scene == null)
m_scene = scene;
scene.RegisterModuleInterface<IAvatarFactoryModule>(this);
scene.EventManager.OnNewClient += SubscribeToClientEvents;
}
public void RemoveRegion(Scene scene)
{
if (scene == m_scene)
{
scene.UnregisterModuleInterface<IAvatarFactoryModule>(this);
scene.EventManager.OnNewClient -= SubscribeToClientEvents;
}
m_scene = null;
}
public void RegionLoaded(Scene scene)
{ {
m_updateTimer.Enabled = false; m_updateTimer.Enabled = false;
m_updateTimer.AutoReset = true; m_updateTimer.AutoReset = true;
@ -100,6 +119,12 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
get { return false; } get { return false; }
} }
public Type ReplaceableInterface
{
get { return null; }
}
private void SubscribeToClientEvents(IClientAPI client) private void SubscribeToClientEvents(IClientAPI client)
{ {
client.OnRequestWearables += Client_OnRequestWearables; client.OnRequestWearables += Client_OnRequestWearables;

View File

@ -30,6 +30,7 @@ using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -37,6 +38,7 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Avatar.Chat namespace OpenSim.Region.CoreModules.Avatar.Chat
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ChatModule")]
public class ChatModule : ISharedRegionModule public class ChatModule : ISharedRegionModule
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -33,9 +33,12 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenMetaverse; using OpenMetaverse;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
{ {
public class CombatModule : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "CombatModule")]
public class CombatModule : ISharedRegionModule
{ {
//private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -54,7 +57,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
/// </summary> /// </summary>
/// <param name="scene"></param> /// <param name="scene"></param>
/// <param name="config"></param> /// <param name="config"></param>
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{
}
public void AddRegion(Scene scene)
{ {
lock (m_scenel) lock (m_scenel)
{ {
@ -72,6 +79,19 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel; scene.EventManager.OnAvatarEnteringNewParcel += AvatarEnteringParcel;
} }
public void RemoveRegion(Scene scene)
{
if (m_scenel.ContainsKey(scene.RegionInfo.RegionHandle))
m_scenel.Remove(scene.RegionInfo.RegionHandle);
scene.EventManager.OnAvatarKilled -= KillAvatar;
scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel;
}
public void RegionLoaded(Scene scene)
{
}
public void PostInitialise() public void PostInitialise()
{ {
} }
@ -85,11 +105,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
get { return "CombatModule"; } get { return "CombatModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
private void KillAvatar(uint killerObjectLocalID, ScenePresence deadAvatar) private void KillAvatar(uint killerObjectLocalID, ScenePresence deadAvatar)
{ {
string deadAvatarMessage; string deadAvatarMessage;

View File

@ -32,6 +32,7 @@ using log4net;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using Mono.Addins;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -39,16 +40,27 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Avatar.Dialog namespace OpenSim.Region.CoreModules.Avatar.Dialog
{ {
public class DialogModule : IRegionModule, IDialogModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "DialogModule")]
public class DialogModule : IDialogModule, INonSharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected Scene m_scene; protected Scene m_scene;
public void Initialise(Scene scene, IConfigSource source) public void Initialise(IConfigSource source) { }
public Type ReplaceableInterface { get { return null; } }
public void AddRegion(Scene scene)
{ {
m_scene = scene; m_scene = scene;
m_scene.RegisterModuleInterface<IDialogModule>(this); m_scene.RegisterModuleInterface<IDialogModule>(this);
}
public void RegionLoaded(Scene scene)
{
if (scene != m_scene)
return;
m_scene.AddCommand( m_scene.AddCommand(
"Users", this, "alert", "alert <message>", "Users", this, "alert", "alert <message>",
@ -56,22 +68,30 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
HandleAlertConsoleCommand); HandleAlertConsoleCommand);
m_scene.AddCommand( m_scene.AddCommand(
"Users", this, "alert-user", "alert-user <first> <last> <message>", "Users", this, "alert-user",
"alert-user <first> <last> <message>",
"Send an alert to a user", "Send an alert to a user",
HandleAlertConsoleCommand); HandleAlertConsoleCommand);
} }
public void PostInitialise() {} public void RemoveRegion(Scene scene)
public void Close() {} {
if (scene != m_scene)
return;
m_scene.UnregisterModuleInterface<IDialogModule>(this);
}
public void Close() { }
public string Name { get { return "Dialog Module"; } } public string Name { get { return "Dialog Module"; } }
public bool IsSharedModule { get { return false; } }
public void SendAlertToUser(IClientAPI client, string message) public void SendAlertToUser(IClientAPI client, string message)
{ {
SendAlertToUser(client, message, false); SendAlertToUser(client, message, false);
} }
public void SendAlertToUser(IClientAPI client, string message, bool modal) public void SendAlertToUser(IClientAPI client, string message,
bool modal)
{ {
client.SendAgentAlertMessage(message, modal); client.SendAgentAlertMessage(message, modal);
} }
@ -89,11 +109,16 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
sp.ControllingClient.SendAgentAlertMessage(message, modal); sp.ControllingClient.SendAgentAlertMessage(message, modal);
} }
public void SendAlertToUser(string firstName, string lastName, string message, bool modal) public void SendAlertToUser(string firstName, string lastName,
string message, bool modal)
{ {
ScenePresence presence = m_scene.GetScenePresence(firstName, lastName); ScenePresence presence = m_scene.GetScenePresence(firstName,
lastName);
if (presence != null) if (presence != null)
presence.ControllingClient.SendAgentAlertMessage(message, modal); {
presence.ControllingClient.SendAgentAlertMessage(message,
modal);
}
} }
public void SendGeneralAlert(string message) public void SendGeneralAlert(string message)
@ -104,11 +129,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
}); });
} }
public void SendDialogToUser( public void SendDialogToUser(UUID avatarID, string objectName,
UUID avatarID, string objectName, UUID objectID, UUID ownerID, UUID objectID, UUID ownerID, string message, UUID textureID,
string message, UUID textureID, int ch, string[] buttonlabels) int ch, string[] buttonlabels)
{ {
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, ownerID); UserAccount account = m_scene.UserAccountService.GetUserAccount(
m_scene.RegionInfo.ScopeID, ownerID);
string ownerFirstName, ownerLastName; string ownerFirstName, ownerLastName;
if (account != null) if (account != null)
{ {
@ -123,29 +149,38 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
ScenePresence sp = m_scene.GetScenePresence(avatarID); ScenePresence sp = m_scene.GetScenePresence(avatarID);
if (sp != null) if (sp != null)
sp.ControllingClient.SendDialog( {
objectName, objectID, ownerID, ownerFirstName, ownerLastName, message, textureID, ch, buttonlabels); sp.ControllingClient.SendDialog(objectName, objectID, ownerID,
ownerFirstName, ownerLastName, message, textureID, ch,
buttonlabels);
}
} }
public void SendUrlToUser( public void SendUrlToUser(UUID avatarID, string objectName,
UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url) UUID objectID, UUID ownerID, bool groupOwned, string message,
string url)
{ {
ScenePresence sp = m_scene.GetScenePresence(avatarID); ScenePresence sp = m_scene.GetScenePresence(avatarID);
if (sp != null) if (sp != null)
sp.ControllingClient.SendLoadURL(objectName, objectID, ownerID, groupOwned, message, url); {
sp.ControllingClient.SendLoadURL(objectName, objectID,
ownerID, groupOwned, message, url);
}
} }
public void SendTextBoxToUser(UUID avatarid, string message, int chatChannel, string name, UUID objectid, UUID ownerid) public void SendTextBoxToUser(UUID avatarid, string message,
int chatChannel, string name, UUID objectid, UUID ownerid)
{ {
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, ownerid); UserAccount account = m_scene.UserAccountService.GetUserAccount(
m_scene.RegionInfo.ScopeID, ownerid);
string ownerFirstName, ownerLastName; string ownerFirstName, ownerLastName;
UUID ownerID = UUID.Zero; UUID ownerID = UUID.Zero;
if (account != null) if (account != null)
{ {
ownerFirstName = account.FirstName; ownerFirstName = account.FirstName;
ownerLastName = account.LastName; ownerLastName = account.LastName;
ownerID = account.PrincipalID; ownerID = account.PrincipalID;
} }
else else
{ {
@ -156,15 +191,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
ScenePresence sp = m_scene.GetScenePresence(avatarid); ScenePresence sp = m_scene.GetScenePresence(avatarid);
if (sp != null) if (sp != null)
sp.ControllingClient.SendTextBoxRequest(message, chatChannel, name, ownerID, ownerFirstName, ownerLastName, objectid); {
sp.ControllingClient.SendTextBoxRequest(message, chatChannel,
name, ownerID, ownerFirstName, ownerLastName,
objectid);
}
} }
public void SendNotificationToUsersInRegion( public void SendNotificationToUsersInRegion(UUID fromAvatarID,
UUID fromAvatarID, string fromAvatarName, string message) string fromAvatarName, string message)
{ {
m_scene.ForEachRootClient(delegate(IClientAPI client) m_scene.ForEachRootClient(delegate(IClientAPI client)
{ {
client.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); client.SendBlueBoxMessage(fromAvatarID, fromAvatarName,
message);
}); });
} }
@ -173,10 +213,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
/// </summary> /// </summary>
/// <param name="module"></param> /// <param name="module"></param>
/// <param name="cmdparams"></param> /// <param name="cmdparams"></param>
public void HandleAlertConsoleCommand(string module, string[] cmdparams) public void HandleAlertConsoleCommand(string module,
string[] cmdparams)
{ {
if (m_scene.ConsoleScene() != null && m_scene.ConsoleScene() != m_scene) if (m_scene.ConsoleScene() != null &&
m_scene.ConsoleScene() != m_scene)
{
return; return;
}
string message = string.Empty; string message = string.Empty;
@ -184,7 +228,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
{ {
message = CombineParams(cmdparams, 1); message = CombineParams(cmdparams, 1);
m_log.InfoFormat("[DIALOG]: Sending general alert in region {0} with message {1}", m_log.InfoFormat("[DIALOG]: Sending general alert in region {0} with message {1}",
m_scene.RegionInfo.RegionName, message); m_scene.RegionInfo.RegionName, message);
SendGeneralAlert(message); SendGeneralAlert(message);
} }
else if (cmdparams.Length > 3) else if (cmdparams.Length > 3)
@ -192,9 +236,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
string firstName = cmdparams[1]; string firstName = cmdparams[1];
string lastName = cmdparams[2]; string lastName = cmdparams[2];
message = CombineParams(cmdparams, 3); message = CombineParams(cmdparams, 3);
m_log.InfoFormat( m_log.InfoFormat("[DIALOG]: Sending alert in region {0} to {1} {2} with message {3}",
"[DIALOG]: Sending alert in region {0} to {1} {2} with message {3}", m_scene.RegionInfo.RegionName, firstName, lastName,
m_scene.RegionInfo.RegionName, firstName, lastName, message); message);
SendAlertToUser(firstName, lastName, message, false); SendAlertToUser(firstName, lastName, message, false);
} }
else else

View File

@ -35,6 +35,7 @@ using log4net;
using Nini.Config; using Nini.Config;
using Nwc.XmlRpc; using Nwc.XmlRpc;
using OpenMetaverse; using OpenMetaverse;
using Mono.Addins;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
@ -50,6 +51,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.Friends namespace OpenSim.Region.CoreModules.Avatar.Friends
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "FriendsModule")]
public class FriendsModule : ISharedRegionModule, IFriendsModule public class FriendsModule : ISharedRegionModule, IFriendsModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -46,6 +46,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.Friends namespace OpenSim.Region.CoreModules.Avatar.Friends
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGFriendsModule")]
public class HGFriendsModule : FriendsModule, ISharedRegionModule, IFriendsModule, IFriendsSimConnector public class HGFriendsModule : FriendsModule, ISharedRegionModule, IFriendsModule, IFriendsSimConnector
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -25,6 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using System;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
@ -35,25 +36,45 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.Gestures namespace OpenSim.Region.CoreModules.Avatar.Gestures
{ {
public class GesturesModule : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GesturesModule")]
public class GesturesModule : INonSharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected Scene m_scene; protected Scene m_scene;
public void Initialise(Scene scene, IConfigSource source) public void Initialise(IConfigSource source)
{
}
public void AddRegion(Scene scene)
{ {
m_scene = scene; m_scene = scene;
m_scene.EventManager.OnNewClient += OnNewClient; m_scene.EventManager.OnNewClient += OnNewClient;
} }
public void PostInitialise() {} public void RegionLoaded(Scene scene)
{
}
public void RemoveRegion(Scene scene)
{
m_scene.EventManager.OnNewClient -= OnNewClient;
m_scene = null;
}
public void Close() {} public void Close() {}
public string Name { get { return "Gestures Module"; } } public string Name { get { return "Gestures Module"; } }
public bool IsSharedModule { get { return false; } }
public Type ReplaceableInterface
{
get { return null; }
}
private void OnNewClient(IClientAPI client) private void OnNewClient(IClientAPI client)
{ {

View File

@ -25,6 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using System;
using System.Collections.Generic; using System.Collections.Generic;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
@ -32,28 +33,58 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.Gods namespace OpenSim.Region.CoreModules.Avatar.Gods
{ {
public class GodsModule : IRegionModule, IGodsModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GodsModule")]
public class GodsModule : INonSharedRegionModule, IGodsModule
{ {
/// <summary>Special UUID for actions that apply to all agents</summary> /// <summary>Special UUID for actions that apply to all agents</summary>
private static readonly UUID ALL_AGENTS = new UUID("44e87126-e794-4ded-05b3-7c42da3d5cdb"); private static readonly UUID ALL_AGENTS = new UUID("44e87126-e794-4ded-05b3-7c42da3d5cdb");
protected Scene m_scene; protected Scene m_scene;
protected IDialogModule m_dialogModule; protected IDialogModule m_dialogModule;
protected IDialogModule DialogModule
{
get
{
if (m_dialogModule == null)
m_dialogModule = m_scene.RequestModuleInterface<IDialogModule>();
public void Initialise(Scene scene, IConfigSource source) return m_dialogModule;
}
}
public void Initialise(IConfigSource source)
{
}
public void AddRegion(Scene scene)
{ {
m_scene = scene; m_scene = scene;
m_dialogModule = m_scene.RequestModuleInterface<IDialogModule>();
m_scene.RegisterModuleInterface<IGodsModule>(this); m_scene.RegisterModuleInterface<IGodsModule>(this);
m_scene.EventManager.OnNewClient += SubscribeToClientEvents; m_scene.EventManager.OnNewClient += SubscribeToClientEvents;
} }
public void PostInitialise() {} public void RemoveRegion(Scene scene)
{
m_scene.UnregisterModuleInterface<IGodsModule>(this);
m_scene.EventManager.OnNewClient -= SubscribeToClientEvents;
m_scene = null;
}
public void RegionLoaded(Scene scene)
{
}
public void Close() {} public void Close() {}
public string Name { get { return "Gods Module"; } } public string Name { get { return "Gods Module"; } }
public bool IsSharedModule { get { return false; } }
public Type ReplaceableInterface
{
get { return null; }
}
public void SubscribeToClientEvents(IClientAPI client) public void SubscribeToClientEvents(IClientAPI client)
{ {
@ -96,8 +127,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
} }
else else
{ {
if (m_dialogModule != null) if (DialogModule != null)
m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied"); DialogModule.SendAlertToUser(agentID, "Request for god powers denied");
} }
} }
} }
@ -121,7 +152,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
if (sp != null || agentID == kickUserID) if (sp != null || agentID == kickUserID)
{ {
m_dialogModule = m_scene.RequestModuleInterface<IDialogModule>();
if (m_scene.Permissions.IsGod(godID)) if (m_scene.Permissions.IsGod(godID))
{ {
if (kickflags == 0) if (kickflags == 0)
@ -163,27 +193,27 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
if (kickflags == 1) if (kickflags == 1)
{ {
sp.AllowMovement = false; sp.AllowMovement = false;
if (m_dialogModule != null) if (DialogModule != null)
{ {
m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); DialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason));
m_dialogModule.SendAlertToUser(godID, "User Frozen"); DialogModule.SendAlertToUser(godID, "User Frozen");
} }
} }
if (kickflags == 2) if (kickflags == 2)
{ {
sp.AllowMovement = true; sp.AllowMovement = true;
if (m_dialogModule != null) if (DialogModule != null)
{ {
m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); DialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason));
m_dialogModule.SendAlertToUser(godID, "User Unfrozen"); DialogModule.SendAlertToUser(godID, "User Unfrozen");
} }
} }
} }
else else
{ {
if (m_dialogModule != null) if (DialogModule != null)
m_dialogModule.SendAlertToUser(godID, "Kick request denied"); DialogModule.SendAlertToUser(godID, "Kick request denied");
} }
} }
} }

View File

@ -25,6 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
@ -34,9 +35,12 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.Groups namespace OpenSim.Region.CoreModules.Avatar.Groups
{ {
public class GroupsModule : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GroupsModule")]
public class GroupsModule : ISharedRegionModule
{ {
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -55,9 +59,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
private static GroupMembershipData osGroup = private static GroupMembershipData osGroup =
new GroupMembershipData(); new GroupMembershipData();
#region IRegionModule Members private bool m_Enabled = false;
public void Initialise(Scene scene, IConfigSource config) #region ISharedRegionModule Members
public void Initialise(IConfigSource config)
{ {
IConfig groupsConfig = config.Configs["Groups"]; IConfig groupsConfig = config.Configs["Groups"];
@ -67,7 +73,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
} }
else else
{ {
if (!groupsConfig.GetBoolean("Enabled", false)) m_Enabled = groupsConfig.GetBoolean("Enabled", false);
if (!m_Enabled)
{ {
m_log.Info("[GROUPS]: Groups disabled in configuration"); m_log.Info("[GROUPS]: Groups disabled in configuration");
return; return;
@ -77,6 +84,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
return; return;
} }
}
public void AddRegion(Scene scene)
{
if (!m_Enabled)
return;
lock (m_SceneList) lock (m_SceneList)
{ {
if (!m_SceneList.Contains(scene)) if (!m_SceneList.Contains(scene))
@ -96,7 +110,26 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
scene.EventManager.OnNewClient += OnNewClient; scene.EventManager.OnNewClient += OnNewClient;
scene.EventManager.OnClientClosed += OnClientClosed; scene.EventManager.OnClientClosed += OnClientClosed;
// scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage; // scene.EventManager.OnIncomingInstantMessage += OnGridInstantMessage;
}
public void RemoveRegion(Scene scene)
{
if (!m_Enabled)
return;
lock (m_SceneList)
{
if (m_SceneList.Contains(scene))
m_SceneList.Remove(scene);
}
scene.EventManager.OnNewClient -= OnNewClient;
scene.EventManager.OnClientClosed -= OnClientClosed;
}
public void RegionLoaded(Scene scene)
{
} }
public void PostInitialise() public void PostInitialise()
@ -105,6 +138,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
public void Close() public void Close()
{ {
if (!m_Enabled)
return;
// m_log.Debug("[GROUPS]: Shutting down group module."); // m_log.Debug("[GROUPS]: Shutting down group module.");
lock (m_ClientMap) lock (m_ClientMap)
@ -123,9 +159,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups
get { return "GroupsModule"; } get { return "GroupsModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion

View File

@ -48,7 +48,7 @@ using OpenSim.Server.Handlers.Hypergrid;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGMessageTransferModule")]
public class HGMessageTransferModule : ISharedRegionModule, IMessageTransferModule, IInstantMessageSimConnector public class HGMessageTransferModule : ISharedRegionModule, IMessageTransferModule, IInstantMessageSimConnector
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -28,6 +28,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -37,6 +38,7 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "InstantMessageModule")]
public class InstantMessageModule : ISharedRegionModule public class InstantMessageModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger( private static readonly ILog m_log = LogManager.GetLogger(
@ -49,7 +51,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
private readonly List<Scene> m_scenes = new List<Scene>(); private readonly List<Scene> m_scenes = new List<Scene>();
#region IRegionModule Members #region Region Module interface
private IMessageTransferModule m_TransferModule = null; private IMessageTransferModule m_TransferModule = null;

View File

@ -30,6 +30,7 @@ using System.Collections.Generic;
using System.Net; using System.Net;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using Nwc.XmlRpc; using Nwc.XmlRpc;
using OpenMetaverse; using OpenMetaverse;
@ -43,6 +44,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MessageTransferModule")]
public class MessageTransferModule : ISharedRegionModule, IMessageTransferModule public class MessageTransferModule : ISharedRegionModule, IMessageTransferModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -29,6 +29,7 @@ using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
@ -39,6 +40,7 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MuteListModule")]
public class MuteListModule : ISharedRegionModule public class MuteListModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -28,6 +28,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -39,6 +40,7 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "OfflineMessageModule")]
public class OfflineMessageModule : ISharedRegionModule public class OfflineMessageModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -33,6 +33,7 @@ using log4net;
using Nini.Config; using Nini.Config;
using Nwc.XmlRpc; using Nwc.XmlRpc;
using OpenMetaverse; using OpenMetaverse;
using Mono.Addins;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -42,6 +43,7 @@ using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "PresenceModule")]
public class PresenceModule : ISharedRegionModule, IPresenceModule public class PresenceModule : ISharedRegionModule, IPresenceModule
{ {
private static readonly ILog m_log = LogManager.GetLogger( private static readonly ILog m_log = LogManager.GetLogger(

View File

@ -39,20 +39,18 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{ {
/// <summary> /// <summary>
/// This module loads and saves OpenSimulator inventory archives /// This module loads and saves OpenSimulator inventory archives
/// </summary> /// </summary>
public class InventoryArchiverModule : IRegionModule, IInventoryArchiverModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "InventoryArchiverModule")]
public class InventoryArchiverModule : ISharedRegionModule, IInventoryArchiverModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public string Name { get { return "Inventory Archiver Module"; } }
public bool IsSharedModule { get { return true; } }
/// <value> /// <value>
/// Enable or disable checking whether the iar user is actually logged in /// Enable or disable checking whether the iar user is actually logged in
/// </value> /// </value>
@ -99,9 +97,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
// public InventoryArchiverModule(bool disablePresenceChecks) // public InventoryArchiverModule(bool disablePresenceChecks)
// { // {
// DisablePresenceChecks = disablePresenceChecks; // DisablePresenceChecks = disablePresenceChecks;
// } // }
public void Initialise(Scene scene, IConfigSource source) #region ISharedRegionModule
public void Initialise(IConfigSource source)
{
}
public void AddRegion(Scene scene)
{ {
if (m_scenes.Count == 0) if (m_scenes.Count == 0)
{ {
@ -144,10 +148,29 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
m_scenes[scene.RegionInfo.RegionID] = scene; m_scenes[scene.RegionInfo.RegionID] = scene;
} }
public void PostInitialise() {} public void RemoveRegion(Scene scene)
{
}
public void Close() {} public void Close() {}
public void RegionLoaded(Scene scene)
{
}
public void PostInitialise()
{
}
public Type ReplaceableInterface
{
get { return null; }
}
public string Name { get { return "Inventory Archiver Module"; } }
#endregion
/// <summary> /// <summary>
/// Trigger the inventory archive saved event. /// Trigger the inventory archive saved event.
/// </summary> /// </summary>

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -38,6 +39,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "InventoryTransferModule")]
public class InventoryTransferModule : ISharedRegionModule public class InventoryTransferModule : ISharedRegionModule
{ {
private static readonly ILog m_log private static readonly ILog m_log
@ -51,7 +53,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
private IMessageTransferModule m_TransferModule = null; private IMessageTransferModule m_TransferModule = null;
private bool m_Enabled = true; private bool m_Enabled = true;
#region IRegionModule Members #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {
@ -298,73 +300,76 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
} }
} }
// XXX: This code was placed here to try and accomdate RLV which moves given folders named #RLV/~<name> // Disabled for now as it looks like http://opensimulator.org/mantis/view.php?id=6311 was fixed by fixes
// to a folder called name in #RLV. However, this approach may not be ultimately correct - from analysis // to inventory folder versioning allowing the viewer to move the received folder itself as happens on the
// of Firestorm 4.2.2 on sending an InventoryOffered instead of TaskInventoryOffered (as was previously // LL grid. Doing it again server-side then wrongly does a second create and move
// done), the viewer itself would appear to move and rename the folder, rather than the simulator doing it here. // // XXX: This code was placed here to try and accomdate RLV which moves given folders named #RLV/~<name>
else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted) // // to a folder called name in #RLV. However, this approach may not be ultimately correct - from analysis
{ // // of Firestorm 4.2.2 on sending an InventoryOffered instead of TaskInventoryOffered (as was previously
UUID destinationFolderID = UUID.Zero; // // done), the viewer itself would appear to move and rename the folder, rather than the simulator doing it here.
// else if (im.dialog == (byte) InstantMessageDialog.TaskInventoryAccepted)
if (im.binaryBucket != null && im.binaryBucket.Length >= 16) // {
{ // UUID destinationFolderID = UUID.Zero;
destinationFolderID = new UUID(im.binaryBucket, 0); //
} // if (im.binaryBucket != null && im.binaryBucket.Length >= 16)
// {
if (destinationFolderID != UUID.Zero) // destinationFolderID = new UUID(im.binaryBucket, 0);
{ // }
InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId); //
if (destinationFolder == null) // if (destinationFolderID != UUID.Zero)
{ // {
m_log.WarnFormat( // InventoryFolderBase destinationFolder = new InventoryFolderBase(destinationFolderID, client.AgentId);
"[INVENTORY TRANSFER]: TaskInventoryAccepted message from {0} in {1} specified folder {2} which does not exist", // if (destinationFolder == null)
client.Name, scene.Name, destinationFolderID); // {
// m_log.WarnFormat(
return; // "[INVENTORY TRANSFER]: TaskInventoryAccepted message from {0} in {1} specified folder {2} which does not exist",
} // client.Name, scene.Name, destinationFolderID);
//
IInventoryService invService = scene.InventoryService; // return;
// }
UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip //
// IInventoryService invService = scene.InventoryService;
InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId); //
item = invService.GetItem(item); // UUID inventoryID = new UUID(im.imSessionID); // The inventory item/folder, back from it's trip
InventoryFolderBase folder = null; //
UUID? previousParentFolderID = null; // InventoryItemBase item = new InventoryItemBase(inventoryID, client.AgentId);
// item = invService.GetItem(item);
if (item != null) // It's an item // InventoryFolderBase folder = null;
{ // UUID? previousParentFolderID = null;
previousParentFolderID = item.Folder; //
item.Folder = destinationFolderID; // if (item != null) // It's an item
// {
invService.DeleteItems(item.Owner, new List<UUID>() { item.ID }); // previousParentFolderID = item.Folder;
scene.AddInventoryItem(client, item); // item.Folder = destinationFolderID;
} //
else // invService.DeleteItems(item.Owner, new List<UUID>() { item.ID });
{ // scene.AddInventoryItem(client, item);
folder = new InventoryFolderBase(inventoryID, client.AgentId); // }
folder = invService.GetFolder(folder); // else
// {
if (folder != null) // It's a folder // folder = new InventoryFolderBase(inventoryID, client.AgentId);
{ // folder = invService.GetFolder(folder);
previousParentFolderID = folder.ParentID; //
folder.ParentID = destinationFolderID; // if (folder != null) // It's a folder
invService.MoveFolder(folder); // {
} // previousParentFolderID = folder.ParentID;
} // folder.ParentID = destinationFolderID;
// invService.MoveFolder(folder);
// Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code). // }
if (previousParentFolderID != null) // }
{ //
InventoryFolderBase previousParentFolder // // Tell client about updates to original parent and new parent (this should probably be factored with existing move item/folder code).
= new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId); // if (previousParentFolderID != null)
previousParentFolder = invService.GetFolder(previousParentFolder); // {
scene.SendInventoryUpdate(client, previousParentFolder, true, true); // InventoryFolderBase previousParentFolder
// = new InventoryFolderBase((UUID)previousParentFolderID, client.AgentId);
scene.SendInventoryUpdate(client, destinationFolder, true, true); // previousParentFolder = invService.GetFolder(previousParentFolder);
} // scene.SendInventoryUpdate(client, previousParentFolder, true, true);
} //
} // scene.SendInventoryUpdate(client, destinationFolder, true, true);
// }
// }
// }
else if ( else if (
im.dialog == (byte)InstantMessageDialog.InventoryDeclined im.dialog == (byte)InstantMessageDialog.InventoryDeclined
|| im.dialog == (byte)InstantMessageDialog.TaskInventoryDeclined) || im.dialog == (byte)InstantMessageDialog.TaskInventoryDeclined)

View File

@ -42,7 +42,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.Lure namespace OpenSim.Region.CoreModules.Avatar.Lure
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGLureModule")]
public class HGLureModule : ISharedRegionModule public class HGLureModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger( private static readonly ILog m_log = LogManager.GetLogger(

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -37,6 +38,7 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Avatar.Lure namespace OpenSim.Region.CoreModules.Avatar.Lure
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LureModule")]
public class LureModule : ISharedRegionModule public class LureModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger( private static readonly ILog m_log = LogManager.GetLogger(

View File

@ -42,7 +42,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Avatar.Profile namespace OpenSim.Region.CoreModules.Avatar.Profile
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "BasicProfileModule")]
public class BasicProfileModule : IProfileModule, ISharedRegionModule public class BasicProfileModule : IProfileModule, ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -43,7 +43,7 @@ using Caps=OpenSim.Framework.Capabilities.Caps;
namespace OpenSim.Region.CoreModules.Framework namespace OpenSim.Region.CoreModules.Framework
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "CapabilitiesModule")]
public class CapabilitiesModule : INonSharedRegionModule, ICapabilitiesModule public class CapabilitiesModule : INonSharedRegionModule, ICapabilitiesModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -43,9 +43,11 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.EntityTransfer namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "EntityTransferModule")]
public class EntityTransferModule : INonSharedRegionModule, IEntityTransferModule public class EntityTransferModule : INonSharedRegionModule, IEntityTransferModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -42,9 +42,11 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.EntityTransfer namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGEntityTransferModule")]
public class HGEntityTransferModule public class HGEntityTransferModule
: EntityTransferModule, INonSharedRegionModule, IEntityTransferModule, IUserAgentVerificationModule : EntityTransferModule, INonSharedRegionModule, IEntityTransferModule, IUserAgentVerificationModule
{ {

View File

@ -42,9 +42,11 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.InventoryAccess namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGInventoryAccessModule")]
public class HGInventoryAccessModule : BasicInventoryAccessModule, INonSharedRegionModule, IInventoryAccessModule public class HGInventoryAccessModule : BasicInventoryAccessModule, INonSharedRegionModule, IInventoryAccessModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -46,9 +46,11 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.InventoryAccess namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "BasicInventoryAccessModule")]
public class BasicInventoryAccessModule : INonSharedRegionModule, IInventoryAccessModule public class BasicInventoryAccessModule : INonSharedRegionModule, IInventoryAccessModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -180,12 +182,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
if (!m_Scene.Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) if (!m_Scene.Permissions.CanCreateUserInventory(invType, remoteClient.AgentId))
return; return;
InventoryFolderBase f = new InventoryFolderBase(folderID, remoteClient.AgentId);
InventoryFolderBase folder = m_Scene.InventoryService.GetFolder(f);
if (folder == null || folder.Owner != remoteClient.AgentId)
return;
if (transactionID == UUID.Zero) if (transactionID == UUID.Zero)
{ {
ScenePresence presence; ScenePresence presence;

View File

@ -41,10 +41,12 @@ using OpenSim.Server.Base;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
namespace OpenSim.Region.CoreModules.Framework.Library namespace OpenSim.Region.CoreModules.Framework.Library
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LibraryModule")]
public class LibraryModule : ISharedRegionModule public class LibraryModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -38,10 +38,12 @@ using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts;
using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors; using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.Monitoring namespace OpenSim.Region.CoreModules.Framework.Monitoring
{ {
public class MonitorModule : IRegionModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MonitorModule")]
public class MonitorModule : INonSharedRegionModule
{ {
/// <summary> /// <summary>
/// Is this module enabled? /// Is this module enabled?
@ -62,14 +64,14 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
private readonly List<IAlert> m_alerts = new List<IAlert>(); private readonly List<IAlert> m_alerts = new List<IAlert>();
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
#region Implementation of IRegionModule
public MonitorModule() public MonitorModule()
{ {
Enabled = true; Enabled = true;
} }
public void Initialise(Scene scene, IConfigSource source) #region Implementation of INonSharedRegionModule
public void Initialise(IConfigSource source)
{ {
IConfig cnfg = source.Configs["Monitoring"]; IConfig cnfg = source.Configs["Monitoring"];
@ -79,6 +81,13 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
if (!Enabled) if (!Enabled)
return; return;
}
public void AddRegion(Scene scene)
{
if (!Enabled)
return;
m_scene = scene; m_scene = scene;
m_scene.AddCommand("General", this, "monitor report", m_scene.AddCommand("General", this, "monitor report",
@ -89,101 +98,42 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
MainServer.Instance.AddHTTPHandler("/monitorstats/" + m_scene.RegionInfo.RegionID, StatsPage); MainServer.Instance.AddHTTPHandler("/monitorstats/" + m_scene.RegionInfo.RegionID, StatsPage);
MainServer.Instance.AddHTTPHandler( MainServer.Instance.AddHTTPHandler(
"/monitorstats/" + Uri.EscapeDataString(m_scene.RegionInfo.RegionName), StatsPage); "/monitorstats/" + Uri.EscapeDataString(m_scene.RegionInfo.RegionName), StatsPage);
AddMonitors();
} }
public void DebugMonitors(string module, string[] args) public void RemoveRegion(Scene scene)
{
foreach (IMonitor monitor in m_staticMonitors)
{
MainConsole.Instance.OutputFormat(
"[MONITOR MODULE]: {0} reports {1} = {2}",
m_scene.RegionInfo.RegionName, monitor.GetFriendlyName(), monitor.GetFriendlyValue());
}
foreach (KeyValuePair<string, float> tuple in m_scene.StatsReporter.GetExtraSimStats())
{
MainConsole.Instance.OutputFormat(
"[MONITOR MODULE]: {0} reports {1} = {2}",
m_scene.RegionInfo.RegionName, tuple.Key, tuple.Value);
}
}
public void TestAlerts()
{
foreach (IAlert alert in m_alerts)
{
alert.Test();
}
}
public Hashtable StatsPage(Hashtable request)
{
// If request was for a specific monitor
// eg url/?monitor=Monitor.Name
if (request.ContainsKey("monitor"))
{
string monID = (string) request["monitor"];
foreach (IMonitor monitor in m_staticMonitors)
{
string elemName = monitor.ToString();
if (elemName.StartsWith(monitor.GetType().Namespace))
elemName = elemName.Substring(monitor.GetType().Namespace.Length + 1);
if (elemName == monID || monitor.ToString() == monID)
{
Hashtable ereply3 = new Hashtable();
ereply3["int_response_code"] = 404; // 200 OK
ereply3["str_response_string"] = monitor.GetValue().ToString();
ereply3["content_type"] = "text/plain";
return ereply3;
}
}
// FIXME: Arguably this should also be done with dynamic monitors but I'm not sure what the above code
// is even doing. Why are we inspecting the type of the monitor???
// No monitor with that name
Hashtable ereply2 = new Hashtable();
ereply2["int_response_code"] = 404; // 200 OK
ereply2["str_response_string"] = "No such monitor";
ereply2["content_type"] = "text/plain";
return ereply2;
}
string xml = "<data>";
foreach (IMonitor monitor in m_staticMonitors)
{
string elemName = monitor.GetName();
xml += "<" + elemName + ">" + monitor.GetValue().ToString() + "</" + elemName + ">";
// m_log.DebugFormat("[MONITOR MODULE]: {0} = {1}", elemName, monitor.GetValue());
}
foreach (KeyValuePair<string, float> tuple in m_scene.StatsReporter.GetExtraSimStats())
{
xml += "<" + tuple.Key + ">" + tuple.Value + "</" + tuple.Key + ">";
}
xml += "</data>";
Hashtable ereply = new Hashtable();
ereply["int_response_code"] = 200; // 200 OK
ereply["str_response_string"] = xml;
ereply["content_type"] = "text/xml";
return ereply;
}
public void PostInitialise()
{ {
if (!Enabled) if (!Enabled)
return; return;
MainServer.Instance.RemoveHTTPHandler("GET", "/monitorstats/" + m_scene.RegionInfo.RegionID);
MainServer.Instance.RemoveHTTPHandler("GET", "/monitorstats/" + Uri.EscapeDataString(m_scene.RegionInfo.RegionName));
m_scene = null;
}
public void Close()
{
}
public string Name
{
get { return "Region Health Monitoring Module"; }
}
public void RegionLoaded(Scene scene)
{
}
public Type ReplaceableInterface
{
get { return null; }
}
#endregion
public void AddMonitors()
{
m_staticMonitors.Add(new AgentCountMonitor(m_scene)); m_staticMonitors.Add(new AgentCountMonitor(m_scene));
m_staticMonitors.Add(new ChildAgentCountMonitor(m_scene)); m_staticMonitors.Add(new ChildAgentCountMonitor(m_scene));
m_staticMonitors.Add(new GCMemoryMonitor()); m_staticMonitors.Add(new GCMemoryMonitor());
@ -357,25 +307,98 @@ namespace OpenSim.Region.CoreModules.Framework.Monitoring
} }
} }
public void DebugMonitors(string module, string[] args)
{
foreach (IMonitor monitor in m_staticMonitors)
{
MainConsole.Instance.OutputFormat(
"[MONITOR MODULE]: {0} reports {1} = {2}",
m_scene.RegionInfo.RegionName, monitor.GetFriendlyName(), monitor.GetFriendlyValue());
}
foreach (KeyValuePair<string, float> tuple in m_scene.StatsReporter.GetExtraSimStats())
{
MainConsole.Instance.OutputFormat(
"[MONITOR MODULE]: {0} reports {1} = {2}",
m_scene.RegionInfo.RegionName, tuple.Key, tuple.Value);
}
}
public void TestAlerts()
{
foreach (IAlert alert in m_alerts)
{
alert.Test();
}
}
public Hashtable StatsPage(Hashtable request)
{
// If request was for a specific monitor
// eg url/?monitor=Monitor.Name
if (request.ContainsKey("monitor"))
{
string monID = (string) request["monitor"];
foreach (IMonitor monitor in m_staticMonitors)
{
string elemName = monitor.ToString();
if (elemName.StartsWith(monitor.GetType().Namespace))
elemName = elemName.Substring(monitor.GetType().Namespace.Length + 1);
if (elemName == monID || monitor.ToString() == monID)
{
Hashtable ereply3 = new Hashtable();
ereply3["int_response_code"] = 404; // 200 OK
ereply3["str_response_string"] = monitor.GetValue().ToString();
ereply3["content_type"] = "text/plain";
return ereply3;
}
}
// FIXME: Arguably this should also be done with dynamic monitors but I'm not sure what the above code
// is even doing. Why are we inspecting the type of the monitor???
// No monitor with that name
Hashtable ereply2 = new Hashtable();
ereply2["int_response_code"] = 404; // 200 OK
ereply2["str_response_string"] = "No such monitor";
ereply2["content_type"] = "text/plain";
return ereply2;
}
string xml = "<data>";
foreach (IMonitor monitor in m_staticMonitors)
{
string elemName = monitor.GetName();
xml += "<" + elemName + ">" + monitor.GetValue().ToString() + "</" + elemName + ">";
// m_log.DebugFormat("[MONITOR MODULE]: {0} = {1}", elemName, monitor.GetValue());
}
foreach (KeyValuePair<string, float> tuple in m_scene.StatsReporter.GetExtraSimStats())
{
xml += "<" + tuple.Key + ">" + tuple.Value + "</" + tuple.Key + ">";
}
xml += "</data>";
Hashtable ereply = new Hashtable();
ereply["int_response_code"] = 200; // 200 OK
ereply["str_response_string"] = xml;
ereply["content_type"] = "text/xml";
return ereply;
}
void OnTriggerAlert(System.Type reporter, string reason, bool fatal) void OnTriggerAlert(System.Type reporter, string reason, bool fatal)
{ {
m_log.Error("[Monitor] " + reporter.Name + " for " + m_scene.RegionInfo.RegionName + " reports " + reason + " (Fatal: " + fatal + ")"); m_log.Error("[Monitor] " + reporter.Name + " for " + m_scene.RegionInfo.RegionName + " reports " + reason + " (Fatal: " + fatal + ")");
} }
public void Close()
{
}
public string Name
{
get { return "Region Health Monitoring Module"; }
}
public bool IsSharedModule
{
get { return false; }
}
#endregion
} }
} }

View File

@ -41,9 +41,11 @@ using OpenMetaverse;
using OpenMetaverse.Packets; using OpenMetaverse.Packets;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.UserManagement namespace OpenSim.Region.CoreModules.Framework.UserManagement
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGUserManagementModule")]
public class HGUserManagementModule : UserManagementModule, ISharedRegionModule, IUserManagement public class HGUserManagementModule : UserManagementModule, ISharedRegionModule, IUserManagement
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -42,6 +42,7 @@ using OpenMetaverse;
using OpenMetaverse.Packets; using OpenMetaverse.Packets;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Framework.UserManagement namespace OpenSim.Region.CoreModules.Framework.UserManagement
{ {
@ -54,6 +55,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
public Dictionary<string, object> ServerURLs { get; set; } public Dictionary<string, object> ServerURLs { get; set; }
} }
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "UserManagementModule")]
public class UserManagementModule : ISharedRegionModule, IUserManagement public class UserManagementModule : ISharedRegionModule, IUserManagement
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -31,6 +31,7 @@ using System.Reflection;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using Mono.Addins;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.CoreModules.World.WorldMap; using OpenSim.Region.CoreModules.World.WorldMap;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -39,6 +40,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Hypergrid namespace OpenSim.Region.CoreModules.Hypergrid
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGWorldMapModule")]
public class HGWorldMapModule : WorldMapModule public class HGWorldMapModule : WorldMapModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -1,150 +0,0 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Reflection;
using System.Text;
using log4net;
using Nini.Config;
using Nwc.XmlRpc;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
using OpenSim.Framework.Servers;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.InterGrid
{
public class OGSRadmin : IRegionModule
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private readonly List<Scene> m_scenes = new List<Scene>();
private IConfigSource m_settings;
#region Implementation of IRegionModuleBase
public string Name
{
get { return "OGS Supporting RAdmin"; }
}
public void Initialise(IConfigSource source)
{
m_settings = source;
}
public void Close()
{
}
public void AddRegion(Scene scene)
{
lock (m_scenes)
m_scenes.Add(scene);
}
public void RemoveRegion(Scene scene)
{
lock (m_scenes)
m_scenes.Remove(scene);
}
public void RegionLoaded(Scene scene)
{
}
public void PostInitialise()
{
if (m_settings.Configs["Startup"].GetBoolean("gridmode", false))
{
MainServer.Instance.AddXmlRPCHandler("grid_message", GridWideMessage);
}
}
#endregion
#region IRegionModule
public void Initialise(Scene scene, IConfigSource source)
{
m_settings = source;
lock (m_scenes)
m_scenes.Add(scene);
}
public bool IsSharedModule
{
get { return true; }
}
#endregion
public XmlRpcResponse GridWideMessage(XmlRpcRequest req, IPEndPoint remoteClient)
{
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
Hashtable requestData = (Hashtable)req.Params[0];
// REFACTORING PROBLEM. This authorization needs to be replaced with some other
//if ((!requestData.Contains("password") || (string)requestData["password"] != m_com.NetworkServersInfo.GridRecvKey))
//{
// responseData["accepted"] = false;
// responseData["success"] = false;
// responseData["error"] = "Invalid Key";
// response.Value = responseData;
// return response;
//}
string message = (string)requestData["message"];
string user = (string)requestData["user"];
m_log.InfoFormat("[RADMIN]: Broadcasting: {0}", message);
lock (m_scenes)
foreach (Scene scene in m_scenes)
{
IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>();
if (dialogModule != null)
dialogModule.SendNotificationToUsersInRegion(UUID.Random(), user, message);
}
responseData["accepted"] = true;
responseData["success"] = true;
response.Value = responseData;
return response;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Mono.Addins;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OpenSim.Region.CoreModules")]
[assembly: AssemblyDescription("Core modules for OpenSim")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OpenSim.Region.CoreModules.Properties")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("94f62dd1-bcf3-4218-9844-9a3996286e3e")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: Addin("OpenSim.Region.CoreModules", "0.1")]
[assembly: AddinDependency("OpenSim", "0.5")]

View File

@ -1,91 +0,0 @@
<Addin id="OpenSim.Region.CoreModules" version="0.3">
<Runtime>
<Import assembly="OpenSim.Region.CoreModules.dll"/>
</Runtime>
<Dependencies>
<Addin id="OpenSim" version="0.5" />
</Dependencies>
<Extension path = "/OpenSim/RegionModules">
<RegionModule id="UserManagementModule" type="OpenSim.Region.CoreModules.Framework.UserManagement.UserManagementModule" />
<RegionModule id="HGUserManagementModule" type="OpenSim.Region.CoreModules.Framework.UserManagement.HGUserManagementModule" />
<RegionModule id="EntityTransferModule" type="OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule" />
<RegionModule id="HGEntityTransferModule" type="OpenSim.Region.CoreModules.Framework.EntityTransfer.HGEntityTransferModule" />
<RegionModule id="InventoryAccessModule" type="OpenSim.Region.CoreModules.Framework.InventoryAccess.BasicInventoryAccessModule" />
<RegionModule id="HGInventoryAccessModule" type="OpenSim.Region.CoreModules.Framework.InventoryAccess.HGInventoryAccessModule" />
<RegionModule id="LandManagementModule" type="OpenSim.Region.CoreModules.World.Land.LandManagementModule" />
<RegionModule id="DwellModule" type="OpenSim.Region.CoreModules.World.Land.DwellModule" />
<RegionModule id="PrimCountModule" type="OpenSim.Region.CoreModules.World.Land.PrimCountModule" />
<RegionModule id="ExportSerialisationModule" type="OpenSim.Region.CoreModules.World.Serialiser.SerialiserModule" />
<RegionModule id="ArchiverModule" type="OpenSim.Region.CoreModules.World.Archiver.ArchiverModule" />
<RegionModule id="TerrainModule" type="OpenSim.Region.CoreModules.World.Terrain.TerrainModule" />
<RegionModule id="WorldMapModule" type="OpenSim.Region.CoreModules.World.WorldMap.WorldMapModule" />
<RegionModule id="Warp3DImageModule" type="OpenSim.Region.CoreModules.World.Warp3DMap.Warp3DImageModule" />
<RegionModule id="HGWorldMapModule" type="OpenSim.Region.CoreModules.Hypergrid.HGWorldMapModule" />
<RegionModule id="UrlModule" type="OpenSim.Region.CoreModules.Scripting.LSLHttp.UrlModule" />
<RegionModule id="Chat" type="OpenSim.Region.CoreModules.Avatar.Chat.ChatModule" />
<RegionModule id="FriendsModule" type="OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule" />
<RegionModule id="HGFriendsModule" type="OpenSim.Region.CoreModules.Avatar.Friends.HGFriendsModule" />
<RegionModule id="PresenceModule" type="OpenSim.Region.CoreModules.Avatar.InstantMessage.PresenceModule" />
<RegionModule id="MuteListModule" type="OpenSim.Region.CoreModules.Avatar.InstantMessage.MuteListModule" />
<RegionModule id="OfflineMessageModule" type="OpenSim.Region.CoreModules.Avatar.InstantMessage.OfflineMessageModule" />
<RegionModule id="InstantMessageModule" type="OpenSim.Region.CoreModules.Avatar.InstantMessage.InstantMessageModule" />
<RegionModule id="MessageTransferModule" type="OpenSim.Region.CoreModules.Avatar.InstantMessage.MessageTransferModule" />
<RegionModule id="LureModule" type="OpenSim.Region.CoreModules.Avatar.Lure.LureModule" />
<RegionModule id="InventoryTransferModule" type="OpenSim.Region.CoreModules.Avatar.Inventory.Transfer.InventoryTransferModule" />
<RegionModule id="CoreAssetCache" type="OpenSim.Region.CoreModules.Asset.CoreAssetCache" />
<RegionModule id="GlynnTuckerAssetCache" type="OpenSim.Region.CoreModules.Asset.GlynnTuckerAssetCache" />
<RegionModule id="CenomeMemoryAssetCache" type="OpenSim.Region.CoreModules.Asset.CenomeMemoryAssetCache"/>
<RegionModule id="LibraryModule" type="OpenSim.Region.CoreModules.Framework.Library.LibraryModule"/>
<!-- Service connectors OUT modules -->
<RegionModule id="LocalAssetServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.LocalAssetServicesConnector" />
<RegionModule id="RemoteAssetServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.RemoteAssetServicesConnector" />
<RegionModule id="LocalAvatarServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar.LocalAvatarServicesConnector" />
<RegionModule id="RemoteAvatarServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar.RemoteAvatarServicesConnector" />
<RegionModule id="LocalAuthenticationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication.LocalAuthenticationServicesConnector" />
<RegionModule id="RemoteAuthenticationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication.RemoteAuthenticationServicesConnector" />
<RegionModule id="LocalAuthorizationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization.LocalAuthorizationServicesConnector" />
<RegionModule id="RemoteAuthorizationServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization.RemoteAuthorizationServicesConnector" />
<RegionModule id="HGAssetBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.HGAssetBroker" />
<RegionModule id="LocalInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.LocalInventoryServicesConnector" />
<RegionModule id="RemoteXInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteXInventoryServicesConnector" />
<RegionModule id="HGInventoryBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker" />
<RegionModule id="LocalNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.LocalNeighbourServicesConnector" />
<RegionModule id="RemoteNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.RemoteNeighbourServicesConnector" />
<RegionModule id="LocalLandServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Land.LocalLandServicesConnector" />
<RegionModule id="RemoteLandServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Land.RemoteLandServicesConnector" />
<RegionModule id="LocalGridServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.LocalGridServicesConnector" />
<RegionModule id="RemoteGridServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.RemoteGridServicesConnector" />
<RegionModule id="LocalPresenceServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence.LocalPresenceServicesConnector" />
<RegionModule id="RemotePresenceServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence.RemotePresenceServicesConnector" />
<RegionModule id="LocalUserAccountServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts.LocalUserAccountServicesConnector" />
<RegionModule id="RemoteUserAccountServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts.RemoteUserAccountServicesConnector" />
<RegionModule id="LocalGridUserServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser.LocalGridUserServicesConnector" />
<RegionModule id="RemoteGridUserServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser.RemoteGridUserServicesConnector" />
<RegionModule id="LocalSimulationConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation.LocalSimulationConnectorModule" />
<RegionModule id="RemoteSimulationConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation.RemoteSimulationConnectorModule" />
<!-- Service connectors IN modules -->
<RegionModule id="AssetServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Asset.AssetServiceInConnectorModule" />
<RegionModule id="InventoryServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory.InventoryServiceInConnectorModule" />
<RegionModule id="LandServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Land.LandServiceInConnectorModule" />
<RegionModule id="NeighbourServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour.NeighbourServiceInConnectorModule" /> \
<RegionModule id="HypergridServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Hypergrid.HypergridServiceInConnectorModule" /> \
<RegionModule id="LLLoginServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Login.LLLoginServiceInConnectorModule" /> \
<RegionModule id="SimulationServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation.SimulationServiceInConnectorModule" /> \
<RegionModule id="GridInfoServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.GridInfoServiceInConnectorModule" /> \
<RegionModule id="AuthenticationServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Authentication.AuthenticationServiceInConnectorModule" />
<RegionModule id="AccessModule" type="OpenSim.Region.CoreModules.World.AccessModule" /> \
<RegionModule id="MapImageModule" type="OpenSim.Region.CoreModules.World.LegacyMap.MapImageModule" /> \
</Extension>
<Extension path = "/OpenSim/WindModule">
<WindModel id="ConfigurableWind" type="OpenSim.Region.CoreModules.World.Wind.Plugins.ConfigurableWind" />
<WindModel id="SimpleRandomWind" type="OpenSim.Region.CoreModules.World.Wind.Plugins.SimpleRandomWind" />
</Extension>
</Addin>

View File

@ -37,10 +37,12 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using log4net; using log4net;
using System.Reflection; using System.Reflection;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
{ {
public class DynamicTextureModule : IRegionModule, IDynamicTextureManager [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "DynamicTextureModule")]
public class DynamicTextureModule : ISharedRegionModule, IDynamicTextureManager
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -81,6 +83,16 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
/// </remarks> /// </remarks>
private Cache m_reuseableDynamicTextures; private Cache m_reuseableDynamicTextures;
/// <summary>
/// This constructor is only here because of the Unit Tests...
/// Don't use it.
/// </summary>
public DynamicTextureModule()
{
m_reuseableDynamicTextures = new Cache(CacheMedium.Memory, CacheStrategy.Conservative);
m_reuseableDynamicTextures.DefaultTTL = new TimeSpan(24, 0, 0);
}
#region IDynamicTextureManager Members #region IDynamicTextureManager Members
public void RegisterRender(string handleType, IDynamicTextureRender render) public void RegisterRender(string handleType, IDynamicTextureRender render)
@ -323,17 +335,30 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
#endregion #endregion
#region IRegionModule Members #region ISharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
IConfig texturesConfig = config.Configs["Textures"]; IConfig texturesConfig = config.Configs["Textures"];
if (texturesConfig != null) if (texturesConfig != null)
{ {
ReuseTextures = texturesConfig.GetBoolean("ReuseDynamicTextures", false); ReuseTextures = texturesConfig.GetBoolean("ReuseDynamicTextures", false);
ReuseLowDataTextures = texturesConfig.GetBoolean("ReuseDynamicLowDataTextures", false); ReuseLowDataTextures = texturesConfig.GetBoolean("ReuseDynamicLowDataTextures", false);
}
if (ReuseTextures)
{
m_reuseableDynamicTextures = new Cache(CacheMedium.Memory, CacheStrategy.Conservative);
m_reuseableDynamicTextures.DefaultTTL = new TimeSpan(24, 0, 0);
}
}
}
public void PostInitialise()
{
}
public void AddRegion(Scene scene)
{
if (!RegisteredScenes.ContainsKey(scene.RegionInfo.RegionID)) if (!RegisteredScenes.ContainsKey(scene.RegionInfo.RegionID))
{ {
RegisteredScenes.Add(scene.RegionInfo.RegionID, scene); RegisteredScenes.Add(scene.RegionInfo.RegionID, scene);
@ -341,13 +366,14 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
} }
} }
public void PostInitialise() public void RegionLoaded(Scene scene)
{ {
if (ReuseTextures) }
{
m_reuseableDynamicTextures = new Cache(CacheMedium.Memory, CacheStrategy.Conservative); public void RemoveRegion(Scene scene)
m_reuseableDynamicTextures.DefaultTTL = new TimeSpan(24, 0, 0); {
} if (RegisteredScenes.ContainsKey(scene.RegionInfo.RegionID))
RegisteredScenes.Remove(scene.RegionInfo.RegionID);
} }
public void Close() public void Close()
@ -359,9 +385,9 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
get { return "DynamicTextureModule"; } get { return "DynamicTextureModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion

View File

@ -37,10 +37,12 @@ using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Scripting.EmailModules namespace OpenSim.Region.CoreModules.Scripting.EmailModules
{ {
public class EmailModule : IRegionModule, IEmailModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "EmailModule")]
public class EmailModule : ISharedRegionModule, IEmailModule
{ {
// //
// Log // Log
@ -72,31 +74,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
private bool m_Enabled = false; private bool m_Enabled = false;
public void InsertEmail(UUID to, Email email) #region ISharedRegionModule
{
// It's tempting to create the queue here. Don't; objects which have
// not yet called GetNextEmail should have no queue, and emails to them
// should be silently dropped.
lock (m_MailQueues) public void Initialise(IConfigSource config)
{
if (m_MailQueues.ContainsKey(to))
{
if (m_MailQueues[to].Count >= m_MaxQueueSize)
{
// fail silently
return;
}
lock (m_MailQueues[to])
{
m_MailQueues[to].Add(email);
}
}
}
}
public void Initialise(Scene scene, IConfigSource config)
{ {
m_Config = config; m_Config = config;
IConfig SMTPConfig; IConfig SMTPConfig;
@ -129,36 +109,44 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT);
SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN);
SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD);
m_MaxEmailSize = SMTPConfig.GetInt("email_max_size", m_MaxEmailSize); m_MaxEmailSize = SMTPConfig.GetInt("email_max_size", m_MaxEmailSize);
} }
catch (Exception e) catch (Exception e)
{ {
m_log.Error("[EMAIL] DefaultEmailModule not configured: "+ e.Message); m_log.Error("[EMAIL] DefaultEmailModule not configured: " + e.Message);
m_Enabled = false; m_Enabled = false;
return; return;
} }
// It's a go! }
if (m_Enabled)
public void AddRegion(Scene scene)
{
if (!m_Enabled)
return;
// It's a go!
lock (m_Scenes)
{ {
lock (m_Scenes) // Claim the interface slot
scene.RegisterModuleInterface<IEmailModule>(this);
// Add to scene list
if (m_Scenes.ContainsKey(scene.RegionInfo.RegionHandle))
{ {
// Claim the interface slot m_Scenes[scene.RegionInfo.RegionHandle] = scene;
scene.RegisterModuleInterface<IEmailModule>(this); }
else
// Add to scene list {
if (m_Scenes.ContainsKey(scene.RegionInfo.RegionHandle)) m_Scenes.Add(scene.RegionInfo.RegionHandle, scene);
{
m_Scenes[scene.RegionInfo.RegionHandle] = scene;
}
else
{
m_Scenes.Add(scene.RegionInfo.RegionHandle, scene);
}
} }
m_log.Info("[EMAIL] Activated DefaultEmailModule");
} }
m_log.Info("[EMAIL] Activated DefaultEmailModule");
}
public void RemoveRegion(Scene scene)
{
} }
public void PostInitialise() public void PostInitialise()
@ -174,9 +162,39 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
get { return "DefaultEmailModule"; } get { return "DefaultEmailModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
}
public void RegionLoaded(Scene scene)
{
}
#endregion
public void InsertEmail(UUID to, Email email)
{
// It's tempting to create the queue here. Don't; objects which have
// not yet called GetNextEmail should have no queue, and emails to them
// should be silently dropped.
lock (m_MailQueues)
{
if (m_MailQueues.ContainsKey(to))
{
if (m_MailQueues[to].Count >= m_MaxQueueSize)
{
// fail silently
return;
}
lock (m_MailQueues[to])
{
m_MailQueues[to].Add(email);
}
}
}
} }
private bool IsLocal(UUID objectID) private bool IsLocal(UUID objectID)

View File

@ -41,6 +41,7 @@ using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
/***************************************************** /*****************************************************
* *
@ -87,7 +88,8 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Scripting.HttpRequest namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
{ {
public class HttpRequestModule : IRegionModule, IHttpRequestModule [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HttpRequestModule")]
public class HttpRequestModule : ISharedRegionModule, IHttpRequestModule
{ {
private object HttpListLock = new object(); private object HttpListLock = new object();
private int httpTimeout = 30000; private int httpTimeout = 30000;
@ -270,24 +272,38 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
#endregion #endregion
#region IRegionModule Members #region ISharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
m_scene = scene;
m_scene.RegisterModuleInterface<IHttpRequestModule>(this);
m_proxyurl = config.Configs["Startup"].GetString("HttpProxy"); m_proxyurl = config.Configs["Startup"].GetString("HttpProxy");
m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions"); m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions");
m_pendingRequests = new Dictionary<UUID, HttpRequestClass>(); m_pendingRequests = new Dictionary<UUID, HttpRequestClass>();
} }
public void AddRegion(Scene scene)
{
m_scene = scene;
m_scene.RegisterModuleInterface<IHttpRequestModule>(this);
}
public void RemoveRegion(Scene scene)
{
scene.UnregisterModuleInterface<IHttpRequestModule>(this);
if (scene == m_scene)
m_scene = null;
}
public void PostInitialise() public void PostInitialise()
{ {
} }
public void RegionLoaded(Scene scene)
{
}
public void Close() public void Close()
{ {
} }
@ -297,9 +313,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
get { return m_name; } get { return m_name; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion

View File

@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.Collections; using System.Collections;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -94,6 +95,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp
/// <summary> /// <summary>
/// This module provides external URLs for in-world scripts. /// This module provides external URLs for in-world scripts.
/// </summary> /// </summary>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "UrlModule")]
public class UrlModule : ISharedRegionModule, IUrlModule public class UrlModule : ISharedRegionModule, IUrlModule
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -37,10 +37,12 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using log4net; using log4net;
using System.Reflection; using System.Reflection;
using Mono.Addins;
namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL
{ {
public class LoadImageURLModule : IRegionModule, IDynamicTextureRender [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LoadImageURLModule")]
public class LoadImageURLModule : ISharedRegionModule, IDynamicTextureRender
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -104,22 +106,32 @@ namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL
#endregion #endregion
#region IRegionModule Members #region ISharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
if (m_scene == null)
{
m_scene = scene;
}
m_proxyurl = config.Configs["Startup"].GetString("HttpProxy"); m_proxyurl = config.Configs["Startup"].GetString("HttpProxy");
m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions"); m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions");
} }
public void PostInitialise() public void PostInitialise()
{ {
if (m_scene != null) }
public void AddRegion(Scene scene)
{
if (m_scene == null)
m_scene = scene;
}
public void RemoveRegion(Scene scene)
{
}
public void RegionLoaded(Scene scene)
{
if (m_textureManager == null && m_scene == scene)
{ {
m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>();
if (m_textureManager != null) if (m_textureManager != null)
@ -138,9 +150,9 @@ namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL
get { return m_name; } get { return m_name; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion
@ -172,6 +184,12 @@ namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL
private void HttpRequestReturn(IAsyncResult result) private void HttpRequestReturn(IAsyncResult result)
{ {
if (m_textureManager == null)
{
m_log.WarnFormat("[LOADIMAGEURLMODULE]: No texture manager. Can't function.");
return;
}
RequestState state = (RequestState) result.AsyncState; RequestState state = (RequestState) result.AsyncState;
WebRequest request = (WebRequest) state.Request; WebRequest request = (WebRequest) state.Request;
Stream stream = null; Stream stream = null;

View File

@ -38,7 +38,7 @@ using OpenMetaverse;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
namespace OpenSim.Region.OptionalModules.Scripting.ScriptModuleComms namespace OpenSim.Region.CoreModules.Scripting.ScriptModuleComms
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ScriptModuleCommsModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "ScriptModuleCommsModule")]
class ScriptModuleCommsModule : INonSharedRegionModule, IScriptModuleComms class ScriptModuleCommsModule : INonSharedRegionModule, IScriptModuleComms

View File

@ -40,12 +40,14 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using log4net; using log4net;
using System.Reflection; using System.Reflection;
using Mono.Addins;
//using Cairo; //using Cairo;
namespace OpenSim.Region.CoreModules.Scripting.VectorRender namespace OpenSim.Region.CoreModules.Scripting.VectorRender
{ {
public class VectorRenderModule : IRegionModule, IDynamicTextureRender [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "VectorRenderModule")]
public class VectorRenderModule : ISharedRegionModule, IDynamicTextureRender
{ {
// These fields exist for testing purposes, please do not remove. // These fields exist for testing purposes, please do not remove.
// private static bool s_flipper; // private static bool s_flipper;
@ -56,6 +58,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
private Scene m_scene; private Scene m_scene;
private IDynamicTextureManager m_textureManager; private IDynamicTextureManager m_textureManager;
private Graphics m_graph; private Graphics m_graph;
private string m_fontName = "Arial"; private string m_fontName = "Arial";
@ -103,6 +106,11 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
public bool AsyncConvertData(UUID id, string bodyData, string extraParams) public bool AsyncConvertData(UUID id, string bodyData, string extraParams)
{ {
if (m_textureManager == null)
{
m_log.Warn("[VECTORRENDERMODULE]: No texture manager. Can't function");
return false;
}
// XXX: This isn't actually being done asynchronously! // XXX: This isn't actually being done asynchronously!
m_textureManager.ReturnData(id, ConvertData(bodyData, extraParams)); m_textureManager.ReturnData(id, ConvertData(bodyData, extraParams));
@ -131,45 +139,49 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
#endregion #endregion
#region IRegionModule Members #region ISharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
if (m_scene == null)
{
m_scene = scene;
}
if (m_graph == null)
{
// We won't dispose of these explicitly since this module is only removed when the entire simulator
// is shut down.
Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb);
m_graph = Graphics.FromImage(bitmap);
}
IConfig cfg = config.Configs["VectorRender"]; IConfig cfg = config.Configs["VectorRender"];
if (null != cfg) if (null != cfg)
{ {
m_fontName = cfg.GetString("font_name", m_fontName); m_fontName = cfg.GetString("font_name", m_fontName);
} }
m_log.DebugFormat("[VECTORRENDERMODULE]: using font \"{0}\" for text rendering.", m_fontName); m_log.DebugFormat("[VECTORRENDERMODULE]: using font \"{0}\" for text rendering.", m_fontName);
// We won't dispose of these explicitly since this module is only removed when the entire simulator
// is shut down.
Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb);
m_graph = Graphics.FromImage(bitmap);
} }
public void PostInitialise() public void PostInitialise()
{ {
m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); }
if (m_textureManager != null)
public void AddRegion(Scene scene)
{
if (m_scene == null)
{ {
m_textureManager.RegisterRender(GetContentType(), this); m_scene = scene;
} }
}
// This code exists for testing purposes, please do not remove. public void RegionLoaded(Scene scene)
// s_asset1Data = m_scene.AssetService.Get("00000000-0000-1111-9999-000000000001").Data; {
// s_asset1Data = m_scene.AssetService.Get("9f4acf0d-1841-4e15-bdb8-3a12efc9dd8f").Data; if (m_textureManager == null && m_scene == scene)
{
m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>();
if (m_textureManager != null)
{
m_textureManager.RegisterRender(GetContentType(), this);
}
}
}
// Terrain dirt - smallest bin/assets file (6004 bytes) public void RemoveRegion(Scene scene)
// s_asset2Data = m_scene.AssetService.Get("b8d3965a-ad78-bf43-699b-bff8eca6c975").Data; {
} }
public void Close() public void Close()
@ -181,9 +193,9 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
get { return "VectorRenderModule"; } get { return "VectorRenderModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
} }
#endregion #endregion

View File

@ -29,8 +29,12 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Nini.Config; using Nini.Config;
using Mono.Addins;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -86,7 +90,8 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Scripting.WorldComm namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
public class WorldCommModule : IRegionModule, IWorldComm [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WorldCommModule")]
public class WorldCommModule : IWorldComm, INonSharedRegionModule
{ {
// private static readonly ILog m_log = // private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -99,9 +104,9 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
private int m_saydistance = 20; private int m_saydistance = 20;
private int m_shoutdistance = 100; private int m_shoutdistance = 100;
#region IRegionModule Members #region INonSharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
// wrap this in a try block so that defaults will work if // wrap this in a try block so that defaults will work if
// the config file doesn't specify otherwise. // the config file doesn't specify otherwise.
@ -109,23 +114,23 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
int maxhandles = 64; int maxhandles = 64;
try try
{ {
m_whisperdistance = config.Configs["Chat"].GetInt("whisper_distance", m_whisperdistance); m_whisperdistance = config.Configs["Chat"].GetInt(
m_saydistance = config.Configs["Chat"].GetInt("say_distance", m_saydistance); "whisper_distance", m_whisperdistance);
m_shoutdistance = config.Configs["Chat"].GetInt("shout_distance", m_shoutdistance); m_saydistance = config.Configs["Chat"].GetInt(
maxlisteners = config.Configs["LL-Functions"].GetInt("max_listens_per_region", maxlisteners); "say_distance", m_saydistance);
maxhandles = config.Configs["LL-Functions"].GetInt("max_listens_per_script", maxhandles); m_shoutdistance = config.Configs["Chat"].GetInt(
"shout_distance", m_shoutdistance);
maxlisteners = config.Configs["LL-Functions"].GetInt(
"max_listens_per_region", maxlisteners);
maxhandles = config.Configs["LL-Functions"].GetInt(
"max_listens_per_script", maxhandles);
} }
catch (Exception) catch (Exception)
{ {
} }
if (maxlisteners < 1) maxlisteners = int.MaxValue; if (maxlisteners < 1) maxlisteners = int.MaxValue;
if (maxhandles < 1) maxhandles = int.MaxValue; if (maxhandles < 1) maxhandles = int.MaxValue;
m_scene = scene;
m_scene.RegisterModuleInterface<IWorldComm>(this);
m_listenerManager = new ListenerManager(maxlisteners, maxhandles); m_listenerManager = new ListenerManager(maxlisteners, maxhandles);
m_scene.EventManager.OnChatFromClient += DeliverClientMessage;
m_scene.EventManager.OnChatBroadcast += DeliverClientMessage;
m_pendingQ = new Queue(); m_pendingQ = new Queue();
m_pending = Queue.Synchronized(m_pendingQ); m_pending = Queue.Synchronized(m_pendingQ);
} }
@ -134,6 +139,26 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
} }
public void AddRegion(Scene scene)
{
m_scene = scene;
m_scene.RegisterModuleInterface<IWorldComm>(this);
m_scene.EventManager.OnChatFromClient += DeliverClientMessage;
m_scene.EventManager.OnChatBroadcast += DeliverClientMessage;
}
public void RegionLoaded(Scene scene) { }
public void RemoveRegion(Scene scene)
{
if (scene != m_scene)
return;
m_scene.UnregisterModuleInterface<IWorldComm>(this);
m_scene.EventManager.OnChatBroadcast -= DeliverClientMessage;
m_scene.EventManager.OnChatBroadcast -= DeliverClientMessage;
}
public void Close() public void Close()
{ {
} }
@ -143,10 +168,7 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
get { return "WorldCommModule"; } get { return "WorldCommModule"; }
} }
public bool IsSharedModule public Type ReplaceableInterface { get { return null; } }
{
get { return false; }
}
#endregion #endregion
@ -278,7 +300,8 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
/// <param name="name">name of sender (object or avatar)</param> /// <param name="name">name of sender (object or avatar)</param>
/// <param name="id">key of sender (object or avatar)</param> /// <param name="id">key of sender (object or avatar)</param>
/// <param name="msg">msg to sent</param> /// <param name="msg">msg to sent</param>
public void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg, Vector3 position) public void DeliverMessage(ChatTypeEnum type, int channel,
string name, UUID id, string msg, Vector3 position)
{ {
// m_log.DebugFormat("[WorldComm] got[2] type {0}, channel {1}, name {2}, id {3}, msg {4}", // m_log.DebugFormat("[WorldComm] got[2] type {0}, channel {1}, name {2}, id {3}, msg {4}",
// type, channel, name, id, msg); // type, channel, name, id, msg);
@ -286,17 +309,21 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
// Determine which listen event filters match the given set of arguments, this results // Determine which listen event filters match the given set of arguments, this results
// in a limited set of listeners, each belonging a host. If the host is in range, add them // in a limited set of listeners, each belonging a host. If the host is in range, add them
// to the pending queue. // to the pending queue.
foreach (ListenerInfo li in m_listenerManager.GetListeners(UUID.Zero, channel, name, id, msg)) foreach (ListenerInfo li
in m_listenerManager.GetListeners(UUID.Zero, channel,
name, id, msg))
{ {
// Dont process if this message is from yourself! // Dont process if this message is from yourself!
if (li.GetHostID().Equals(id)) if (li.GetHostID().Equals(id))
continue; continue;
SceneObjectPart sPart = m_scene.GetSceneObjectPart(li.GetHostID()); SceneObjectPart sPart = m_scene.GetSceneObjectPart(
li.GetHostID());
if (sPart == null) if (sPart == null)
continue; continue;
double dis = Util.GetDistanceTo(sPart.AbsolutePosition, position); double dis = Util.GetDistanceTo(sPart.AbsolutePosition,
position);
switch (type) switch (type)
{ {
case ChatTypeEnum.Whisper: case ChatTypeEnum.Whisper:
@ -339,14 +366,16 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
/// <param name='msg'> /// <param name='msg'>
/// Message. /// Message.
/// </param> /// </param>
public void DeliverMessageTo(UUID target, int channel, Vector3 pos, string name, UUID id, string msg) public void DeliverMessageTo(UUID target, int channel, Vector3 pos,
string name, UUID id, string msg)
{ {
// Is id an avatar? // Is id an avatar?
ScenePresence sp = m_scene.GetScenePresence(target); ScenePresence sp = m_scene.GetScenePresence(target);
if (sp != null) if (sp != null)
{ {
// ignore if a child agent this is restricted to inside one region // ignore if a child agent this is restricted to inside one
// region
if (sp.IsChildAgent) if (sp.IsChildAgent)
return; return;
@ -355,8 +384,9 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
// non zero channel messages only go to the attachments // non zero channel messages only go to the attachments
if (channel == 0) if (channel == 0)
{ {
m_scene.SimChatToAgent(target, Utils.StringToBytes(msg), pos, name, id, false); m_scene.SimChatToAgent(target, Utils.StringToBytes(msg),
} pos, name, id, false);
}
else else
{ {
List<SceneObjectGroup> attachments = sp.GetAttachments(); List<SceneObjectGroup> attachments = sp.GetAttachments();
@ -372,13 +402,18 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
} }
// Need to check each attachment // Need to check each attachment
foreach (ListenerInfo li in m_listenerManager.GetListeners(UUID.Zero, channel, name, id, msg)) foreach (ListenerInfo li
in m_listenerManager.GetListeners(UUID.Zero,
channel, name, id, msg))
{ {
if (li.GetHostID().Equals(id)) if (li.GetHostID().Equals(id))
continue; continue;
if (m_scene.GetSceneObjectPart(li.GetHostID()) == null) if (m_scene.GetSceneObjectPart(
li.GetHostID()) == null)
{
continue; continue;
}
if (targets.Contains(li.GetHostID())) if (targets.Contains(li.GetHostID()))
QueueMessage(new ListenerInfo(li, name, id, msg)); QueueMessage(new ListenerInfo(li, name, id, msg));
@ -389,17 +424,20 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
} }
// No avatar found so look for an object // No avatar found so look for an object
foreach (ListenerInfo li in m_listenerManager.GetListeners(UUID.Zero, channel, name, id, msg)) foreach (ListenerInfo li
in m_listenerManager.GetListeners(UUID.Zero, channel,
name, id, msg))
{ {
// Dont process if this message is from yourself! // Dont process if this message is from yourself!
if (li.GetHostID().Equals(id)) if (li.GetHostID().Equals(id))
continue; continue;
SceneObjectPart sPart = m_scene.GetSceneObjectPart(li.GetHostID()); SceneObjectPart sPart = m_scene.GetSceneObjectPart(
li.GetHostID());
if (sPart == null) if (sPart == null)
continue; continue;
if ( li.GetHostID().Equals(target)) if (li.GetHostID().Equals(target))
{ {
QueueMessage(new ListenerInfo(li, name, id, msg)); QueueMessage(new ListenerInfo(li, name, id, msg));
break; break;
@ -453,9 +491,15 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
private void DeliverClientMessage(Object sender, OSChatMessage e) private void DeliverClientMessage(Object sender, OSChatMessage e)
{ {
if (null != e.Sender) if (null != e.Sender)
DeliverMessage(e.Type, e.Channel, e.Sender.Name, e.Sender.AgentId, e.Message, e.Position); {
DeliverMessage(e.Type, e.Channel, e.Sender.Name,
e.Sender.AgentId, e.Message, e.Position);
}
else else
DeliverMessage(e.Type, e.Channel, e.From, UUID.Zero, e.Message, e.Position); {
DeliverMessage(e.Type, e.Channel, e.From, UUID.Zero,
e.Message, e.Position);
}
} }
public Object[] GetSerializationData(UUID itemID) public Object[] GetSerializationData(UUID itemID)
@ -472,7 +516,8 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
public class ListenerManager public class ListenerManager
{ {
private Dictionary<int, List<ListenerInfo>> m_listeners = new Dictionary<int, List<ListenerInfo>>(); private Dictionary<int, List<ListenerInfo>> m_listeners =
new Dictionary<int, List<ListenerInfo>>();
private int m_maxlisteners; private int m_maxlisteners;
private int m_maxhandles; private int m_maxhandles;
private int m_curlisteners; private int m_curlisteners;
@ -530,14 +575,15 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
itemID, hostID, channel, name, id, msg, itemID, hostID, channel, name, id, msg,
regexBitfield); regexBitfield);
List<ListenerInfo> listeners; List<ListenerInfo> listeners;
if (!m_listeners.TryGetValue(channel,out listeners)) if (!m_listeners.TryGetValue(
{ channel, out listeners))
listeners = new List<ListenerInfo>(); {
m_listeners.Add(channel, listeners); listeners = new List<ListenerInfo>();
} m_listeners.Add(channel, listeners);
listeners.Add(li); }
m_curlisteners++; listeners.Add(li);
m_curlisteners++;
return newHandle; return newHandle;
} }
@ -550,11 +596,13 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
lock (m_listeners) lock (m_listeners)
{ {
foreach (KeyValuePair<int,List<ListenerInfo>> lis in m_listeners) foreach (KeyValuePair<int, List<ListenerInfo>> lis
in m_listeners)
{ {
foreach (ListenerInfo li in lis.Value) foreach (ListenerInfo li in lis.Value)
{ {
if (li.GetItemID().Equals(itemID) && li.GetHandle().Equals(handle)) if (li.GetItemID().Equals(itemID) &&
li.GetHandle().Equals(handle))
{ {
lis.Value.Remove(li); lis.Value.Remove(li);
if (lis.Value.Count == 0) if (lis.Value.Count == 0)
@ -577,13 +625,15 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
lock (m_listeners) lock (m_listeners)
{ {
foreach (KeyValuePair<int,List<ListenerInfo>> lis in m_listeners) foreach (KeyValuePair<int, List<ListenerInfo>> lis
in m_listeners)
{ {
foreach (ListenerInfo li in lis.Value) foreach (ListenerInfo li in lis.Value)
{ {
if (li.GetItemID().Equals(itemID)) if (li.GetItemID().Equals(itemID))
{ {
// store them first, else the enumerated bails on us // store them first, else the enumerated bails on
// us
removedListeners.Add(li); removedListeners.Add(li);
} }
} }
@ -610,11 +660,13 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
lock (m_listeners) lock (m_listeners)
{ {
foreach (KeyValuePair<int,List<ListenerInfo>> lis in m_listeners) foreach (KeyValuePair<int, List<ListenerInfo>> lis
in m_listeners)
{ {
foreach (ListenerInfo li in lis.Value) foreach (ListenerInfo li in lis.Value)
{ {
if (li.GetItemID().Equals(itemID) && li.GetHandle() == handle) if (li.GetItemID().Equals(itemID) &&
li.GetHandle() == handle)
{ {
li.Activate(); li.Activate();
// only one, bail out // only one, bail out
@ -629,11 +681,13 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
lock (m_listeners) lock (m_listeners)
{ {
foreach (KeyValuePair<int,List<ListenerInfo>> lis in m_listeners) foreach (KeyValuePair<int, List<ListenerInfo>> lis
in m_listeners)
{ {
foreach (ListenerInfo li in lis.Value) foreach (ListenerInfo li in lis.Value)
{ {
if (li.GetItemID().Equals(itemID) && li.GetHandle() == handle) if (li.GetItemID().Equals(itemID) &&
li.GetHandle() == handle)
{ {
li.Deactivate(); li.Deactivate();
// only one, bail out // only one, bail out
@ -644,19 +698,24 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
} }
} }
// non-locked access, since its always called in the context of the lock /// <summary>
/// non-locked access, since its always called in the context of the
/// lock
/// </summary>
/// <param name="itemID"></param>
/// <returns></returns>
private int GetNewHandle(UUID itemID) private int GetNewHandle(UUID itemID)
{ {
List<int> handles = new List<int>(); List<int> handles = new List<int>();
// build a list of used keys for this specific itemID... // build a list of used keys for this specific itemID...
foreach (KeyValuePair<int,List<ListenerInfo>> lis in m_listeners) foreach (KeyValuePair<int, List<ListenerInfo>> lis in m_listeners)
{ {
foreach (ListenerInfo li in lis.Value) foreach (ListenerInfo li in lis.Value)
{ {
if (li.GetItemID().Equals(itemID)) if (li.GetItemID().Equals(itemID))
handles.Add(li.GetHandle()); handles.Add(li.GetHandle());
} }
} }
// Note: 0 is NOT a valid handle for llListen() to return // Note: 0 is NOT a valid handle for llListen() to return
@ -685,17 +744,30 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
#endregion #endregion
// Theres probably a more clever and efficient way to /// <summary>
// do this, maybe with regex. /// Get listeners matching the input parameters.
// PM2008: Ha, one could even be smart and define a specialized Enumerator. /// </summary>
public List<ListenerInfo> GetListeners(UUID itemID, int channel, string name, UUID id, string msg) /// <remarks>
/// Theres probably a more clever and efficient way to do this, maybe
/// with regex.
/// PM2008: Ha, one could even be smart and define a specialized
/// Enumerator.
/// </remarks>
/// <param name="itemID"></param>
/// <param name="channel"></param>
/// <param name="name"></param>
/// <param name="id"></param>
/// <param name="msg"></param>
/// <returns></returns>
public List<ListenerInfo> GetListeners(UUID itemID, int channel,
string name, UUID id, string msg)
{ {
List<ListenerInfo> collection = new List<ListenerInfo>(); List<ListenerInfo> collection = new List<ListenerInfo>();
lock (m_listeners) lock (m_listeners)
{ {
List<ListenerInfo> listeners; List<ListenerInfo> listeners;
if (!m_listeners.TryGetValue(channel,out listeners)) if (!m_listeners.TryGetValue(channel, out listeners))
{ {
return collection; return collection;
} }
@ -706,7 +778,8 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
{ {
continue; continue;
} }
if (!itemID.Equals(UUID.Zero) && !li.GetItemID().Equals(itemID)) if (!itemID.Equals(UUID.Zero) &&
!li.GetItemID().Equals(itemID))
{ {
continue; continue;
} }
@ -771,28 +844,68 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
lock (m_listeners) lock (m_listeners)
{ {
if (!m_listeners.ContainsKey((int)item[2])) if (!m_listeners.ContainsKey((int)item[2]))
m_listeners.Add((int)item[2], new List<ListenerInfo>()); {
m_listeners.Add((int)item[2],
new List<ListenerInfo>());
}
m_listeners[(int)item[2]].Add(info); m_listeners[(int)item[2]].Add(info);
} }
idx+=dataItemLength; idx += dataItemLength;
} }
} }
} }
public class ListenerInfo : IWorldCommListenerInfo public class ListenerInfo : IWorldCommListenerInfo
{ {
private bool m_active; // Listener is active or not /// <summary>
private int m_handle; // Assigned handle of this listener /// Listener is active or not
private uint m_localID; // Local ID from script engine /// </summary>
private UUID m_itemID; // ID of the host script engine private bool m_active;
private UUID m_hostID; // ID of the host/scene part
private int m_channel; // Channel
private UUID m_id; // ID to filter messages from
private string m_name; // Object name to filter messages from
private string m_message; // The message
public ListenerInfo(int handle, uint localID, UUID ItemID, UUID hostID, int channel, string name, UUID id, string message) /// <summary>
/// Assigned handle of this listener
/// </summary>
private int m_handle;
/// <summary>
/// Local ID from script engine
/// </summary>
private uint m_localID;
/// <summary>
/// ID of the host script engine
/// </summary>
private UUID m_itemID;
/// <summary>
/// ID of the host/scene part
/// </summary>
private UUID m_hostID;
/// <summary>
/// Channel
/// </summary>
private int m_channel;
/// <summary>
/// ID to filter messages from
/// </summary>
private UUID m_id;
/// <summary>
/// Object name to filter messages from
/// </summary>
private string m_name;
/// <summary>
/// The message
/// </summary>
private string m_message;
public ListenerInfo(int handle, uint localID, UUID ItemID,
UUID hostID, int channel, string name, UUID id,
string message)
{ {
Initialise(handle, localID, ItemID, hostID, channel, name, id, Initialise(handle, localID, ItemID, hostID, channel, name, id,
message, 0); message, 0);
@ -806,17 +919,23 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
message, regexBitfield); message, regexBitfield);
} }
public ListenerInfo(ListenerInfo li, string name, UUID id, string message) public ListenerInfo(ListenerInfo li, string name, UUID id,
string message)
{ {
Initialise(li.m_handle, li.m_localID, li.m_itemID, li.m_hostID, li.m_channel, name, id, message, 0); Initialise(li.m_handle, li.m_localID, li.m_itemID, li.m_hostID,
li.m_channel, name, id, message, 0);
} }
public ListenerInfo(ListenerInfo li, string name, UUID id, string message, int regexBitfield) public ListenerInfo(ListenerInfo li, string name, UUID id,
string message, int regexBitfield)
{ {
Initialise(li.m_handle, li.m_localID, li.m_itemID, li.m_hostID, li.m_channel, name, id, message, regexBitfield); Initialise(li.m_handle, li.m_localID, li.m_itemID, li.m_hostID,
li.m_channel, name, id, message, regexBitfield);
} }
private void Initialise(int handle, uint localID, UUID ItemID, UUID hostID, int channel, string name, UUID id, string message, int regexBitfield) private void Initialise(int handle, uint localID, UUID ItemID,
UUID hostID, int channel, string name, UUID id,
string message, int regexBitfield)
{ {
m_active = true; m_active = true;
m_handle = handle; m_handle = handle;
@ -845,9 +964,12 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
return data; return data;
} }
public static ListenerInfo FromData(uint localID, UUID ItemID, UUID hostID, Object[] data) public static ListenerInfo FromData(uint localID, UUID ItemID,
UUID hostID, Object[] data)
{ {
ListenerInfo linfo = new ListenerInfo((int)data[1], localID, ItemID, hostID, (int)data[2], (string)data[3], (UUID)data[4], (string)data[5]); ListenerInfo linfo = new ListenerInfo((int)data[1], localID,
ItemID, hostID, (int)data[2], (string)data[3],
(UUID)data[4], (string)data[5]);
linfo.m_active = (bool)data[0]; linfo.m_active = (bool)data[0];
if (data.Length >= 7) if (data.Length >= 7)
{ {

View File

@ -40,6 +40,7 @@ using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
using Mono.Addins;
/***************************************************** /*****************************************************
* *
@ -76,7 +77,8 @@ using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.Scripting.XMLRPC namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
{ {
public class XMLRPCModule : IRegionModule, IXMLRPC [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "XMLRPCModule")]
public class XMLRPCModule : ISharedRegionModule, IXMLRPC
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -86,6 +88,10 @@ namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
private Dictionary<UUID, RPCChannelInfo> m_openChannels; private Dictionary<UUID, RPCChannelInfo> m_openChannels;
private Dictionary<UUID, SendRemoteDataRequest> m_pendingSRDResponses; private Dictionary<UUID, SendRemoteDataRequest> m_pendingSRDResponses;
private int m_remoteDataPort = 0; private int m_remoteDataPort = 0;
public int Port
{
get { return m_remoteDataPort; }
}
private Dictionary<UUID, RPCRequestInfo> m_rpcPending; private Dictionary<UUID, RPCRequestInfo> m_rpcPending;
private Dictionary<UUID, RPCRequestInfo> m_rpcPendingResponses; private Dictionary<UUID, RPCRequestInfo> m_rpcPendingResponses;
@ -94,34 +100,24 @@ namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
private int RemoteReplyScriptWait = 300; private int RemoteReplyScriptWait = 300;
private object XMLRPCListLock = new object(); private object XMLRPCListLock = new object();
#region IRegionModule Members #region ISharedRegionModule Members
public void Initialise(Scene scene, IConfigSource config) public void Initialise(IConfigSource config)
{ {
// We need to create these early because the scripts might be calling // We need to create these early because the scripts might be calling
// But since this gets called for every region, we need to make sure they // But since this gets called for every region, we need to make sure they
// get called only one time (or we lose any open channels) // get called only one time (or we lose any open channels)
if (null == m_openChannels) m_openChannels = new Dictionary<UUID, RPCChannelInfo>();
{ m_rpcPending = new Dictionary<UUID, RPCRequestInfo>();
m_openChannels = new Dictionary<UUID, RPCChannelInfo>(); m_rpcPendingResponses = new Dictionary<UUID, RPCRequestInfo>();
m_rpcPending = new Dictionary<UUID, RPCRequestInfo>(); m_pendingSRDResponses = new Dictionary<UUID, SendRemoteDataRequest>();
m_rpcPendingResponses = new Dictionary<UUID, RPCRequestInfo>();
m_pendingSRDResponses = new Dictionary<UUID, SendRemoteDataRequest>();
try try
{ {
m_remoteDataPort = config.Configs["XMLRPC"].GetInt("XmlRpcPort", m_remoteDataPort); m_remoteDataPort = config.Configs["XMLRPC"].GetInt("XmlRpcPort", m_remoteDataPort);
}
catch (Exception)
{
}
} }
catch (Exception)
if (!m_scenes.Contains(scene))
{ {
m_scenes.Add(scene);
scene.RegisterModuleInterface<IXMLRPC>(this);
} }
} }
@ -131,15 +127,44 @@ namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
{ {
// Start http server // Start http server
// Attach xmlrpc handlers // Attach xmlrpc handlers
// m_log.InfoFormat( // m_log.InfoFormat(
// "[XML RPC MODULE]: Starting up XMLRPC Server on port {0} for llRemoteData commands.", // "[XML RPC MODULE]: Starting up XMLRPC Server on port {0} for llRemoteData commands.",
// m_remoteDataPort); // m_remoteDataPort);
IHttpServer httpServer = MainServer.GetHttpServer((uint)m_remoteDataPort); IHttpServer httpServer = MainServer.GetHttpServer((uint)m_remoteDataPort);
httpServer.AddXmlRPCHandler("llRemoteData", XmlRpcRemoteData); httpServer.AddXmlRPCHandler("llRemoteData", XmlRpcRemoteData);
} }
} }
public void AddRegion(Scene scene)
{
if (!IsEnabled())
return;
if (!m_scenes.Contains(scene))
{
m_scenes.Add(scene);
scene.RegisterModuleInterface<IXMLRPC>(this);
}
}
public void RegionLoaded(Scene scene)
{
}
public void RemoveRegion(Scene scene)
{
if (!IsEnabled())
return;
if (m_scenes.Contains(scene))
{
scene.UnregisterModuleInterface<IXMLRPC>(this);
m_scenes.Remove(scene);
}
}
public void Close() public void Close()
{ {
} }
@ -149,14 +174,9 @@ namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
get { return m_name; } get { return m_name; }
} }
public bool IsSharedModule public Type ReplaceableInterface
{ {
get { return true; } get { return null; }
}
public int Port
{
get { return m_remoteDataPort; }
} }
#endregion #endregion

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -39,6 +40,7 @@ using OpenSim.Server.Handlers.Base;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Asset namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AssetServiceInConnectorModule")]
public class AssetServiceInConnectorModule : ISharedRegionModule public class AssetServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -47,7 +49,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Asset
private IConfigSource m_Config; private IConfigSource m_Config;
bool m_Registered = false; bool m_Registered = false;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -41,6 +42,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Authentication namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Authentication
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AuthenticationServiceInConnectorModule")]
public class AuthenticationServiceInConnectorModule : ISharedRegionModule public class AuthenticationServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -49,7 +51,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Authentication
private IConfigSource m_Config; private IConfigSource m_Config;
bool m_Registered = false; bool m_Registered = false;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -41,6 +42,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "GridInfoServiceInConnectorModule")]
public class GridInfoServiceInConnectorModule : ISharedRegionModule public class GridInfoServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -49,7 +51,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
private IConfigSource m_Config; private IConfigSource m_Config;
bool m_Registered = false; bool m_Registered = false;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -42,6 +43,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Hypergrid namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Hypergrid
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HypergridServiceInConnectorModule")]
public class HypergridServiceInConnectorModule : ISharedRegionModule public class HypergridServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -53,7 +55,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Hypergrid
private GatekeeperServiceInConnector m_HypergridHandler; private GatekeeperServiceInConnector m_HypergridHandler;
private UserAgentServerConnector m_UASHandler; private UserAgentServerConnector m_UASHandler;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -39,6 +40,7 @@ using OpenSim.Server.Handlers.Base;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "InventoryServiceInConnectorModule")]
public class InventoryServiceInConnectorModule : ISharedRegionModule public class InventoryServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -47,7 +49,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory
private IConfigSource m_Config; private IConfigSource m_Config;
bool m_Registered = false; bool m_Registered = false;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -42,6 +43,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LandServiceInConnectorModule")]
public class LandServiceInConnectorModule : ISharedRegionModule, ILandService public class LandServiceInConnectorModule : ISharedRegionModule, ILandService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -51,7 +53,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Land
private IConfigSource m_Config; private IConfigSource m_Config;
private List<Scene> m_Scenes = new List<Scene>(); private List<Scene> m_Scenes = new List<Scene>();
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -42,6 +43,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Login namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Login
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LLLoginServiceInConnectorModule")]
public class LLLoginServiceInConnectorModule : ISharedRegionModule public class LLLoginServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -51,7 +53,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Login
private IConfigSource m_Config; private IConfigSource m_Config;
private List<Scene> m_Scenes = new List<Scene>(); private List<Scene> m_Scenes = new List<Scene>();
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -42,7 +42,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.MapImage namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.MapImage
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MapImageServiceInConnectorModule")]
public class MapImageServiceInConnectorModule : ISharedRegionModule public class MapImageServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -50,7 +50,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.MapImage
private IConfigSource m_Config; private IConfigSource m_Config;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -41,6 +42,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "NeighbourServiceInConnectorModule")]
public class NeighbourServiceInConnectorModule : ISharedRegionModule, INeighbourService public class NeighbourServiceInConnectorModule : ISharedRegionModule, INeighbourService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -50,7 +52,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour
private IConfigSource m_Config; private IConfigSource m_Config;
private List<Scene> m_Scenes = new List<Scene>(); private List<Scene> m_Scenes = new List<Scene>();
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Reflection; using System.Reflection;
using System.Collections.Generic; using System.Collections.Generic;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
@ -40,7 +41,7 @@ using OpenSim.Server.Handlers.Base;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation
{ {
// Under construction [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "SimulationServiceInConnectorModule")]
public class SimulationServiceInConnectorModule : ISharedRegionModule public class SimulationServiceInConnectorModule : ISharedRegionModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -49,7 +50,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation
private IConfigSource m_Config; private IConfigSource m_Config;
bool m_Registered = false; bool m_Registered = false;
#region IRegionModule interface #region Region Module interface
public void Initialise(IConfigSource config) public void Initialise(IConfigSource config)
{ {

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -40,8 +41,8 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
{ {
public class HGAssetBroker : [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGAssetBroker")]
ISharedRegionModule, IAssetService public class HGAssetBroker : ISharedRegionModule, IAssetService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger( LogManager.GetLogger(

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -38,6 +39,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalAssetServicesConnector")]
public class LocalAssetServicesConnector : ISharedRegionModule, IAssetService public class LocalAssetServicesConnector : ISharedRegionModule, IAssetService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
@ -38,6 +39,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteAssetServicesConnector")]
public class RemoteAssetServicesConnector : public class RemoteAssetServicesConnector :
AssetServicesConnector, ISharedRegionModule, IAssetService AssetServicesConnector, ISharedRegionModule, IAssetService
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -39,6 +40,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalAuthenticationServicesConnector")]
public class LocalAuthenticationServicesConnector : ISharedRegionModule, IAuthenticationService public class LocalAuthenticationServicesConnector : ISharedRegionModule, IAuthenticationService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -28,6 +28,7 @@
using System; using System;
using Nini.Config; using Nini.Config;
using log4net; using log4net;
using Mono.Addins;
using System.Reflection; using System.Reflection;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -36,6 +37,7 @@ using OpenSim.Services.Connectors;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authentication
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteAuthenticationServicesConnector")]
public class RemoteAuthenticationServicesConnector : AuthenticationServicesConnector, public class RemoteAuthenticationServicesConnector : AuthenticationServicesConnector,
ISharedRegionModule, IAuthenticationService ISharedRegionModule, IAuthenticationService
{ {

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -39,6 +40,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalAuthorizationServicesConnector")]
public class LocalAuthorizationServicesConnector : INonSharedRegionModule, IAuthorizationService public class LocalAuthorizationServicesConnector : INonSharedRegionModule, IAuthorizationService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
@ -39,6 +40,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteAuthorizationServicesConnector")]
public class RemoteAuthorizationServicesConnector : public class RemoteAuthorizationServicesConnector :
AuthorizationServicesConnector, ISharedRegionModule, IAuthorizationService AuthorizationServicesConnector, ISharedRegionModule, IAuthorizationService
{ {

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -40,6 +41,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalAvatarServicesConnector")]
public class LocalAvatarServicesConnector : ISharedRegionModule, IAvatarService public class LocalAvatarServicesConnector : ISharedRegionModule, IAvatarService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -26,6 +26,7 @@
*/ */
using System; using System;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using log4net; using log4net;
using System.Reflection; using System.Reflection;
@ -36,6 +37,7 @@ using OpenSim.Services.Connectors;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Avatar
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteAvatarServicesConnector")]
public class RemoteAvatarServicesConnector : AvatarServicesConnector, public class RemoteAvatarServicesConnector : AvatarServicesConnector,
ISharedRegionModule, IAvatarService ISharedRegionModule, IAvatarService
{ {

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -41,6 +42,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalGridServicesConnector")]
public class LocalGridServicesConnector : ISharedRegionModule, IGridService public class LocalGridServicesConnector : ISharedRegionModule, IGridService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
@ -42,6 +43,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteGridServicesConnector")]
public class RemoteGridServicesConnector : ISharedRegionModule, IGridService public class RemoteGridServicesConnector : ISharedRegionModule, IGridService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -39,6 +40,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalGridUserServicesConnector")]
public class LocalGridUserServicesConnector : ISharedRegionModule, IGridUserService public class LocalGridUserServicesConnector : ISharedRegionModule, IGridUserService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -36,10 +36,12 @@ using OpenSim.Services.Connectors;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteGridUserServicesConnector")]
public class RemoteGridUserServicesConnector : ISharedRegionModule, IGridUserService public class RemoteGridUserServicesConnector : ISharedRegionModule, IGridUserService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -42,6 +43,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "HGInventoryBroker")]
public class HGInventoryBroker : ISharedRegionModule, IInventoryService public class HGInventoryBroker : ISharedRegionModule, IInventoryService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
@ -41,6 +42,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalInventoryServicesConnector")]
public class LocalInventoryServicesConnector : ISharedRegionModule, IInventoryService public class LocalInventoryServicesConnector : ISharedRegionModule, IInventoryService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -29,6 +29,7 @@ using log4net;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Monitoring; using OpenSim.Framework.Monitoring;
@ -40,6 +41,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteXInventoryServicesConnector")]
public class RemoteXInventoryServicesConnector : ISharedRegionModule, IInventoryService public class RemoteXInventoryServicesConnector : ISharedRegionModule, IInventoryService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -39,8 +40,8 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
{ {
public class LocalLandServicesConnector : [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalLandServicesConnector")]
ISharedRegionModule, ILandService public class LocalLandServicesConnector : ISharedRegionModule, ILandService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger( LogManager.GetLogger(

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
@ -41,6 +42,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteLandServicesConnector")]
public class RemoteLandServicesConnector : public class RemoteLandServicesConnector :
LandServicesConnector, ISharedRegionModule, ILandService LandServicesConnector, ISharedRegionModule, ILandService
{ {

View File

@ -52,7 +52,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
/// <remarks> /// <remarks>
/// </remarks> /// </remarks>
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MapImageServiceModule")]
public class MapImageServiceModule : ISharedRegionModule public class MapImageServiceModule : ISharedRegionModule
{ {
private static readonly ILog m_log = private static readonly ILog m_log =

View File

@ -29,6 +29,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
@ -39,6 +40,7 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalNeighbourServicesConnector")]
public class LocalNeighbourServicesConnector : public class LocalNeighbourServicesConnector :
ISharedRegionModule, INeighbourService ISharedRegionModule, INeighbourService
{ {

View File

@ -26,6 +26,7 @@
*/ */
using log4net; using log4net;
using Mono.Addins;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
@ -39,6 +40,7 @@ using OpenSim.Server.Base;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteNeighbourServicesConnector")]
public class RemoteNeighbourServicesConnector : public class RemoteNeighbourServicesConnector :
NeighbourServicesConnector, ISharedRegionModule, INeighbourService NeighbourServicesConnector, ISharedRegionModule, INeighbourService
{ {

View File

@ -36,10 +36,12 @@ using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalPresenceServicesConnector")]
public class LocalPresenceServicesConnector : ISharedRegionModule, IPresenceService public class LocalPresenceServicesConnector : ISharedRegionModule, IPresenceService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

View File

@ -37,10 +37,12 @@ using PresenceInfo = OpenSim.Services.Interfaces.PresenceInfo;
using OpenMetaverse; using OpenMetaverse;
using log4net; using log4net;
using Mono.Addins;
using Nini.Config; using Nini.Config;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
{ {
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemotePresenceServicesConnector")]
public class RemotePresenceServicesConnector : ISharedRegionModule, IPresenceService public class RemotePresenceServicesConnector : ISharedRegionModule, IPresenceService
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Some files were not shown because too many files have changed in this diff Show More