From 1e743eab6d620a14876a1ec9b41b3e136af889d3 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 27 Apr 2010 03:48:49 +0100 Subject: Allow a client to pass a scope id to log into in the login XML / LLSD --- OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs index aaa958b..daf2704 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs @@ -72,6 +72,9 @@ namespace OpenSim.Server.Handlers.Login string last = requestData["last"].ToString(); string passwd = requestData["passwd"].ToString(); string startLocation = string.Empty; + UUID scopeID = UUID.Zero; + if (requestData["scope_id"] != null) + scopeID = new UUID(requestData["scope_id"].ToString()); if (requestData.ContainsKey("start")) startLocation = requestData["start"].ToString(); @@ -83,7 +86,7 @@ namespace OpenSim.Server.Handlers.Login m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); LoginResponse reply = null; - reply = m_LocalService.Login(first, last, passwd, startLocation, remoteClient); + reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, remoteClient); XmlRpcResponse response = new XmlRpcResponse(); response.Value = reply.ToHashtable(); @@ -109,10 +112,15 @@ namespace OpenSim.Server.Handlers.Login if (map.ContainsKey("start")) startLocation = map["start"].AsString(); + UUID scopeID = UUID.Zero; + + if (map.ContainsKey("scope_id")) + scopeID = new UUID(map["scope_id"].AsString()); + m_log.Info("[LOGIN]: LLSD Login Requested for: '" + map["first"].AsString() + "' '" + map["last"].AsString() + "' / " + startLocation); LoginResponse reply = null; - reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, remoteClient); + reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID, remoteClient); return reply.ToOSDMap(); } -- cgit v1.1 From 76e87181b2cfd7a9dd7a73367fd4fe5c26ccd6ce Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 26 Apr 2010 20:28:37 -0700 Subject: RemoteXInventoryServiceConnector, the plugin region module. Not active in default configs yet. --- .../Handlers/Inventory/XInventoryInConnector.cs | 48 +++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 34f7dcc..7164520 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs @@ -144,6 +144,8 @@ namespace OpenSim.Server.Handlers.Asset return HandleGetActiveGestures(request); case "GETASSETPERMISSIONS": return HandleGetAssetPermissions(request); + case "GETSYSTEMFOLDERS": + return HandleGetSystemFolders(request); } m_log.DebugFormat("[XINVENTORY HANDLER]: unknown method request: {0}", method); } @@ -197,7 +199,7 @@ namespace OpenSim.Server.Handlers.Asset return ms.ToArray(); } - + byte[] HandleCreateUserInventory(Dictionary request) { Dictionary result = new Dictionary(); @@ -540,6 +542,24 @@ namespace OpenSim.Server.Handlers.Asset return encoding.GetBytes(xmlString); } + byte[] HandleGetSystemFolders(Dictionary request) + { + Dictionary result = new Dictionary(); + UUID principal = UUID.Zero; + UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); + + Dictionary sfolders = GetSystemFolders(principal); + + if (sfolders != null) + foreach (KeyValuePair kvp in sfolders) + result[kvp.Key.ToString()] = EncodeFolder(kvp.Value); + + string xmlString = ServerUtils.BuildXmlResponse(result); + m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + UTF8Encoding encoding = new UTF8Encoding(); + return encoding.GetBytes(xmlString); + } + private Dictionary EncodeFolder(InventoryFolderBase f) { Dictionary ret = new Dictionary(); @@ -623,5 +643,31 @@ namespace OpenSim.Server.Handlers.Asset return item; } + + #region Extra + private Dictionary GetSystemFolders(UUID userID) + { + InventoryFolderBase root = m_InventoryService.GetRootFolder(userID); + if (root != null) + { + InventoryCollection content = m_InventoryService.GetFolderContent(userID, root.ID); + if (content != null) + { + Dictionary folders = new Dictionary(); + foreach (InventoryFolderBase folder in content.Folders) + { + if ((folder.Type != (short)AssetType.Folder) && (folder.Type != (short)AssetType.Unknown)) + folders[(AssetType)folder.Type] = folder; + } + // Put the root folder there, as type Folder + folders[AssetType.Folder] = root; + return folders; + } + } + m_log.WarnFormat("[INVENTORY SERVICE]: System folders for {0} not found", userID); + return new Dictionary(); + } + #endregion + } } -- cgit v1.1 From 3f9d38538e4d7f238eb901aced60de7e6673a92e Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 27 Apr 2010 11:01:56 -0700 Subject: XInventory connector/handler showing signs of life. Tested, but needs more testing. --- .../Handlers/Inventory/XInventoryInConnector.cs | 69 +++++++++++++++++----- 1 file changed, 54 insertions(+), 15 deletions(-) (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 7164520..c95b4d4 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs @@ -228,9 +228,17 @@ namespace OpenSim.Server.Handlers.Asset List folders = m_InventoryService.GetInventorySkeleton(new UUID(request["PRINCIPAL"].ToString())); + Dictionary sfolders = new Dictionary(); if (folders != null) + { + int i = 0; foreach (InventoryFolderBase f in folders) - result[f.ID.ToString()] = EncodeFolder(f); + { + sfolders["folder_" + i.ToString()] = EncodeFolder(f); + i++; + } + } + result["FOLDERS"] = sfolders; string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -246,7 +254,7 @@ namespace OpenSim.Server.Handlers.Asset UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); InventoryFolderBase rfolder = m_InventoryService.GetRootFolder(principal); if (rfolder != null) - result[rfolder.ID.ToString()] = EncodeFolder(rfolder); + result["folder"] = EncodeFolder(rfolder); string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -263,7 +271,7 @@ namespace OpenSim.Server.Handlers.Asset Int32.TryParse(request["TYPE"].ToString(), out type); InventoryFolderBase folder = m_InventoryService.GetFolderForType(principal, (AssetType)type); if (folder != null) - result[folder.ID.ToString()] = EncodeFolder(folder); + result["folder"] = EncodeFolder(folder); string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -283,13 +291,21 @@ namespace OpenSim.Server.Handlers.Asset if (icoll != null) { Dictionary folders = new Dictionary(); + int i = 0; foreach (InventoryFolderBase f in icoll.Folders) - folders[f.ID.ToString()] = EncodeFolder(f); + { + folders["folder_" + i.ToString()] = EncodeFolder(f); + i++; + } result["FOLDERS"] = folders; + i = 0; Dictionary items = new Dictionary(); - foreach (InventoryItemBase i in icoll.Items) - items[i.ID.ToString()] = EncodeItem(i); + foreach (InventoryItemBase it in icoll.Items) + { + items["item_" + i.ToString()] = EncodeItem(it); + i++; + } result["ITEMS"] = items; } @@ -308,9 +324,18 @@ namespace OpenSim.Server.Handlers.Asset UUID.TryParse(request["FOLDER"].ToString(), out folderID); List items = m_InventoryService.GetFolderItems(principal, folderID); + Dictionary sitems = new Dictionary(); + if (items != null) + { + int i = 0; foreach (InventoryItemBase item in items) - result[item.ID.ToString()] = EncodeItem(item); + { + sitems["item_" + i.ToString()] = EncodeItem(item); + i++; + } + } + result["ITEMS"] = sitems; string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -483,7 +508,7 @@ namespace OpenSim.Server.Handlers.Asset InventoryItemBase item = new InventoryItemBase(id); item = m_InventoryService.GetItem(item); if (item != null) - result[item.ID.ToString()] = EncodeItem(item); + result["item"] = EncodeItem(item); string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -500,7 +525,7 @@ namespace OpenSim.Server.Handlers.Asset InventoryFolderBase folder = new InventoryFolderBase(id); folder = m_InventoryService.GetFolder(folder); if (folder != null) - result[folder.ID.ToString()] = EncodeFolder(folder); + result["folder"] = EncodeFolder(folder); string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -515,9 +540,17 @@ namespace OpenSim.Server.Handlers.Asset UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); List gestures = m_InventoryService.GetActiveGestures(principal); + Dictionary items = new Dictionary(); if (gestures != null) + { + int i = 0; foreach (InventoryItemBase item in gestures) - result[item.ID.ToString()] = EncodeItem(item); + { + items["item_" + i.ToString()] = EncodeItem(item); + i++; + } + } + result["ITEMS"] = items; string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -549,10 +582,16 @@ namespace OpenSim.Server.Handlers.Asset UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); Dictionary sfolders = GetSystemFolders(principal); + m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count); - if (sfolders != null) - foreach (KeyValuePair kvp in sfolders) - result[kvp.Key.ToString()] = EncodeFolder(kvp.Value); + Dictionary folders = new Dictionary(); + int i = 0; + foreach (KeyValuePair kvp in sfolders) + { + folders["folder_" + i.ToString()] = EncodeFolder(kvp.Value); + i++; + } + result["FOLDERS"] = folders; string xmlString = ServerUtils.BuildXmlResponse(result); m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); @@ -589,7 +628,7 @@ namespace OpenSim.Server.Handlers.Asset ret["Flags"] = item.Flags.ToString(); ret["Folder"] = item.Folder.ToString(); ret["GroupID"] = item.GroupID.ToString(); - ret["GroupedOwned"] = item.GroupOwned.ToString(); + ret["GroupOwned"] = item.GroupOwned.ToString(); ret["GroupPermissions"] = item.GroupPermissions.ToString(); ret["ID"] = item.ID.ToString(); ret["InvType"] = item.InvType.ToString(); @@ -664,7 +703,7 @@ namespace OpenSim.Server.Handlers.Asset return folders; } } - m_log.WarnFormat("[INVENTORY SERVICE]: System folders for {0} not found", userID); + m_log.WarnFormat("[XINVENTORY SERVICE]: System folders for {0} not found", userID); return new Dictionary(); } #endregion -- cgit v1.1 From 2c595227b030221a0fa2ca2765b3bd3f053deac7 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Wed, 28 Apr 2010 07:41:16 -0700 Subject: Commented verbose debug messages from XInventory handler. --- .../Handlers/Inventory/XInventoryInConnector.cs | 26 +++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index c95b4d4..16b05df 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs @@ -91,7 +91,7 @@ namespace OpenSim.Server.Handlers.Asset sr.Close(); body = body.Trim(); - m_log.DebugFormat("[XXX]: query String: {0}", body); + //m_log.DebugFormat("[XXX]: query String: {0}", body); try { @@ -213,7 +213,7 @@ namespace OpenSim.Server.Handlers.Asset result["RESULT"] = "False"; string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -241,7 +241,7 @@ namespace OpenSim.Server.Handlers.Asset result["FOLDERS"] = sfolders; string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -257,7 +257,7 @@ namespace OpenSim.Server.Handlers.Asset result["folder"] = EncodeFolder(rfolder); string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -274,7 +274,7 @@ namespace OpenSim.Server.Handlers.Asset result["folder"] = EncodeFolder(folder); string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -310,7 +310,7 @@ namespace OpenSim.Server.Handlers.Asset } string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -338,7 +338,7 @@ namespace OpenSim.Server.Handlers.Asset result["ITEMS"] = sitems; string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -511,7 +511,7 @@ namespace OpenSim.Server.Handlers.Asset result["item"] = EncodeItem(item); string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -528,7 +528,7 @@ namespace OpenSim.Server.Handlers.Asset result["folder"] = EncodeFolder(folder); string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -553,7 +553,7 @@ namespace OpenSim.Server.Handlers.Asset result["ITEMS"] = items; string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -570,7 +570,7 @@ namespace OpenSim.Server.Handlers.Asset result["RESULT"] = perms.ToString(); string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } @@ -582,7 +582,7 @@ namespace OpenSim.Server.Handlers.Asset UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); Dictionary sfolders = GetSystemFolders(principal); - m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count); + //m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count); Dictionary folders = new Dictionary(); int i = 0; @@ -594,7 +594,7 @@ namespace OpenSim.Server.Handlers.Asset result["FOLDERS"] = folders; string xmlString = ServerUtils.BuildXmlResponse(result); - m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); + //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(xmlString); } -- cgit v1.1