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;
}
}
}
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)
{
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index b7783899cd..0ced2f90dd 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.
///
@@ -258,6 +264,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
= rawDirsToCreate[i].LastIndexOf(
ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR);
+ if (identicalNameIdentifierIndex < 0)
+ {
+ i++;
+ continue;
+ }
string newFolderName = rawDirsToCreate[i].Remove(identicalNameIdentifierIndex);
newFolderName = InventoryArchiveUtils.UnescapeArchivePath(newFolderName);
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;
}