From 6b9cc6c48d7b49cc4bce5dce4e66d7856a093b75 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 13 Aug 2009 11:30:29 -0700 Subject: Inventory redirects from CachedUserInfo to InventoryService COMPLETE! --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 7633b7b..aaa236c 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -6609,20 +6609,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP } else // Agent { - CachedUserInfo userInfo = ((Scene)m_scene).CommsManager.UserProfileCacheService.GetUserDetails(AgentId); - if (userInfo == null) - { - m_log.ErrorFormat( - "[CLIENT]: Could not resolve user {0} for caps inventory update", - AgentId); - - break; - } - - if (userInfo.RootFolder == null) - break; - - InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(itemID); + //InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(itemID); + IInventoryService invService = m_scene.RequestModuleInterface(); + InventoryItemBase assetRequestItem = invService.QueryItem(new InventoryItemBase(itemID)); if (assetRequestItem == null) { assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); -- cgit v1.1 From 5246dc33dcfc51b7ebb19b269159df3991029350 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 13 Aug 2009 14:10:12 -0700 Subject: Renamed QueryItem/QueryFolder to GetItem/GetFolder. The word 'query' starting to get on my nerves. --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index aaa236c..a3e275d 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -6611,7 +6611,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP { //InventoryItemBase assetRequestItem = userInfo.RootFolder.FindItem(itemID); IInventoryService invService = m_scene.RequestModuleInterface(); - InventoryItemBase assetRequestItem = invService.QueryItem(new InventoryItemBase(itemID)); + InventoryItemBase assetRequestItem = invService.GetItem(new InventoryItemBase(itemID)); if (assetRequestItem == null) { assetRequestItem = ((Scene)m_scene).CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); -- cgit v1.1 From 034c9cf606373bfa9d3f8040cd787f789e0efbf2 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 13 Aug 2009 17:34:15 -0700 Subject: Added GetAssetPermissions. Few last bugs nixed. This is ready for testing. --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index a3e275d..6dda5aa 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -2156,16 +2156,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP protected void SendBulkUpdateInventoryFolder(InventoryFolderBase folderBase) { - // XXX: Nasty temporary move that will be resolved shortly - InventoryFolderImpl folder = (InventoryFolderImpl)folderBase; - // We will use the same transaction id for all the separate packets to be sent out in this update. UUID transactionId = UUID.Random(); List folderDataBlocks = new List(); - SendBulkUpdateInventoryFolderRecursive(folder, ref folderDataBlocks, transactionId); + SendBulkUpdateInventoryFolderRecursive(folderBase, ref folderDataBlocks, transactionId); if (folderDataBlocks.Count > 0) { @@ -2191,17 +2188,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// /// private void SendBulkUpdateInventoryFolderRecursive( - InventoryFolderImpl folder, ref List folderDataBlocks, + InventoryFolderBase folder, ref List folderDataBlocks, UUID transactionId) { folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); const int MAX_ITEMS_PER_PACKET = 5; + IInventoryService invService = m_scene.RequestModuleInterface(); // If there are any items then we have to start sending them off in this packet - the next folder will have // to be in its own bulk update packet. Also, we can only fit 5 items in a packet (at least this was the limit // being used on the Linden grid at 20081203). - List items = folder.RequestListOfItems(); + InventoryCollection contents = invService.GetFolderContent(AgentId, folder.ID); // folder.RequestListOfItems(); + List items = contents.Items; while (items.Count > 0) { BulkUpdateInventoryPacket bulkUpdate @@ -2233,8 +2232,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); } - List subFolders = folder.RequestListOfFolderImpls(); - foreach (InventoryFolderImpl subFolder in subFolders) + List subFolders = contents.Folders; + foreach (InventoryFolderBase subFolder in subFolders) { SendBulkUpdateInventoryFolderRecursive(subFolder, ref folderDataBlocks, transactionId); } -- cgit v1.1 From a42569d89675430087d32332e168429d4185311c Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 16 Aug 2009 15:06:06 +0900 Subject: Thanks dmiles for a patch that adds PacketType.RequestMultipleObjects Packet Handler - ref mantis #4010 --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 7633b7b..12c2d86 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -197,6 +197,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private ObjectExtraParams handlerUpdateExtraParams; //OnUpdateExtraParams; private ObjectDuplicate handlerObjectDuplicate; private ObjectDuplicateOnRay handlerObjectDuplicateOnRay; + private ObjectRequest handlerObjectRequest; private ObjectSelect handlerObjectSelect; private ObjectDeselect handlerObjectDeselect; private ObjectIncludeInSearch handlerObjectIncludeInSearch; @@ -1083,6 +1084,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP public event GodKickUser OnGodKickUser; public event ObjectExtraParams OnUpdateExtraParams; public event UpdateShape OnUpdatePrimShape; + public event ObjectRequest OnObjectRequest; public event ObjectSelect OnObjectSelect; public event ObjectDeselect OnObjectDeselect; public event GenericCall7 OnObjectDescription; @@ -5937,6 +5939,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP break; + case PacketType.RequestMultipleObjects: + RequestMultipleObjectsPacket incomingRequest = (RequestMultipleObjectsPacket)Pack; + + #region Packet Session and User Check + if (m_checkPackets) + { + if (incomingRequest.AgentData.SessionID != SessionId || + incomingRequest.AgentData.AgentID != AgentId) + break; + } + #endregion + + handlerObjectRequest = null; + + for (int i = 0; i < incomingRequest.ObjectData.Length; i++) + { + handlerObjectRequest = OnObjectRequest; + if (handlerObjectRequest != null) + { + handlerObjectRequest(incomingRequest.ObjectData[i].ID, this); + } + } + break; case PacketType.ObjectSelect: ObjectSelectPacket incomingselect = (ObjectSelectPacket)Pack; -- cgit v1.1 From 644db1e5400504ec70b22c3e928873948f1247c3 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 17 Aug 2009 09:40:38 +0100 Subject: Add System.Xml reference to the console project --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 77 +++++++++++++++------- 1 file changed, 55 insertions(+), 22 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 12c2d86..e1d6f1b 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -1435,6 +1435,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// heightmap public virtual void SendLayerData(float[] map) { + DoSendLayerData((object)map); ThreadPool.QueueUserWorkItem(DoSendLayerData, map); } @@ -1450,16 +1451,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP { for (int y = 0; y < 16; y++) { - // For some terrains, sending more than one terrain patch at once results in a libsecondlife exception - // see http://opensimulator.org/mantis/view.php?id=1662 - //for (int x = 0; x < 16; x += 4) - //{ - // SendLayerPacket(map, y, x); - // Thread.Sleep(150); - //} - for (int x = 0; x < 16; x++) - { - SendLayerData(x, y, LLHeightFieldMoronize(map)); + for (int x = 0; x < 16; x += 4) + { + SendLayerPacket(LLHeightFieldMoronize(map), y, x); Thread.Sleep(35); } } @@ -1476,17 +1470,54 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// heightmap /// X coordinate for patches 0..12 /// Y coordinate for patches 0..15 - // private void SendLayerPacket(float[] map, int y, int x) - // { - // int[] patches = new int[4]; - // patches[0] = x + 0 + y * 16; - // patches[1] = x + 1 + y * 16; - // patches[2] = x + 2 + y * 16; - // patches[3] = x + 3 + y * 16; - - // Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches); - // OutPacket(layerpack, ThrottleOutPacketType.Land); - // } + private void SendLayerPacket(float[] map, int y, int x) + { + int[] patches = new int[4]; + patches[0] = x + 0 + y * 16; + patches[1] = x + 1 + y * 16; + patches[2] = x + 2 + y * 16; + patches[3] = x + 3 + y * 16; + + LayerDataPacket layerpack; + try + { + layerpack = TerrainCompressor.CreateLandPacket(map, patches); + layerpack.Header.Zerocoded = true; + layerpack.Header.Reliable = true; + + if (layerpack.Length > 1000) // Oversize packet was created + { + for (int xa = 0 ; xa < 4 ; xa++) + { + // Send oversize packet in individual patches + // + SendLayerData(x+xa, y, map); + } + } + else + { + OutPacket(layerpack, ThrottleOutPacketType.Land); + } + } + catch (OverflowException e) + { + for (int xa = 0 ; xa < 4 ; xa++) + { + // Send oversize packet in individual patches + // + SendLayerData(x+xa, y, map); + } + } + catch (IndexOutOfRangeException e) + { + for (int xa = 0 ; xa < 4 ; xa++) + { + // Bad terrain, send individual chunks + // + SendLayerData(x+xa, y, map); + } + } + } /// /// Sends a specified patch to a client @@ -1507,6 +1538,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(((map.Length==65536)? map : LLHeightFieldMoronize(map)), patches); layerpack.Header.Zerocoded = true; + layerpack.Header.Reliable = true; OutPacket(layerpack, ThrottleOutPacketType.Land); @@ -1556,7 +1588,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// 16x16 array of wind speeds public virtual void SendWindData(Vector2[] windSpeeds) { - ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)windSpeeds); + DoSendWindData((object)windSpeeds); + // ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)windSpeeds); } /// -- cgit v1.1 From 9ad3e72ae1945d754417480a9f733f441d054371 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 17 Aug 2009 22:06:51 +0100 Subject: Did I say that i don't like git? Remove some stuff that shouldn't have gone in. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 77 +++++++--------------- 1 file changed, 22 insertions(+), 55 deletions(-) (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 9aef26d..06bea3d 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -1435,7 +1435,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// heightmap public virtual void SendLayerData(float[] map) { - DoSendLayerData((object)map); ThreadPool.QueueUserWorkItem(DoSendLayerData, map); } @@ -1451,9 +1450,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP { for (int y = 0; y < 16; y++) { - for (int x = 0; x < 16; x += 4) - { - SendLayerPacket(LLHeightFieldMoronize(map), y, x); + // For some terrains, sending more than one terrain patch at once results in a libsecondlife exception + // see http://opensimulator.org/mantis/view.php?id=1662 + //for (int x = 0; x < 16; x += 4) + //{ + // SendLayerPacket(map, y, x); + // Thread.Sleep(150); + //} + for (int x = 0; x < 16; x++) + { + SendLayerData(x, y, LLHeightFieldMoronize(map)); Thread.Sleep(35); } } @@ -1470,54 +1476,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// heightmap /// X coordinate for patches 0..12 /// Y coordinate for patches 0..15 - private void SendLayerPacket(float[] map, int y, int x) - { - int[] patches = new int[4]; - patches[0] = x + 0 + y * 16; - patches[1] = x + 1 + y * 16; - patches[2] = x + 2 + y * 16; - patches[3] = x + 3 + y * 16; - - LayerDataPacket layerpack; - try - { - layerpack = TerrainCompressor.CreateLandPacket(map, patches); - layerpack.Header.Zerocoded = true; - layerpack.Header.Reliable = true; - - if (layerpack.Length > 1000) // Oversize packet was created - { - for (int xa = 0 ; xa < 4 ; xa++) - { - // Send oversize packet in individual patches - // - SendLayerData(x+xa, y, map); - } - } - else - { - OutPacket(layerpack, ThrottleOutPacketType.Land); - } - } - catch (OverflowException e) - { - for (int xa = 0 ; xa < 4 ; xa++) - { - // Send oversize packet in individual patches - // - SendLayerData(x+xa, y, map); - } - } - catch (IndexOutOfRangeException e) - { - for (int xa = 0 ; xa < 4 ; xa++) - { - // Bad terrain, send individual chunks - // - SendLayerData(x+xa, y, map); - } - } - } + // private void SendLayerPacket(float[] map, int y, int x) + // { + // int[] patches = new int[4]; + // patches[0] = x + 0 + y * 16; + // patches[1] = x + 1 + y * 16; + // patches[2] = x + 2 + y * 16; + // patches[3] = x + 3 + y * 16; + + // Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches); + // OutPacket(layerpack, ThrottleOutPacketType.Land); + // } /// /// Sends a specified patch to a client @@ -1538,7 +1507,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(((map.Length==65536)? map : LLHeightFieldMoronize(map)), patches); layerpack.Header.Zerocoded = true; - layerpack.Header.Reliable = true; OutPacket(layerpack, ThrottleOutPacketType.Land); @@ -1588,8 +1556,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// 16x16 array of wind speeds public virtual void SendWindData(Vector2[] windSpeeds) { - DoSendWindData((object)windSpeeds); - // ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)windSpeeds); + ThreadPool.QueueUserWorkItem(new WaitCallback(DoSendWindData), (object)windSpeeds); } /// -- cgit v1.1