diff options
Diffstat (limited to 'OpenSim/Server')
-rw-r--r-- | OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 040c840..cb9b65d 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs | |||
@@ -114,6 +114,8 @@ namespace OpenSim.Server.Handlers.Asset | |||
114 | return HandleCreateUserInventory(request); | 114 | return HandleCreateUserInventory(request); |
115 | case "GETINVENTORYSKELETON": | 115 | case "GETINVENTORYSKELETON": |
116 | return HandleGetInventorySkeleton(request); | 116 | return HandleGetInventorySkeleton(request); |
117 | case "GETUSERINVENTORY": | ||
118 | return HandleGetUserInventory(request); | ||
117 | case "GETROOTFOLDER": | 119 | case "GETROOTFOLDER": |
118 | return HandleGetRootFolder(request); | 120 | return HandleGetRootFolder(request); |
119 | case "GETFOLDERFORTYPE": | 121 | case "GETFOLDERFORTYPE": |
@@ -153,7 +155,7 @@ namespace OpenSim.Server.Handlers.Asset | |||
153 | } | 155 | } |
154 | catch (Exception e) | 156 | catch (Exception e) |
155 | { | 157 | { |
156 | m_log.DebugFormat("[XINVENTORY HANDLER]: Exception {0}", e); | 158 | m_log.DebugFormat("[XINVENTORY HANDLER]: Exception {0}", e.StackTrace); |
157 | } | 159 | } |
158 | 160 | ||
159 | return FailureResult(); | 161 | return FailureResult(); |
@@ -248,6 +250,45 @@ namespace OpenSim.Server.Handlers.Asset | |||
248 | return encoding.GetBytes(xmlString); | 250 | return encoding.GetBytes(xmlString); |
249 | } | 251 | } |
250 | 252 | ||
253 | byte[] HandleGetUserInventory(Dictionary<string, object> request) | ||
254 | { | ||
255 | Dictionary<string, object> result = new Dictionary<string, object>(); | ||
256 | UUID principal = UUID.Zero; | ||
257 | UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); | ||
258 | |||
259 | InventoryCollection icoll = m_InventoryService.GetUserInventory(principal); | ||
260 | if (icoll != null) | ||
261 | { | ||
262 | Dictionary<string, object> folders = new Dictionary<string, object>(); | ||
263 | int i = 0; | ||
264 | if (icoll.Folders != null) | ||
265 | { | ||
266 | foreach (InventoryFolderBase f in icoll.Folders) | ||
267 | { | ||
268 | folders["folder_" + i.ToString()] = EncodeFolder(f); | ||
269 | i++; | ||
270 | } | ||
271 | result["FOLDERS"] = folders; | ||
272 | } | ||
273 | if (icoll.Items != null) | ||
274 | { | ||
275 | i = 0; | ||
276 | Dictionary<string, object> items = new Dictionary<string, object>(); | ||
277 | foreach (InventoryItemBase it in icoll.Items) | ||
278 | { | ||
279 | items["item_" + i.ToString()] = EncodeItem(it); | ||
280 | i++; | ||
281 | } | ||
282 | result["ITEMS"] = items; | ||
283 | } | ||
284 | } | ||
285 | |||
286 | string xmlString = ServerUtils.BuildXmlResponse(result); | ||
287 | //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); | ||
288 | UTF8Encoding encoding = new UTF8Encoding(); | ||
289 | return encoding.GetBytes(xmlString); | ||
290 | } | ||
291 | |||
251 | byte[] HandleGetRootFolder(Dictionary<string,object> request) | 292 | byte[] HandleGetRootFolder(Dictionary<string,object> request) |
252 | { | 293 | { |
253 | Dictionary<string,object> result = new Dictionary<string,object>(); | 294 | Dictionary<string,object> result = new Dictionary<string,object>(); |
@@ -293,22 +334,27 @@ namespace OpenSim.Server.Handlers.Asset | |||
293 | if (icoll != null) | 334 | if (icoll != null) |
294 | { | 335 | { |
295 | Dictionary<string, object> folders = new Dictionary<string, object>(); | 336 | Dictionary<string, object> folders = new Dictionary<string, object>(); |
296 | int i = 0; | 337 | int i = 0; |
297 | foreach (InventoryFolderBase f in icoll.Folders) | 338 | if (icoll.Folders != null) |
298 | { | 339 | { |
299 | folders["folder_" + i.ToString()] = EncodeFolder(f); | 340 | foreach (InventoryFolderBase f in icoll.Folders) |
300 | i++; | 341 | { |
342 | folders["folder_" + i.ToString()] = EncodeFolder(f); | ||
343 | i++; | ||
344 | } | ||
345 | result["FOLDERS"] = folders; | ||
301 | } | 346 | } |
302 | result["FOLDERS"] = folders; | 347 | if (icoll.Items != null) |
303 | |||
304 | i = 0; | ||
305 | Dictionary<string, object> items = new Dictionary<string, object>(); | ||
306 | foreach (InventoryItemBase it in icoll.Items) | ||
307 | { | 348 | { |
308 | items["item_" + i.ToString()] = EncodeItem(it); | 349 | i = 0; |
309 | i++; | 350 | Dictionary<string, object> items = new Dictionary<string, object>(); |
351 | foreach (InventoryItemBase it in icoll.Items) | ||
352 | { | ||
353 | items["item_" + i.ToString()] = EncodeItem(it); | ||
354 | i++; | ||
355 | } | ||
356 | result["ITEMS"] = items; | ||
310 | } | 357 | } |
311 | result["ITEMS"] = items; | ||
312 | } | 358 | } |
313 | 359 | ||
314 | string xmlString = ServerUtils.BuildXmlResponse(result); | 360 | string xmlString = ServerUtils.BuildXmlResponse(result); |