From f45a69821b04fd743b7e79ab594484d055e06226 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 22 Dec 2009 21:00:46 -0800 Subject: [PATCH 1/4] Added Close() to Inventory/Archiver/InventoryArchiveReadRequest, so that the stream can be closed. --- .../Inventory/Archiver/InventoryArchiveReadRequest.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index b7783899cd..f299b0cc62 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -174,7 +174,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver return nodesLoaded; } - + + public void Close() + { + if (m_loadStream != null) + m_loadStream.Close(); + } + /// /// Replicate the inventory paths in the archive to the user's inventory as necessary. /// From 9c294c566313c4d2a97d519b9efd08c7ca0f43db Mon Sep 17 00:00:00 2001 From: "dr scofield (aka dirk husemann)" Date: Wed, 23 Dec 2009 18:33:54 +0100 Subject: [PATCH 2/4] - commented out unused method ConvertIHttpClientContextToOSHttp --- .../Framework/Servers/HttpServer/BaseHttpServer.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 08f1becab0..857c584027 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -322,15 +322,15 @@ namespace OpenSim.Framework.Servers.HttpServer HandleRequest(req, resp); } - public void ConvertIHttpClientContextToOSHttp(object stateinfo) - { - HttpServerContextObj objstate = (HttpServerContextObj)stateinfo; + // public void ConvertIHttpClientContextToOSHttp(object stateinfo) + // { + // HttpServerContextObj objstate = (HttpServerContextObj)stateinfo; - OSHttpRequest request = objstate.oreq; - OSHttpResponse resp = objstate.oresp; + // OSHttpRequest request = objstate.oreq; + // OSHttpResponse resp = objstate.oresp; - HandleRequest(request,resp); - } + // HandleRequest(request,resp); + // } public virtual void HandleRequest(OSHttpRequest request, OSHttpResponse response) { From fddefff28479b6874235419dd5d26214afabb4f2 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Wed, 23 Dec 2009 10:34:11 -0800 Subject: [PATCH 3/4] Thank you kindly, Ziah for a patch that adds the channel to the class ChatEventArgs and retrieves it's value along with the others from the OSChatMessage in HandleChatPackage. With this the MRM Script can check if a ChatEvent is coming in on a specifc Channel. The Second Part adds the Method say(string msg , int channel) to send a chat message on the specified channel. The idea behind this is to enable MRM's to communicate with regular LSL or OSSL Scripts so that they may can act as a Backend to access a Database or do business Logic for those Scripts. Signed-off-by: Charles Krinke --- .../Scripting/Minimodule/Interfaces/IObject.cs | 2 ++ .../Scripting/Minimodule/Interfaces/IWorld.cs | 1 + .../OptionalModules/Scripting/Minimodule/SOPObject.cs | 9 +++++++++ .../Region/OptionalModules/Scripting/Minimodule/World.cs | 6 ++++-- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObject.cs index 19f72109dc..9d6466714e 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IObject.cs @@ -179,6 +179,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule /// /// The message to send to the user void Say(string msg); + + void Say(string msg,int channel); //// /// Grants access to the objects inventory diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IWorld.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IWorld.cs index 3c14ed5186..3b3b3d0e9e 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IWorld.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Interfaces/IWorld.cs @@ -41,6 +41,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule { public string Text; public IEntity Sender; + public int Channel; } public delegate void OnChatDelegate(IWorld sender, ChatEventArgs e); diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs index 143c45490f..9596d13a32 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs @@ -384,6 +384,15 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule m_rootScene.SimChat(msg, ChatTypeEnum.Say, sop.AbsolutePosition, sop.Name, sop.UUID, false); } + public void Say(string msg,int channel) + { + if (!CanEdit()) + return; + + SceneObjectPart sop = GetSOP(); + m_rootScene.SimChat(Utils.StringToBytes(msg), ChatTypeEnum.Say,channel, sop.AbsolutePosition, sop.Name, sop.UUID, false); + } + #endregion diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs index 6fcb5d04f3..82020cb4cc 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs @@ -148,7 +148,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule ChatEventArgs e = new ChatEventArgs(); e.Sender = new SOPObject(m_internalScene, ((SceneObjectPart) chat.SenderObject).LocalId, m_security); e.Text = chat.Message; - + e.Channel = chat.Channel; + _OnChat(this, e); return; } @@ -158,7 +159,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule ChatEventArgs e = new ChatEventArgs(); e.Sender = new SPAvatar(m_internalScene, chat.SenderUUID, m_security); e.Text = chat.Message; - + e.Channel = chat.Channel; + _OnChat(this, e); return; } From c27aa3749c093d87b7d3216e7045d9fab948b4e1 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 23 Dec 2009 11:45:39 -0800 Subject: [PATCH 4/4] Change in how the Library returns its descendant folders, so that it includes folders added after the initial load off the file system, by other mechanisms. --- .../Communications/Cache/LibraryRootFolder.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs index 42e6510683..74ba0a5668 100644 --- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs +++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs @@ -232,7 +232,26 @@ namespace OpenSim.Framework.Communications.Cache /// public Dictionary RequestSelfAndDescendentFolders() { - return libraryFolders; + Dictionary fs = new Dictionary(); + fs.Add(ID, this); + List fis = TraverseFolder(this); + foreach (InventoryFolderImpl f in fis) + { + fs.Add(f.ID, f); + } + //return libraryFolders; + return fs; + } + + private List TraverseFolder(InventoryFolderImpl node) + { + List folders = node.RequestListOfFolderImpls(); + List subs = new List(); + foreach (InventoryFolderImpl f in folders) + subs.AddRange(TraverseFolder(f)); + + folders.AddRange(subs); + return folders; } } }