diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 260 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs | 28 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | 52 |
3 files changed, 170 insertions, 170 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 96a274c..42dbbee 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -63,9 +63,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
63 | /* private variables */ | 63 | /* private variables */ |
64 | private readonly UUID m_sessionId; | 64 | private readonly UUID m_sessionId; |
65 | private readonly UUID m_secureSessionId = UUID.Zero; | 65 | private readonly UUID m_secureSessionId = UUID.Zero; |
66 | 66 | ||
67 | private int m_debugPacketLevel; | 67 | private int m_debugPacketLevel; |
68 | 68 | ||
69 | private readonly AssetCache m_assetCache; | 69 | private readonly AssetCache m_assetCache; |
70 | private int m_cachedTextureSerial; | 70 | private int m_cachedTextureSerial; |
71 | private Timer m_clientPingTimer; | 71 | private Timer m_clientPingTimer; |
@@ -355,7 +355,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
355 | 355 | ||
356 | if (m_groupPowers.ContainsKey(groupID)) | 356 | if (m_groupPowers.ContainsKey(groupID)) |
357 | return m_groupPowers[groupID]; | 357 | return m_groupPowers[groupID]; |
358 | 358 | ||
359 | return 0; | 359 | return 0; |
360 | } | 360 | } |
361 | 361 | ||
@@ -454,8 +454,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
454 | m_circuitCode = circuitCode; | 454 | m_circuitCode = circuitCode; |
455 | 455 | ||
456 | m_userEndPoint = remoteEP; | 456 | m_userEndPoint = remoteEP; |
457 | m_proxyEndPoint = proxyEP; | 457 | m_proxyEndPoint = proxyEP; |
458 | 458 | ||
459 | m_firstName = sessionInfo.LoginInfo.First; | 459 | m_firstName = sessionInfo.LoginInfo.First; |
460 | m_lastName = sessionInfo.LoginInfo.Last; | 460 | m_lastName = sessionInfo.LoginInfo.Last; |
461 | m_startpos = sessionInfo.LoginInfo.StartPos; | 461 | m_startpos = sessionInfo.LoginInfo.StartPos; |
@@ -473,7 +473,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
473 | m_PacketHandler = new LLPacketHandler(this, m_networkServer, userSettings); | 473 | m_PacketHandler = new LLPacketHandler(this, m_networkServer, userSettings); |
474 | m_PacketHandler.SynchronizeClient = SynchronizeClient; | 474 | m_PacketHandler.SynchronizeClient = SynchronizeClient; |
475 | m_PacketHandler.OnPacketStats += PopulateStats; | 475 | m_PacketHandler.OnPacketStats += PopulateStats; |
476 | 476 | ||
477 | RegisterLocalPacketHandlers(); | 477 | RegisterLocalPacketHandlers(); |
478 | m_imageManager = new LLImageManager(this, m_assetCache,Scene.RequestModuleInterface<OpenSim.Region.Environment.Interfaces.IJ2KDecoder>()); | 478 | m_imageManager = new LLImageManager(this, m_assetCache,Scene.RequestModuleInterface<OpenSim.Region.Environment.Interfaces.IJ2KDecoder>()); |
479 | } | 479 | } |
@@ -501,7 +501,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
501 | // Shut down timers | 501 | // Shut down timers |
502 | m_clientPingTimer.Stop(); | 502 | m_clientPingTimer.Stop(); |
503 | 503 | ||
504 | 504 | ||
505 | // This is just to give the client a reasonable chance of | 505 | // This is just to give the client a reasonable chance of |
506 | // flushing out all it's packets. There should probably | 506 | // flushing out all it's packets. There should probably |
507 | // be a better mechanism here | 507 | // be a better mechanism here |
@@ -538,7 +538,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
538 | m_log.DebugFormat( | 538 | m_log.DebugFormat( |
539 | "[CLIENT]: Close has been called with shutdownCircuit = {0} for {1} attached to scene {2}", | 539 | "[CLIENT]: Close has been called with shutdownCircuit = {0} for {1} attached to scene {2}", |
540 | shutdownCircuit, Name, m_scene.RegionInfo.RegionName); | 540 | shutdownCircuit, Name, m_scene.RegionInfo.RegionName); |
541 | 541 | ||
542 | m_imageManager.Close(); | 542 | m_imageManager.Close(); |
543 | 543 | ||
544 | m_PacketHandler.Flush(); | 544 | m_PacketHandler.Flush(); |
@@ -716,14 +716,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
716 | { | 716 | { |
717 | info = packet.Type.ToString(); | 717 | info = packet.Type.ToString(); |
718 | } | 718 | } |
719 | 719 | ||
720 | Console.WriteLine(m_circuitCode + ":" + direction + ": " + info); | 720 | Console.WriteLine(m_circuitCode + ":" + direction + ": " + info); |
721 | } | 721 | } |
722 | } | 722 | } |
723 | 723 | ||
724 | /// <summary> | 724 | /// <summary> |
725 | /// Main packet processing loop for the UDP component of the client session. Both incoming and outgoing | 725 | /// Main packet processing loop for the UDP component of the client session. Both incoming and outgoing |
726 | /// packets are processed here. | 726 | /// packets are processed here. |
727 | /// </summary> | 727 | /// </summary> |
728 | protected virtual void ClientLoop() | 728 | protected virtual void ClientLoop() |
729 | { | 729 | { |
@@ -733,12 +733,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
733 | while (IsActive) | 733 | while (IsActive) |
734 | { | 734 | { |
735 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); | 735 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); |
736 | 736 | ||
737 | if (nextPacket.Incoming) | 737 | if (nextPacket.Incoming) |
738 | { | 738 | { |
739 | DebugPacket("IN", nextPacket.Packet); | 739 | DebugPacket("IN", nextPacket.Packet); |
740 | m_PacketHandler.ProcessInPacket(nextPacket); | 740 | m_PacketHandler.ProcessInPacket(nextPacket); |
741 | } | 741 | } |
742 | else | 742 | else |
743 | { | 743 | { |
744 | DebugPacket("OUT", nextPacket.Packet); | 744 | DebugPacket("OUT", nextPacket.Packet); |
@@ -821,14 +821,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
821 | m_clientThread.Name = "ClientThread"; | 821 | m_clientThread.Name = "ClientThread"; |
822 | m_clientThread.IsBackground = true; | 822 | m_clientThread.IsBackground = true; |
823 | m_clientThread.Start(); | 823 | m_clientThread.Start(); |
824 | ThreadTracker.Add(m_clientThread); | 824 | ThreadTracker.Add(m_clientThread); |
825 | } | 825 | } |
826 | 826 | ||
827 | /// <summary> | 827 | /// <summary> |
828 | /// Run a user session. This method lies at the base of the entire client thread. | 828 | /// Run a user session. This method lies at the base of the entire client thread. |
829 | /// </summary> | 829 | /// </summary> |
830 | protected virtual void RunUserSession() | 830 | protected virtual void RunUserSession() |
831 | { | 831 | { |
832 | //tell this thread we are using the culture set up for the sim (currently hardcoded to en_US) | 832 | //tell this thread we are using the culture set up for the sim (currently hardcoded to en_US) |
833 | //otherwise it will override this and use the system default | 833 | //otherwise it will override this and use the system default |
834 | Culture.SetCurrentCulture(); | 834 | Culture.SetCurrentCulture(); |
@@ -838,7 +838,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
838 | // This sets up all the timers | 838 | // This sets up all the timers |
839 | InitNewClient(); | 839 | InitNewClient(); |
840 | ClientLoop(); | 840 | ClientLoop(); |
841 | } | 841 | } |
842 | catch (Exception e) | 842 | catch (Exception e) |
843 | { | 843 | { |
844 | if (e is ThreadAbortException) | 844 | if (e is ThreadAbortException) |
@@ -1065,7 +1065,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1065 | public event ClassifiedInfoUpdate OnClassifiedInfoUpdate; | 1065 | public event ClassifiedInfoUpdate OnClassifiedInfoUpdate; |
1066 | public event ClassifiedDelete OnClassifiedDelete; | 1066 | public event ClassifiedDelete OnClassifiedDelete; |
1067 | public event ClassifiedDelete OnClassifiedGodDelete; | 1067 | public event ClassifiedDelete OnClassifiedGodDelete; |
1068 | 1068 | ||
1069 | public event EventNotificationAddRequest OnEventNotificationAddRequest; | 1069 | public event EventNotificationAddRequest OnEventNotificationAddRequest; |
1070 | public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest; | 1070 | public event EventNotificationRemoveRequest OnEventNotificationRemoveRequest; |
1071 | public event EventGodDelete OnEventGodDelete; | 1071 | public event EventGodDelete OnEventGodDelete; |
@@ -1078,14 +1078,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1078 | public void ActivateGesture(UUID assetId, UUID gestureId) | 1078 | public void ActivateGesture(UUID assetId, UUID gestureId) |
1079 | { | 1079 | { |
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | public void DeactivateGesture(UUID assetId, UUID gestureId) | 1082 | public void DeactivateGesture(UUID assetId, UUID gestureId) |
1083 | { | 1083 | { |
1084 | } | 1084 | } |
1085 | 1085 | ||
1086 | // Sound | 1086 | // Sound |
1087 | public void SoundTrigger(UUID soundId, UUID owerid, UUID Objectid,UUID ParentId,float Gain, Vector3 Position,UInt64 Handle) | 1087 | public void SoundTrigger(UUID soundId, UUID owerid, UUID Objectid,UUID ParentId,float Gain, Vector3 Position,UInt64 Handle) |
1088 | { | 1088 | { |
1089 | } | 1089 | } |
1090 | 1090 | ||
1091 | #region Scene/Avatar to Client | 1091 | #region Scene/Avatar to Client |
@@ -1330,7 +1330,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1330 | 1330 | ||
1331 | LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(map, patches); | 1331 | LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(map, patches); |
1332 | layerpack.Header.Zerocoded = true; | 1332 | layerpack.Header.Zerocoded = true; |
1333 | 1333 | ||
1334 | OutPacket(layerpack, ThrottleOutPacketType.Land); | 1334 | OutPacket(layerpack, ThrottleOutPacketType.Land); |
1335 | 1335 | ||
1336 | } | 1336 | } |
@@ -1410,11 +1410,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1410 | agentData.child = false; | 1410 | agentData.child = false; |
1411 | agentData.firstname = m_firstName; | 1411 | agentData.firstname = m_firstName; |
1412 | agentData.lastname = m_lastName; | 1412 | agentData.lastname = m_lastName; |
1413 | 1413 | ||
1414 | ICapabilitiesModule capsModule = m_scene.RequestModuleInterface<ICapabilitiesModule>(); | 1414 | ICapabilitiesModule capsModule = m_scene.RequestModuleInterface<ICapabilitiesModule>(); |
1415 | agentData.CapsPath = capsModule.GetCapsPath(m_agentId); | 1415 | agentData.CapsPath = capsModule.GetCapsPath(m_agentId); |
1416 | agentData.ChildrenCapSeeds = new Dictionary<ulong,string>(capsModule.GetChildrenSeeds(m_agentId)); | 1416 | agentData.ChildrenCapSeeds = new Dictionary<ulong,string>(capsModule.GetChildrenSeeds(m_agentId)); |
1417 | 1417 | ||
1418 | return agentData; | 1418 | return agentData; |
1419 | } | 1419 | } |
1420 | 1420 | ||
@@ -1852,21 +1852,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1852 | inventoryReply.Header.Zerocoded = true; | 1852 | inventoryReply.Header.Zerocoded = true; |
1853 | OutPacket(inventoryReply, ThrottleOutPacketType.Asset); | 1853 | OutPacket(inventoryReply, ThrottleOutPacketType.Asset); |
1854 | } | 1854 | } |
1855 | 1855 | ||
1856 | /// <see>IClientAPI.SendBulkUpdateInventory(InventoryFolderBase)</see> | 1856 | /// <see>IClientAPI.SendBulkUpdateInventory(InventoryFolderBase)</see> |
1857 | public void SendBulkUpdateInventory(InventoryFolderBase folderBase) | 1857 | public void SendBulkUpdateInventory(InventoryFolderBase folderBase) |
1858 | { | 1858 | { |
1859 | // XXX: Nasty temporary move that will be resolved shortly | 1859 | // XXX: Nasty temporary move that will be resolved shortly |
1860 | InventoryFolderImpl folder = (InventoryFolderImpl)folderBase; | 1860 | InventoryFolderImpl folder = (InventoryFolderImpl)folderBase; |
1861 | 1861 | ||
1862 | // We will use the same transaction id for all the separate packets to be sent out in this update. | 1862 | // We will use the same transaction id for all the separate packets to be sent out in this update. |
1863 | UUID transactionId = UUID.Random(); | 1863 | UUID transactionId = UUID.Random(); |
1864 | 1864 | ||
1865 | List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks | 1865 | List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks |
1866 | = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); | 1866 | = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); |
1867 | 1867 | ||
1868 | SendBulkUpdateInventoryRecursive(folder, ref folderDataBlocks, transactionId); | 1868 | SendBulkUpdateInventoryRecursive(folder, ref folderDataBlocks, transactionId); |
1869 | 1869 | ||
1870 | if (folderDataBlocks.Count > 0) | 1870 | if (folderDataBlocks.Count > 0) |
1871 | { | 1871 | { |
1872 | // We'll end up with some unsent folder blocks if there were some empty folders at the end of the list | 1872 | // We'll end up with some unsent folder blocks if there were some empty folders at the end of the list |
@@ -1874,16 +1874,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1874 | BulkUpdateInventoryPacket bulkUpdate | 1874 | BulkUpdateInventoryPacket bulkUpdate |
1875 | = (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory); | 1875 | = (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory); |
1876 | bulkUpdate.Header.Zerocoded = true; | 1876 | bulkUpdate.Header.Zerocoded = true; |
1877 | 1877 | ||
1878 | bulkUpdate.AgentData.AgentID = AgentId; | 1878 | bulkUpdate.AgentData.AgentID = AgentId; |
1879 | bulkUpdate.AgentData.TransactionID = transactionId; | 1879 | bulkUpdate.AgentData.TransactionID = transactionId; |
1880 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); | 1880 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); |
1881 | 1881 | ||
1882 | //Console.WriteLine("SendBulkUpdateInventory :" + bulkUpdate); | 1882 | //Console.WriteLine("SendBulkUpdateInventory :" + bulkUpdate); |
1883 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); | 1883 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); |
1884 | } | 1884 | } |
1885 | } | 1885 | } |
1886 | 1886 | ||
1887 | /// <summary> | 1887 | /// <summary> |
1888 | /// Recursively construct bulk update packets to send folders and items | 1888 | /// Recursively construct bulk update packets to send folders and items |
1889 | /// </summary> | 1889 | /// </summary> |
@@ -1891,11 +1891,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1891 | /// <param name="folderDataBlocks"></param> | 1891 | /// <param name="folderDataBlocks"></param> |
1892 | /// <param name="transactionId"></param> | 1892 | /// <param name="transactionId"></param> |
1893 | private void SendBulkUpdateInventoryRecursive( | 1893 | private void SendBulkUpdateInventoryRecursive( |
1894 | InventoryFolderImpl folder, ref List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks, | 1894 | InventoryFolderImpl folder, ref List<BulkUpdateInventoryPacket.FolderDataBlock> folderDataBlocks, |
1895 | UUID transactionId) | 1895 | UUID transactionId) |
1896 | { | 1896 | { |
1897 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); | 1897 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); |
1898 | 1898 | ||
1899 | const int MAX_ITEMS_PER_PACKET = 5; | 1899 | const int MAX_ITEMS_PER_PACKET = 5; |
1900 | 1900 | ||
1901 | // If there are any items then we have to start sending them off in this packet - the next folder will have | 1901 | // If there are any items then we have to start sending them off in this packet - the next folder will have |
@@ -1909,10 +1909,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1909 | bulkUpdate.Header.Zerocoded = true; | 1909 | bulkUpdate.Header.Zerocoded = true; |
1910 | 1910 | ||
1911 | bulkUpdate.AgentData.AgentID = AgentId; | 1911 | bulkUpdate.AgentData.AgentID = AgentId; |
1912 | bulkUpdate.AgentData.TransactionID = transactionId; | 1912 | bulkUpdate.AgentData.TransactionID = transactionId; |
1913 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); | 1913 | bulkUpdate.FolderData = folderDataBlocks.ToArray(); |
1914 | 1914 | ||
1915 | int itemsToSend = (items.Count > MAX_ITEMS_PER_PACKET ? MAX_ITEMS_PER_PACKET : items.Count); | 1915 | int itemsToSend = (items.Count > MAX_ITEMS_PER_PACKET ? MAX_ITEMS_PER_PACKET : items.Count); |
1916 | bulkUpdate.ItemData = new BulkUpdateInventoryPacket.ItemDataBlock[itemsToSend]; | 1916 | bulkUpdate.ItemData = new BulkUpdateInventoryPacket.ItemDataBlock[itemsToSend]; |
1917 | 1917 | ||
1918 | for (int i = 0; i < itemsToSend; i++) | 1918 | for (int i = 0; i < itemsToSend; i++) |
@@ -1921,51 +1921,51 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1921 | bulkUpdate.ItemData[i] = GenerateBulkUpdateItemDataBlock(items[items.Count - 1]); | 1921 | bulkUpdate.ItemData[i] = GenerateBulkUpdateItemDataBlock(items[items.Count - 1]); |
1922 | items.RemoveAt(items.Count - 1); | 1922 | items.RemoveAt(items.Count - 1); |
1923 | } | 1923 | } |
1924 | 1924 | ||
1925 | //Console.WriteLine("SendBulkUpdateInventoryRecursive :" + bulkUpdate); | 1925 | //Console.WriteLine("SendBulkUpdateInventoryRecursive :" + bulkUpdate); |
1926 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); | 1926 | OutPacket(bulkUpdate, ThrottleOutPacketType.Asset); |
1927 | 1927 | ||
1928 | folderDataBlocks = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); | 1928 | folderDataBlocks = new List<BulkUpdateInventoryPacket.FolderDataBlock>(); |
1929 | 1929 | ||
1930 | // If we're going to be sending another items packet then it needs to contain just the folder to which those | 1930 | // If we're going to be sending another items packet then it needs to contain just the folder to which those |
1931 | // items belong. | 1931 | // items belong. |
1932 | if (items.Count > 0) | 1932 | if (items.Count > 0) |
1933 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); | 1933 | folderDataBlocks.Add(GenerateBulkUpdateFolderDataBlock(folder)); |
1934 | } | 1934 | } |
1935 | 1935 | ||
1936 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); | 1936 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); |
1937 | foreach (InventoryFolderImpl subFolder in subFolders) | 1937 | foreach (InventoryFolderImpl subFolder in subFolders) |
1938 | { | 1938 | { |
1939 | SendBulkUpdateInventoryRecursive(subFolder, ref folderDataBlocks, transactionId); | 1939 | SendBulkUpdateInventoryRecursive(subFolder, ref folderDataBlocks, transactionId); |
1940 | } | 1940 | } |
1941 | } | 1941 | } |
1942 | 1942 | ||
1943 | /// <summary> | 1943 | /// <summary> |
1944 | /// Generate a bulk update inventory data block for the given folder | 1944 | /// Generate a bulk update inventory data block for the given folder |
1945 | /// </summary> | 1945 | /// </summary> |
1946 | /// <param name="folder"></param> | 1946 | /// <param name="folder"></param> |
1947 | /// <returns></returns> | 1947 | /// <returns></returns> |
1948 | private BulkUpdateInventoryPacket.FolderDataBlock GenerateBulkUpdateFolderDataBlock(InventoryFolderBase folder) | 1948 | private BulkUpdateInventoryPacket.FolderDataBlock GenerateBulkUpdateFolderDataBlock(InventoryFolderBase folder) |
1949 | { | 1949 | { |
1950 | BulkUpdateInventoryPacket.FolderDataBlock folderBlock = new BulkUpdateInventoryPacket.FolderDataBlock(); | 1950 | BulkUpdateInventoryPacket.FolderDataBlock folderBlock = new BulkUpdateInventoryPacket.FolderDataBlock(); |
1951 | 1951 | ||
1952 | folderBlock.FolderID = folder.ID; | 1952 | folderBlock.FolderID = folder.ID; |
1953 | folderBlock.ParentID = folder.ParentID; | 1953 | folderBlock.ParentID = folder.ParentID; |
1954 | folderBlock.Type = -1; | 1954 | folderBlock.Type = -1; |
1955 | folderBlock.Name = Utils.StringToBytes(folder.Name); | 1955 | folderBlock.Name = Utils.StringToBytes(folder.Name); |
1956 | 1956 | ||
1957 | return folderBlock; | 1957 | return folderBlock; |
1958 | } | 1958 | } |
1959 | 1959 | ||
1960 | /// <summary> | 1960 | /// <summary> |
1961 | /// Generate a bulk update inventory data block for the given item | 1961 | /// Generate a bulk update inventory data block for the given item |
1962 | /// </summary> | 1962 | /// </summary> |
1963 | /// <param name="item"></param> | 1963 | /// <param name="item"></param> |
1964 | /// <returns></returns> | 1964 | /// <returns></returns> |
1965 | private BulkUpdateInventoryPacket.ItemDataBlock GenerateBulkUpdateItemDataBlock(InventoryItemBase item) | 1965 | private BulkUpdateInventoryPacket.ItemDataBlock GenerateBulkUpdateItemDataBlock(InventoryItemBase item) |
1966 | { | 1966 | { |
1967 | BulkUpdateInventoryPacket.ItemDataBlock itemBlock = new BulkUpdateInventoryPacket.ItemDataBlock(); | 1967 | BulkUpdateInventoryPacket.ItemDataBlock itemBlock = new BulkUpdateInventoryPacket.ItemDataBlock(); |
1968 | 1968 | ||
1969 | itemBlock.ItemID = item.ID; | 1969 | itemBlock.ItemID = item.ID; |
1970 | itemBlock.AssetID = item.AssetID; | 1970 | itemBlock.AssetID = item.AssetID; |
1971 | itemBlock.CreatorID = item.Creator; | 1971 | itemBlock.CreatorID = item.Creator; |
@@ -1996,7 +1996,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1996 | itemBlock.ItemID, itemBlock.FolderID, | 1996 | itemBlock.ItemID, itemBlock.FolderID, |
1997 | (uint)PermissionMask.All, 1, (uint)PermissionMask.All, (uint)PermissionMask.All, | 1997 | (uint)PermissionMask.All, 1, (uint)PermissionMask.All, (uint)PermissionMask.All, |
1998 | (uint)PermissionMask.All); | 1998 | (uint)PermissionMask.All); |
1999 | 1999 | ||
2000 | return itemBlock; | 2000 | return itemBlock; |
2001 | } | 2001 | } |
2002 | 2002 | ||
@@ -2396,17 +2396,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2396 | OutPacket(viewertime, ThrottleOutPacketType.Task); | 2396 | OutPacket(viewertime, ThrottleOutPacketType.Task); |
2397 | */ | 2397 | */ |
2398 | } | 2398 | } |
2399 | 2399 | ||
2400 | public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks) | 2400 | public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks) |
2401 | { | 2401 | { |
2402 | ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect); | 2402 | ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect); |
2403 | packet.Effect = effectBlocks; | 2403 | packet.Effect = effectBlocks; |
2404 | 2404 | ||
2405 | packet.AgentData.AgentID = AgentId; | 2405 | packet.AgentData.AgentID = AgentId; |
2406 | packet.AgentData.SessionID = SessionId; | 2406 | packet.AgentData.SessionID = SessionId; |
2407 | packet.Header.Reliable = false; | 2407 | packet.Header.Reliable = false; |
2408 | packet.Header.Zerocoded = true; | 2408 | packet.Header.Zerocoded = true; |
2409 | OutPacket(packet, ThrottleOutPacketType.Task); | 2409 | OutPacket(packet, ThrottleOutPacketType.Task); |
2410 | } | 2410 | } |
2411 | 2411 | ||
2412 | public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, | 2412 | public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, |
@@ -2439,7 +2439,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2439 | // Gesture | 2439 | // Gesture |
2440 | 2440 | ||
2441 | #region Appearance/ Wearables Methods | 2441 | #region Appearance/ Wearables Methods |
2442 | 2442 | ||
2443 | public void SendWearables(AvatarWearable[] wearables, int serial) | 2443 | public void SendWearables(AvatarWearable[] wearables, int serial) |
2444 | { | 2444 | { |
2445 | AgentWearablesUpdatePacket aw = (AgentWearablesUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentWearablesUpdate); | 2445 | AgentWearablesUpdatePacket aw = (AgentWearablesUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentWearablesUpdate); |
@@ -2457,9 +2457,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2457 | awb.AssetID = wearables[i].AssetID; | 2457 | awb.AssetID = wearables[i].AssetID; |
2458 | awb.ItemID = wearables[i].ItemID; | 2458 | awb.ItemID = wearables[i].ItemID; |
2459 | aw.WearableData[i] = awb; | 2459 | aw.WearableData[i] = awb; |
2460 | 2460 | ||
2461 | // m_log.DebugFormat( | 2461 | // m_log.DebugFormat( |
2462 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", | 2462 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", |
2463 | // awb.ItemID, awb.AssetID, i, Name); | 2463 | // awb.ItemID, awb.AssetID, i, Name); |
2464 | } | 2464 | } |
2465 | 2465 | ||
@@ -2489,7 +2489,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2489 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId) | 2489 | public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId) |
2490 | { | 2490 | { |
2491 | //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name); | 2491 | //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name); |
2492 | 2492 | ||
2493 | AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation); | 2493 | AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation); |
2494 | // TODO: don't create new blocks if recycling an old packet | 2494 | // TODO: don't create new blocks if recycling an old packet |
2495 | ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1]; | 2495 | ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1]; |
@@ -2546,16 +2546,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2546 | 2546 | ||
2547 | /// <summary> | 2547 | /// <summary> |
2548 | /// Send a terse positional/rotation/velocity update about an avatar to the client. This avatar can be that of | 2548 | /// Send a terse positional/rotation/velocity update about an avatar to the client. This avatar can be that of |
2549 | /// the client itself. | 2549 | /// the client itself. |
2550 | /// </summary> | 2550 | /// </summary> |
2551 | public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position, | 2551 | public void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, Vector3 position, |
2552 | Vector3 velocity, Quaternion rotation) | 2552 | Vector3 velocity, Quaternion rotation) |
2553 | { | 2553 | { |
2554 | if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0) | 2554 | if (rotation.X == rotation.Y && rotation.Y == rotation.Z && rotation.Z == rotation.W && rotation.W == 0) |
2555 | rotation = Quaternion.Identity; | 2555 | rotation = Quaternion.Identity; |
2556 | 2556 | ||
2557 | //m_log.DebugFormat("[CLIENT]: Sending rotation {0} for {1} to {2}", rotation, localID, Name); | 2557 | //m_log.DebugFormat("[CLIENT]: Sending rotation {0} for {1} to {2}", rotation, localID, Name); |
2558 | 2558 | ||
2559 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = | 2559 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = |
2560 | CreateAvatarImprovedBlock(localID, position, velocity, rotation); | 2560 | CreateAvatarImprovedBlock(localID, position, velocity, rotation); |
2561 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); | 2561 | ImprovedTerseObjectUpdatePacket terse = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate); |
@@ -2567,7 +2567,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2567 | 2567 | ||
2568 | terse.Header.Reliable = false; | 2568 | terse.Header.Reliable = false; |
2569 | terse.Header.Zerocoded = true; | 2569 | terse.Header.Zerocoded = true; |
2570 | 2570 | ||
2571 | OutPacket(terse, ThrottleOutPacketType.Task); | 2571 | OutPacket(terse, ThrottleOutPacketType.Task); |
2572 | } | 2572 | } |
2573 | 2573 | ||
@@ -2593,7 +2593,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2593 | loc.Index = ib; | 2593 | loc.Index = ib; |
2594 | loc.Header.Reliable = false; | 2594 | loc.Header.Reliable = false; |
2595 | loc.Header.Zerocoded = true; | 2595 | loc.Header.Zerocoded = true; |
2596 | 2596 | ||
2597 | OutPacket(loc, ThrottleOutPacketType.Task); | 2597 | OutPacket(loc, ThrottleOutPacketType.Task); |
2598 | } | 2598 | } |
2599 | 2599 | ||
@@ -2808,7 +2808,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2808 | im.Header.Zerocoded = true; | 2808 | im.Header.Zerocoded = true; |
2809 | OutPacket(im, ThrottleOutPacketType.Texture); | 2809 | OutPacket(im, ThrottleOutPacketType.Texture); |
2810 | } | 2810 | } |
2811 | 2811 | ||
2812 | public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData) | 2812 | public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData) |
2813 | { | 2813 | { |
2814 | ImagePacketPacket im = new ImagePacketPacket(); | 2814 | ImagePacketPacket im = new ImagePacketPacket(); |
@@ -2816,13 +2816,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2816 | im.ImageID.Packet = partNumber; | 2816 | im.ImageID.Packet = partNumber; |
2817 | im.ImageID.ID = imageUuid; | 2817 | im.ImageID.ID = imageUuid; |
2818 | im.ImageData.Data = imageData; | 2818 | im.ImageData.Data = imageData; |
2819 | 2819 | ||
2820 | OutPacket(im, ThrottleOutPacketType.Texture); | 2820 | OutPacket(im, ThrottleOutPacketType.Texture); |
2821 | } | 2821 | } |
2822 | 2822 | ||
2823 | public void SendImageNotFound(UUID imageid) | 2823 | public void SendImageNotFound(UUID imageid) |
2824 | { | 2824 | { |
2825 | ImageNotInDatabasePacket notFoundPacket | 2825 | ImageNotInDatabasePacket notFoundPacket |
2826 | = (ImageNotInDatabasePacket)PacketPool.Instance.GetPacket(PacketType.ImageNotInDatabase); | 2826 | = (ImageNotInDatabasePacket)PacketPool.Instance.GetPacket(PacketType.ImageNotInDatabase); |
2827 | 2827 | ||
2828 | notFoundPacket.ImageID.ID = imageid; | 2828 | notFoundPacket.ImageID.ID = imageid; |
@@ -2845,9 +2845,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2845 | pack.Region.ObjectCapacity = stats.ObjectCapacity; | 2845 | pack.Region.ObjectCapacity = stats.ObjectCapacity; |
2846 | //pack.Region = //stats.RegionBlock; | 2846 | //pack.Region = //stats.RegionBlock; |
2847 | pack.Stat = stats.StatsBlock; | 2847 | pack.Stat = stats.StatsBlock; |
2848 | 2848 | ||
2849 | pack.Header.Reliable = false; | 2849 | pack.Header.Reliable = false; |
2850 | 2850 | ||
2851 | OutPacket(pack, ThrottleOutPacketType.Task); | 2851 | OutPacket(pack, ThrottleOutPacketType.Task); |
2852 | } | 2852 | } |
2853 | 2853 | ||
@@ -3129,7 +3129,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3129 | updatePacket.ParcelData.IsGroupOwned = landData.IsGroupOwned; | 3129 | updatePacket.ParcelData.IsGroupOwned = landData.IsGroupOwned; |
3130 | updatePacket.ParcelData.LandingType = landData.LandingType; | 3130 | updatePacket.ParcelData.LandingType = landData.LandingType; |
3131 | updatePacket.ParcelData.LocalID = landData.LocalID; | 3131 | updatePacket.ParcelData.LocalID = landData.LocalID; |
3132 | 3132 | ||
3133 | if (landData.Area > 0) | 3133 | if (landData.Area > 0) |
3134 | { | 3134 | { |
3135 | updatePacket.ParcelData.MaxPrims = parcelObjectCapacity; | 3135 | updatePacket.ParcelData.MaxPrims = parcelObjectCapacity; |
@@ -3138,10 +3138,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3138 | { | 3138 | { |
3139 | updatePacket.ParcelData.MaxPrims = 0; | 3139 | updatePacket.ParcelData.MaxPrims = 0; |
3140 | } | 3140 | } |
3141 | 3141 | ||
3142 | updatePacket.ParcelData.MediaAutoScale = landData.MediaAutoScale; | 3142 | updatePacket.ParcelData.MediaAutoScale = landData.MediaAutoScale; |
3143 | updatePacket.ParcelData.MediaID = landData.MediaID; | 3143 | updatePacket.ParcelData.MediaID = landData.MediaID; |
3144 | updatePacket.ParcelData.MediaURL = LLUtil.StringToPacketBytes(landData.MediaURL); | 3144 | updatePacket.ParcelData.MediaURL = LLUtil.StringToPacketBytes(landData.MediaURL); |
3145 | updatePacket.ParcelData.MusicURL = LLUtil.StringToPacketBytes(landData.MusicURL); | 3145 | updatePacket.ParcelData.MusicURL = LLUtil.StringToPacketBytes(landData.MusicURL); |
3146 | updatePacket.ParcelData.Name = Utils.StringToBytes(landData.Name); | 3146 | updatePacket.ParcelData.Name = Utils.StringToBytes(landData.Name); |
3147 | updatePacket.ParcelData.OtherCleanTime = landData.OtherCleanTime; | 3147 | updatePacket.ParcelData.OtherCleanTime = landData.OtherCleanTime; |
@@ -4162,7 +4162,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4162 | 4162 | ||
4163 | /// <summary> | 4163 | /// <summary> |
4164 | /// This is the starting point for sending a simulator packet out to the client. | 4164 | /// This is the starting point for sending a simulator packet out to the client. |
4165 | /// | 4165 | /// |
4166 | /// Please do not call this from outside the LindenUDP client stack. | 4166 | /// Please do not call this from outside the LindenUDP client stack. |
4167 | /// </summary> | 4167 | /// </summary> |
4168 | /// <param name="NewPack"></param> | 4168 | /// <param name="NewPack"></param> |
@@ -4244,13 +4244,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4244 | if (ProcessPacketMethod(Pack)) | 4244 | if (ProcessPacketMethod(Pack)) |
4245 | { | 4245 | { |
4246 | //there is a handler registered that handled this packet type | 4246 | //there is a handler registered that handled this packet type |
4247 | 4247 | ||
4248 | // in the end, we dereference this, so we have to check if it's null | 4248 | // in the end, we dereference this, so we have to check if it's null |
4249 | if (m_imageManager != null) | 4249 | if (m_imageManager != null) |
4250 | m_imageManager.ProcessImageQueue(3); | 4250 | m_imageManager.ProcessImageQueue(3); |
4251 | return; | 4251 | return; |
4252 | } | 4252 | } |
4253 | 4253 | ||
4254 | // Main packet processing conditional | 4254 | // Main packet processing conditional |
4255 | switch (Pack.Type) | 4255 | switch (Pack.Type) |
4256 | { | 4256 | { |
@@ -4266,7 +4266,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4266 | } | 4266 | } |
4267 | 4267 | ||
4268 | break; | 4268 | break; |
4269 | 4269 | ||
4270 | case PacketType.ChatFromViewer: | 4270 | case PacketType.ChatFromViewer: |
4271 | ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack; | 4271 | ChatFromViewerPacket inchatpack = (ChatFromViewerPacket)Pack; |
4272 | 4272 | ||
@@ -4296,7 +4296,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4296 | handlerChatFromClient(this, args); | 4296 | handlerChatFromClient(this, args); |
4297 | } | 4297 | } |
4298 | break; | 4298 | break; |
4299 | 4299 | ||
4300 | case PacketType.AvatarPropertiesUpdate: | 4300 | case PacketType.AvatarPropertiesUpdate: |
4301 | AvatarPropertiesUpdatePacket Packet = (AvatarPropertiesUpdatePacket)Pack; | 4301 | AvatarPropertiesUpdatePacket Packet = (AvatarPropertiesUpdatePacket)Pack; |
4302 | 4302 | ||
@@ -4335,7 +4335,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4335 | } | 4335 | } |
4336 | 4336 | ||
4337 | break; | 4337 | break; |
4338 | 4338 | ||
4339 | case PacketType.ImprovedInstantMessage: | 4339 | case PacketType.ImprovedInstantMessage: |
4340 | ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack; | 4340 | ImprovedInstantMessagePacket msgpack = (ImprovedInstantMessagePacket)Pack; |
4341 | string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); | 4341 | string IMfromName = Util.FieldToString(msgpack.MessageBlock.FromAgentName); |
@@ -4383,7 +4383,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4383 | 4383 | ||
4384 | case PacketType.DeclineFriendship: | 4384 | case PacketType.DeclineFriendship: |
4385 | DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack; | 4385 | DeclineFriendshipPacket dfriendpack = (DeclineFriendshipPacket)Pack; |
4386 | 4386 | ||
4387 | if (OnDenyFriendRequest != null) | 4387 | if (OnDenyFriendRequest != null) |
4388 | { | 4388 | { |
4389 | OnDenyFriendRequest(this, | 4389 | OnDenyFriendRequest(this, |
@@ -4391,7 +4391,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4391 | dfriendpack.TransactionBlock.TransactionID, | 4391 | dfriendpack.TransactionBlock.TransactionID, |
4392 | null); | 4392 | null); |
4393 | } | 4393 | } |
4394 | break; | 4394 | break; |
4395 | 4395 | ||
4396 | case PacketType.TerminateFriendship: | 4396 | case PacketType.TerminateFriendship: |
4397 | TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack; | 4397 | TerminateFriendshipPacket tfriendpack = (TerminateFriendshipPacket)Pack; |
@@ -4404,7 +4404,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4404 | handlerTerminateFriendship(this, listOwnerAgentID, exFriendID); | 4404 | handlerTerminateFriendship(this, listOwnerAgentID, exFriendID); |
4405 | } | 4405 | } |
4406 | break; | 4406 | break; |
4407 | 4407 | ||
4408 | case PacketType.RezObject: | 4408 | case PacketType.RezObject: |
4409 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; | 4409 | RezObjectPacket rezPacket = (RezObjectPacket)Pack; |
4410 | 4410 | ||
@@ -4418,8 +4418,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4418 | rezPacket.RezData.FromTaskID); | 4418 | rezPacket.RezData.FromTaskID); |
4419 | } | 4419 | } |
4420 | break; | 4420 | break; |
4421 | 4421 | ||
4422 | case PacketType.DeRezObject: | 4422 | case PacketType.DeRezObject: |
4423 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) Pack; | 4423 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) Pack; |
4424 | handlerDeRezObject = OnDeRezObject; | 4424 | handlerDeRezObject = OnDeRezObject; |
4425 | if (handlerDeRezObject != null) | 4425 | if (handlerDeRezObject != null) |
@@ -4427,8 +4427,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4427 | foreach (DeRezObjectPacket.ObjectDataBlock data in | 4427 | foreach (DeRezObjectPacket.ObjectDataBlock data in |
4428 | DeRezPacket.ObjectData) | 4428 | DeRezPacket.ObjectData) |
4429 | { | 4429 | { |
4430 | // It just so happens that the values on the DeRezAction enumerator match the Destination | 4430 | // It just so happens that the values on the DeRezAction enumerator match the Destination |
4431 | // values given by a Second Life client | 4431 | // values given by a Second Life client |
4432 | handlerDeRezObject(this, data.ObjectLocalID, | 4432 | handlerDeRezObject(this, data.ObjectLocalID, |
4433 | DeRezPacket.AgentBlock.GroupID, | 4433 | DeRezPacket.AgentBlock.GroupID, |
4434 | (DeRezAction)DeRezPacket.AgentBlock.Destination, | 4434 | (DeRezAction)DeRezPacket.AgentBlock.Destination, |
@@ -4436,7 +4436,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4436 | } | 4436 | } |
4437 | } | 4437 | } |
4438 | break; | 4438 | break; |
4439 | 4439 | ||
4440 | case PacketType.ModifyLand: | 4440 | case PacketType.ModifyLand: |
4441 | ModifyLandPacket modify = (ModifyLandPacket)Pack; | 4441 | ModifyLandPacket modify = (ModifyLandPacket)Pack; |
4442 | //m_log.Info("[LAND]: LAND:" + modify.ToString()); | 4442 | //m_log.Info("[LAND]: LAND:" + modify.ToString()); |
@@ -4461,7 +4461,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4461 | } | 4461 | } |
4462 | 4462 | ||
4463 | break; | 4463 | break; |
4464 | 4464 | ||
4465 | case PacketType.RegionHandshakeReply: | 4465 | case PacketType.RegionHandshakeReply: |
4466 | 4466 | ||
4467 | handlerRegionHandShakeReply = OnRegionHandShakeReply; | 4467 | handlerRegionHandShakeReply = OnRegionHandShakeReply; |
@@ -4471,7 +4471,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4471 | } | 4471 | } |
4472 | 4472 | ||
4473 | break; | 4473 | break; |
4474 | 4474 | ||
4475 | case PacketType.AgentWearablesRequest: | 4475 | case PacketType.AgentWearablesRequest: |
4476 | handlerRequestWearables = OnRequestWearables; | 4476 | handlerRequestWearables = OnRequestWearables; |
4477 | 4477 | ||
@@ -4488,7 +4488,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4488 | } | 4488 | } |
4489 | 4489 | ||
4490 | break; | 4490 | break; |
4491 | 4491 | ||
4492 | case PacketType.AgentSetAppearance: | 4492 | case PacketType.AgentSetAppearance: |
4493 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; | 4493 | AgentSetAppearancePacket appear = (AgentSetAppearancePacket)Pack; |
4494 | 4494 | ||
@@ -4537,7 +4537,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4537 | } | 4537 | } |
4538 | } | 4538 | } |
4539 | break; | 4539 | break; |
4540 | 4540 | ||
4541 | case PacketType.RezSingleAttachmentFromInv: | 4541 | case PacketType.RezSingleAttachmentFromInv: |
4542 | handlerRezSingleAttachment = OnRezSingleAttachmentFromInv; | 4542 | handlerRezSingleAttachment = OnRezSingleAttachmentFromInv; |
4543 | if (handlerRezSingleAttachment != null) | 4543 | if (handlerRezSingleAttachment != null) |
@@ -4548,7 +4548,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4548 | } | 4548 | } |
4549 | 4549 | ||
4550 | break; | 4550 | break; |
4551 | 4551 | ||
4552 | case PacketType.DetachAttachmentIntoInv: | 4552 | case PacketType.DetachAttachmentIntoInv: |
4553 | handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv; | 4553 | handlerDetachAttachmentIntoInv = OnDetachAttachmentIntoInv; |
4554 | if (handlerDetachAttachmentIntoInv != null) | 4554 | if (handlerDetachAttachmentIntoInv != null) |
@@ -4561,7 +4561,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4561 | handlerDetachAttachmentIntoInv(itemID, this); | 4561 | handlerDetachAttachmentIntoInv(itemID, this); |
4562 | } | 4562 | } |
4563 | break; | 4563 | break; |
4564 | 4564 | ||
4565 | case PacketType.ObjectAttach: | 4565 | case PacketType.ObjectAttach: |
4566 | if (OnObjectAttach != null) | 4566 | if (OnObjectAttach != null) |
4567 | { | 4567 | { |
@@ -4578,7 +4578,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4578 | } | 4578 | } |
4579 | } | 4579 | } |
4580 | break; | 4580 | break; |
4581 | 4581 | ||
4582 | case PacketType.ObjectDetach: | 4582 | case PacketType.ObjectDetach: |
4583 | ObjectDetachPacket dett = (ObjectDetachPacket)Pack; | 4583 | ObjectDetachPacket dett = (ObjectDetachPacket)Pack; |
4584 | for (int j = 0; j < dett.ObjectData.Length; j++) | 4584 | for (int j = 0; j < dett.ObjectData.Length; j++) |
@@ -4592,7 +4592,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4592 | 4592 | ||
4593 | } | 4593 | } |
4594 | break; | 4594 | break; |
4595 | 4595 | ||
4596 | case PacketType.ObjectDrop: | 4596 | case PacketType.ObjectDrop: |
4597 | ObjectDropPacket dropp = (ObjectDropPacket)Pack; | 4597 | ObjectDropPacket dropp = (ObjectDropPacket)Pack; |
4598 | for (int j = 0; j < dropp.ObjectData.Length; j++) | 4598 | for (int j = 0; j < dropp.ObjectData.Length; j++) |
@@ -4605,7 +4605,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4605 | } | 4605 | } |
4606 | } | 4606 | } |
4607 | break; | 4607 | break; |
4608 | 4608 | ||
4609 | case PacketType.SetAlwaysRun: | 4609 | case PacketType.SetAlwaysRun: |
4610 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; | 4610 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; |
4611 | 4611 | ||
@@ -4614,7 +4614,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4614 | handlerSetAlwaysRun(this, run.AgentData.AlwaysRun); | 4614 | handlerSetAlwaysRun(this, run.AgentData.AlwaysRun); |
4615 | 4615 | ||
4616 | break; | 4616 | break; |
4617 | 4617 | ||
4618 | case PacketType.CompleteAgentMovement: | 4618 | case PacketType.CompleteAgentMovement: |
4619 | handlerCompleteMovementToRegion = OnCompleteMovementToRegion; | 4619 | handlerCompleteMovementToRegion = OnCompleteMovementToRegion; |
4620 | if (handlerCompleteMovementToRegion != null) | 4620 | if (handlerCompleteMovementToRegion != null) |
@@ -4624,7 +4624,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4624 | handlerCompleteMovementToRegion = null; | 4624 | handlerCompleteMovementToRegion = null; |
4625 | 4625 | ||
4626 | break; | 4626 | break; |
4627 | 4627 | ||
4628 | case PacketType.AgentUpdate: | 4628 | case PacketType.AgentUpdate: |
4629 | if (OnAgentUpdate != null) | 4629 | if (OnAgentUpdate != null) |
4630 | { | 4630 | { |
@@ -4653,7 +4653,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4653 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); | 4653 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); |
4654 | } | 4654 | } |
4655 | break; | 4655 | break; |
4656 | 4656 | ||
4657 | case PacketType.AgentAnimation: | 4657 | case PacketType.AgentAnimation: |
4658 | AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack; | 4658 | AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack; |
4659 | 4659 | ||
@@ -4680,7 +4680,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4680 | } | 4680 | } |
4681 | } | 4681 | } |
4682 | break; | 4682 | break; |
4683 | 4683 | ||
4684 | case PacketType.AgentRequestSit: | 4684 | case PacketType.AgentRequestSit: |
4685 | if (OnAgentRequestSit != null) | 4685 | if (OnAgentRequestSit != null) |
4686 | { | 4686 | { |
@@ -4692,7 +4692,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4692 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | 4692 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); |
4693 | } | 4693 | } |
4694 | break; | 4694 | break; |
4695 | 4695 | ||
4696 | case PacketType.AgentSit: | 4696 | case PacketType.AgentSit: |
4697 | if (OnAgentSit != null) | 4697 | if (OnAgentSit != null) |
4698 | { | 4698 | { |
@@ -4705,7 +4705,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4705 | } | 4705 | } |
4706 | } | 4706 | } |
4707 | break; | 4707 | break; |
4708 | 4708 | ||
4709 | case PacketType.SoundTrigger: | 4709 | case PacketType.SoundTrigger: |
4710 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; | 4710 | SoundTriggerPacket soundTriggerPacket = (SoundTriggerPacket)Pack; |
4711 | handlerSoundTrigger = OnSoundTrigger; | 4711 | handlerSoundTrigger = OnSoundTrigger; |
@@ -4718,7 +4718,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4718 | 4718 | ||
4719 | } | 4719 | } |
4720 | break; | 4720 | break; |
4721 | 4721 | ||
4722 | case PacketType.AvatarPickerRequest: | 4722 | case PacketType.AvatarPickerRequest: |
4723 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; | 4723 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; |
4724 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; | 4724 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; |
@@ -4732,7 +4732,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4732 | Utils.BytesToString(querydata.Name)); | 4732 | Utils.BytesToString(querydata.Name)); |
4733 | } | 4733 | } |
4734 | break; | 4734 | break; |
4735 | 4735 | ||
4736 | case PacketType.AgentDataUpdateRequest: | 4736 | case PacketType.AgentDataUpdateRequest: |
4737 | AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack; | 4737 | AgentDataUpdateRequestPacket avRequestDataUpdatePacket = (AgentDataUpdateRequestPacket)Pack; |
4738 | 4738 | ||
@@ -5108,10 +5108,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5108 | break; | 5108 | break; |
5109 | case PacketType.ObjectName: | 5109 | case PacketType.ObjectName: |
5110 | ObjectNamePacket objName = (ObjectNamePacket)Pack; | 5110 | ObjectNamePacket objName = (ObjectNamePacket)Pack; |
5111 | 5111 | ||
5112 | handlerObjectName = null; | 5112 | handlerObjectName = null; |
5113 | for (int i = 0; i < objName.ObjectData.Length; i++) | 5113 | for (int i = 0; i < objName.ObjectData.Length; i++) |
5114 | { | 5114 | { |
5115 | handlerObjectName = OnObjectName; | 5115 | handlerObjectName = OnObjectName; |
5116 | if (handlerObjectName != null) | 5116 | if (handlerObjectName != null) |
5117 | { | 5117 | { |
@@ -5243,7 +5243,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5243 | ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack; | 5243 | ObjectClickActionPacket ocpacket = (ObjectClickActionPacket)Pack; |
5244 | 5244 | ||
5245 | handlerObjectClickAction = OnObjectClickAction; | 5245 | handlerObjectClickAction = OnObjectClickAction; |
5246 | if (handlerObjectClickAction != null) | 5246 | if (handlerObjectClickAction != null) |
5247 | { | 5247 | { |
5248 | foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData) | 5248 | foreach (ObjectClickActionPacket.ObjectDataBlock odata in ocpacket.ObjectData) |
5249 | { | 5249 | { |
@@ -5302,7 +5302,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5302 | break; | 5302 | break; |
5303 | case PacketType.TransferRequest: | 5303 | case PacketType.TransferRequest: |
5304 | //Console.WriteLine("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request"); | 5304 | //Console.WriteLine("ClientView.ProcessPackets.cs:ProcessInPacket() - Got transfer request"); |
5305 | 5305 | ||
5306 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; | 5306 | TransferRequestPacket transfer = (TransferRequestPacket)Pack; |
5307 | //Console.WriteLine("Transfer Request: " + transfer.ToString()); | 5307 | //Console.WriteLine("Transfer Request: " + transfer.ToString()); |
5308 | // Validate inventory transfers | 5308 | // Validate inventory transfers |
@@ -5346,12 +5346,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5346 | if (userInfo == null) | 5346 | if (userInfo == null) |
5347 | { | 5347 | { |
5348 | m_log.ErrorFormat( | 5348 | m_log.ErrorFormat( |
5349 | "[CLIENT]: Could not resolve user {0} for caps inventory update", | 5349 | "[CLIENT]: Could not resolve user {0} for caps inventory update", |
5350 | AgentId); | 5350 | AgentId); |
5351 | 5351 | ||
5352 | break; | 5352 | break; |
5353 | } | 5353 | } |
5354 | 5354 | ||
5355 | if (userInfo.RootFolder == null) | 5355 | if (userInfo.RootFolder == null) |
5356 | break; | 5356 | break; |
5357 | 5357 | ||
@@ -5881,7 +5881,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5881 | 5881 | ||
5882 | } | 5882 | } |
5883 | break; | 5883 | break; |
5884 | 5884 | ||
5885 | case PacketType.TeleportLocationRequest: | 5885 | case PacketType.TeleportLocationRequest: |
5886 | TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; | 5886 | TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; |
5887 | // Console.WriteLine(tpLocReq.ToString()); | 5887 | // Console.WriteLine(tpLocReq.ToString()); |
@@ -6693,11 +6693,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6693 | // TODO: handle this packet | 6693 | // TODO: handle this packet |
6694 | //m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet"); | 6694 | //m_log.Warn("[CLIENT]: unhandled ObjectSpinStop packet"); |
6695 | break; | 6695 | break; |
6696 | 6696 | ||
6697 | case PacketType.InventoryDescendents: | 6697 | case PacketType.InventoryDescendents: |
6698 | // TODO: handle this packet | 6698 | // TODO: handle this packet |
6699 | //m_log.Warn("[CLIENT]: unhandled InventoryDescent packet"); | 6699 | //m_log.Warn("[CLIENT]: unhandled InventoryDescent packet"); |
6700 | 6700 | ||
6701 | break; | 6701 | break; |
6702 | case PacketType.DirPlacesQuery: | 6702 | case PacketType.DirPlacesQuery: |
6703 | DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack; | 6703 | DirPlacesQueryPacket dirPlacesQueryPacket = (DirPlacesQueryPacket)Pack; |
@@ -6775,7 +6775,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6775 | OnEventInfoRequest(this, eventInfoRequestPacket.EventData.EventID); | 6775 | OnEventInfoRequest(this, eventInfoRequestPacket.EventData.EventID); |
6776 | } | 6776 | } |
6777 | break; | 6777 | break; |
6778 | 6778 | ||
6779 | case PacketType.ParcelSetOtherCleanTime: | 6779 | case PacketType.ParcelSetOtherCleanTime: |
6780 | ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack; | 6780 | ParcelSetOtherCleanTimePacket parcelSetOtherCleanTimePacket = (ParcelSetOtherCleanTimePacket)Pack; |
6781 | handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime; | 6781 | handlerParcelSetOtherCleanTime = OnParcelSetOtherCleanTime; |
@@ -7516,7 +7516,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7516 | } | 7516 | } |
7517 | 7517 | ||
7518 | public void SendAgentOnline(UUID[] agentIDs) | 7518 | public void SendAgentOnline(UUID[] agentIDs) |
7519 | { | 7519 | { |
7520 | OnlineNotificationPacket onp = new OnlineNotificationPacket(); | 7520 | OnlineNotificationPacket onp = new OnlineNotificationPacket(); |
7521 | OnlineNotificationPacket.AgentBlockBlock[] onpb = new OnlineNotificationPacket.AgentBlockBlock[agentIDs.Length]; | 7521 | OnlineNotificationPacket.AgentBlockBlock[] onpb = new OnlineNotificationPacket.AgentBlockBlock[agentIDs.Length]; |
7522 | for (int i = 0; i < agentIDs.Length; i++) | 7522 | for (int i = 0; i < agentIDs.Length; i++) |
@@ -7682,7 +7682,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7682 | { | 7682 | { |
7683 | Transfer.TransferInfo.Params = new byte[20]; | 7683 | Transfer.TransferInfo.Params = new byte[20]; |
7684 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 7684 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
7685 | int assType = req.AssetInf.Type; | 7685 | int assType = req.AssetInf.Metadata.Type; |
7686 | Array.Copy(Utils.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); | 7686 | Array.Copy(Utils.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); |
7687 | } | 7687 | } |
7688 | else if (req.AssetRequestSource == 3) | 7688 | else if (req.AssetRequestSource == 3) |
@@ -7901,7 +7901,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7901 | { | 7901 | { |
7902 | case "ReliableIsImportant": | 7902 | case "ReliableIsImportant": |
7903 | return m_PacketHandler.ReliableIsImportant.ToString(); | 7903 | return m_PacketHandler.ReliableIsImportant.ToString(); |
7904 | 7904 | ||
7905 | default: | 7905 | default: |
7906 | break; | 7906 | break; |
7907 | } | 7907 | } |
@@ -8340,7 +8340,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8340 | dg.AgentData = new AgentDropGroupPacket.AgentDataBlock(); | 8340 | dg.AgentData = new AgentDropGroupPacket.AgentDataBlock(); |
8341 | dg.AgentData.AgentID = AgentId; | 8341 | dg.AgentData.AgentID = AgentId; |
8342 | dg.AgentData.GroupID = groupID; | 8342 | dg.AgentData.GroupID = groupID; |
8343 | 8343 | ||
8344 | OutPacket(dg, ThrottleOutPacketType.Task); | 8344 | OutPacket(dg, ThrottleOutPacketType.Task); |
8345 | } | 8345 | } |
8346 | 8346 | ||
@@ -8352,7 +8352,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8352 | 8352 | ||
8353 | an.AgentData = new AvatarNotesReplyPacket.AgentDataBlock(); | 8353 | an.AgentData = new AvatarNotesReplyPacket.AgentDataBlock(); |
8354 | an.AgentData.AgentID = AgentId; | 8354 | an.AgentData.AgentID = AgentId; |
8355 | 8355 | ||
8356 | an.Data = new AvatarNotesReplyPacket.DataBlock(); | 8356 | an.Data = new AvatarNotesReplyPacket.DataBlock(); |
8357 | an.Data.TargetID = targetID; | 8357 | an.Data.TargetID = targetID; |
8358 | an.Data.Notes = Utils.StringToBytes(text); | 8358 | an.Data.Notes = Utils.StringToBytes(text); |
@@ -8369,7 +8369,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8369 | ap.AgentData = new AvatarPicksReplyPacket.AgentDataBlock(); | 8369 | ap.AgentData = new AvatarPicksReplyPacket.AgentDataBlock(); |
8370 | ap.AgentData.AgentID = AgentId; | 8370 | ap.AgentData.AgentID = AgentId; |
8371 | ap.AgentData.TargetID = targetID; | 8371 | ap.AgentData.TargetID = targetID; |
8372 | 8372 | ||
8373 | ap.Data = new AvatarPicksReplyPacket.DataBlock[picks.Count]; | 8373 | ap.Data = new AvatarPicksReplyPacket.DataBlock[picks.Count]; |
8374 | 8374 | ||
8375 | int i = 0; | 8375 | int i = 0; |
@@ -8393,7 +8393,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8393 | ac.AgentData = new AvatarClassifiedReplyPacket.AgentDataBlock(); | 8393 | ac.AgentData = new AvatarClassifiedReplyPacket.AgentDataBlock(); |
8394 | ac.AgentData.AgentID = AgentId; | 8394 | ac.AgentData.AgentID = AgentId; |
8395 | ac.AgentData.TargetID = targetID; | 8395 | ac.AgentData.TargetID = targetID; |
8396 | 8396 | ||
8397 | ac.Data = new AvatarClassifiedReplyPacket.DataBlock[classifieds.Count]; | 8397 | ac.Data = new AvatarClassifiedReplyPacket.DataBlock[classifieds.Count]; |
8398 | 8398 | ||
8399 | int i = 0; | 8399 | int i = 0; |
@@ -8416,7 +8416,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8416 | 8416 | ||
8417 | pd.AgentData = new ParcelDwellReplyPacket.AgentDataBlock(); | 8417 | pd.AgentData = new ParcelDwellReplyPacket.AgentDataBlock(); |
8418 | pd.AgentData.AgentID = AgentId; | 8418 | pd.AgentData.AgentID = AgentId; |
8419 | 8419 | ||
8420 | pd.Data = new ParcelDwellReplyPacket.DataBlock(); | 8420 | pd.Data = new ParcelDwellReplyPacket.DataBlock(); |
8421 | pd.Data.LocalID = localID; | 8421 | pd.Data.LocalID = localID; |
8422 | pd.Data.ParcelID = parcelID; | 8422 | pd.Data.ParcelID = parcelID; |
@@ -8437,7 +8437,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8437 | 8437 | ||
8438 | ur.AgentData = new UserInfoReplyPacket.AgentDataBlock(); | 8438 | ur.AgentData = new UserInfoReplyPacket.AgentDataBlock(); |
8439 | ur.AgentData.AgentID = AgentId; | 8439 | ur.AgentData.AgentID = AgentId; |
8440 | 8440 | ||
8441 | ur.UserData = new UserInfoReplyPacket.UserDataBlock(); | 8441 | ur.UserData = new UserInfoReplyPacket.UserDataBlock(); |
8442 | ur.UserData.IMViaEMail = imViaEmail; | 8442 | ur.UserData.IMViaEMail = imViaEmail; |
8443 | ur.UserData.DirectoryVisibility = Utils.StringToBytes(Visible); | 8443 | ur.UserData.DirectoryVisibility = Utils.StringToBytes(Visible); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs index 517de34..d2d86b9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLFileTransfer.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
42 | { | 42 | { |
43 | /// <summary> | 43 | /// <summary> |
44 | /// A work in progress, to contain the SL specific file transfer code that is currently in various region modules | 44 | /// A work in progress, to contain the SL specific file transfer code that is currently in various region modules |
45 | /// This file currently contains multiple classes that need to be split out into their own files. | 45 | /// This file currently contains multiple classes that need to be split out into their own files. |
46 | /// </summary> | 46 | /// </summary> |
47 | public class LLFileTransfer : IClientFileTransfer | 47 | public class LLFileTransfer : IClientFileTransfer |
48 | { | 48 | { |
@@ -206,13 +206,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
206 | private void Initialise(UUID fileID, string fileName) | 206 | private void Initialise(UUID fileID, string fileName) |
207 | { | 207 | { |
208 | m_asset = new AssetBase(); | 208 | m_asset = new AssetBase(); |
209 | m_asset.FullID = fileID; | 209 | m_asset.Metadata.FullID = fileID; |
210 | m_asset.Type = type; | 210 | m_asset.Metadata.Type = type; |
211 | m_asset.Data = new byte[0]; | 211 | m_asset.Data = new byte[0]; |
212 | m_asset.Name = fileName; | 212 | m_asset.Metadata.Name = fileName; |
213 | m_asset.Description = "empty"; | 213 | m_asset.Metadata.Description = "empty"; |
214 | m_asset.Local = true; | 214 | m_asset.Metadata.Local = true; |
215 | m_asset.Temporary = true; | 215 | m_asset.Metadata.Temporary = true; |
216 | mXferID = Util.GetNextXferID(); | 216 | mXferID = Util.GetNextXferID(); |
217 | } | 217 | } |
218 | 218 | ||
@@ -223,13 +223,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
223 | 223 | ||
224 | public void RequestStartXfer(IClientAPI pRemoteClient) | 224 | public void RequestStartXfer(IClientAPI pRemoteClient) |
225 | { | 225 | { |
226 | if (!String.IsNullOrEmpty(m_asset.Name)) | 226 | if (!String.IsNullOrEmpty(m_asset.Metadata.Name)) |
227 | { | 227 | { |
228 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, Utils.StringToBytes(m_asset.Name)); | 228 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, Utils.StringToBytes(m_asset.Metadata.Name)); |
229 | } | 229 | } |
230 | else | 230 | else |
231 | { | 231 | { |
232 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, new byte[0]); | 232 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, new byte[0]); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | 235 | ||
@@ -238,7 +238,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
238 | /// </summary> | 238 | /// </summary> |
239 | /// <param name="xferID"></param> | 239 | /// <param name="xferID"></param> |
240 | /// <param name="packetID"></param> | 240 | /// <param name="packetID"></param> |
241 | /// <param name="data"></param> | 241 | /// <param name="data"></param> |
242 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) | 242 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) |
243 | { | 243 | { |
244 | if (mXferID == xferID) | 244 | if (mXferID == xferID) |
@@ -273,7 +273,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
273 | handlerUploadDone = UploadDone; | 273 | handlerUploadDone = UploadDone; |
274 | if (handlerUploadDone != null) | 274 | if (handlerUploadDone != null) |
275 | { | 275 | { |
276 | handlerUploadDone(m_asset.Name, m_asset.FullID, mXferID, m_asset.Data, remoteClient); | 276 | handlerUploadDone(m_asset.Metadata.Name, m_asset.Metadata.FullID, mXferID, m_asset.Data, remoteClient); |
277 | } | 277 | } |
278 | } | 278 | } |
279 | 279 | ||
@@ -282,7 +282,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
282 | handlerAbort = UploadAborted; | 282 | handlerAbort = UploadAborted; |
283 | if (handlerAbort != null) | 283 | if (handlerAbort != null) |
284 | { | 284 | { |
285 | handlerAbort(m_asset.Name, m_asset.FullID, mXferID, remoteClient); | 285 | handlerAbort(m_asset.Metadata.Name, m_asset.Metadata.FullID, mXferID, remoteClient); |
286 | } | 286 | } |
287 | } | 287 | } |
288 | } | 288 | } |
@@ -373,4 +373,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
373 | } | 373 | } |
374 | } | 374 | } |
375 | 375 | ||
376 | } \ No newline at end of file | 376 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs index 3b21c85..f903c45 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
47 | /// Priority Queue for images. Contains lots of data | 47 | /// Priority Queue for images. Contains lots of data |
48 | /// </summary> | 48 | /// </summary> |
49 | private readonly IPriorityQueue<Prio<J2KImage>> pq = new IntervalHeap<Prio<J2KImage>>(); | 49 | private readonly IPriorityQueue<Prio<J2KImage>> pq = new IntervalHeap<Prio<J2KImage>>(); |
50 | 50 | ||
51 | /// <summary> | 51 | /// <summary> |
52 | /// Dictionary of PriorityQueue handles by AssetId | 52 | /// Dictionary of PriorityQueue handles by AssetId |
53 | /// </summary> | 53 | /// </summary> |
@@ -87,7 +87,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
87 | 87 | ||
88 | //if (req.RequestType == 1) // avatar body texture! | 88 | //if (req.RequestType == 1) // avatar body texture! |
89 | // return; | 89 | // return; |
90 | 90 | ||
91 | AddQueueItem(req.RequestedAssetID, (int)req.Priority + 100000); | 91 | AddQueueItem(req.RequestedAssetID, (int)req.Priority + 100000); |
92 | //if (pq[PQHandles[req.RequestedAssetID]].data.Missing) | 92 | //if (pq[PQHandles[req.RequestedAssetID]].data.Missing) |
93 | //{ | 93 | //{ |
@@ -96,9 +96,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
96 | // | 96 | // |
97 | //if (pq[PQHandles[req.RequestedAssetID]].data.HasData && pq[PQHandles[req.RequestedAssetID]].data.Layers.Length > 0) | 97 | //if (pq[PQHandles[req.RequestedAssetID]].data.HasData && pq[PQHandles[req.RequestedAssetID]].data.Layers.Length > 0) |
98 | //{ | 98 | //{ |
99 | 99 | ||
100 | //} | 100 | //} |
101 | 101 | ||
102 | pq[PQHandles[req.RequestedAssetID]].data.requestedUUID = req.RequestedAssetID; | 102 | pq[PQHandles[req.RequestedAssetID]].data.requestedUUID = req.RequestedAssetID; |
103 | pq[PQHandles[req.RequestedAssetID]].data.Priority = (int)req.Priority; | 103 | pq[PQHandles[req.RequestedAssetID]].data.Priority = (int)req.Priority; |
104 | 104 | ||
@@ -118,7 +118,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
118 | return; | 118 | return; |
119 | 119 | ||
120 | //Console.WriteLine("AssetCallback for assetId" + assetID); | 120 | //Console.WriteLine("AssetCallback for assetId" + assetID); |
121 | 121 | ||
122 | if (asset == null || asset.Data == null) | 122 | if (asset == null || asset.Data == null) |
123 | { | 123 | { |
124 | lock (pq) | 124 | lock (pq) |
@@ -132,12 +132,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
132 | 132 | ||
133 | 133 | ||
134 | pq[PQHandles[assetID]].data.asset = asset; | 134 | pq[PQHandles[assetID]].data.asset = asset; |
135 | 135 | ||
136 | //lock (pq[PQHandles[assetID]].data) | 136 | //lock (pq[PQHandles[assetID]].data) |
137 | pq[PQHandles[assetID]].data.Update((int)pq[PQHandles[assetID]].data.Priority, pq[PQHandles[assetID]].data.CurrentPacket); | 137 | pq[PQHandles[assetID]].data.Update((int)pq[PQHandles[assetID]].data.Priority, pq[PQHandles[assetID]].data.CurrentPacket); |
138 | 138 | ||
139 | 139 | ||
140 | 140 | ||
141 | } | 141 | } |
142 | 142 | ||
143 | /// <summary> | 143 | /// <summary> |
@@ -174,7 +174,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
174 | // Is the asset missing? | 174 | // Is the asset missing? |
175 | if (process.data.Missing) | 175 | if (process.data.Missing) |
176 | { | 176 | { |
177 | 177 | ||
178 | //m_client.sendtextur | 178 | //m_client.sendtextur |
179 | pq[h] -= 90000; | 179 | pq[h] -= 90000; |
180 | /* | 180 | /* |
@@ -191,7 +191,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
191 | // Substitute a blank image | 191 | // Substitute a blank image |
192 | process.data.asset = MissingSubstitute; | 192 | process.data.asset = MissingSubstitute; |
193 | process.data.Missing = false; | 193 | process.data.Missing = false; |
194 | 194 | ||
195 | // If the priority is less then -4billion, the client has forgotten about it. | 195 | // If the priority is less then -4billion, the client has forgotten about it. |
196 | if (pq[h] < -400000000) | 196 | if (pq[h] < -400000000) |
197 | { | 197 | { |
@@ -224,7 +224,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
224 | j2kDecodedCallback(process.data.AssetId, new OpenJPEG.J2KLayerInfo[0]); | 224 | j2kDecodedCallback(process.data.AssetId, new OpenJPEG.J2KLayerInfo[0]); |
225 | } | 225 | } |
226 | 226 | ||
227 | 227 | ||
228 | 228 | ||
229 | } // Are we waiting? | 229 | } // Are we waiting? |
230 | else if (!process.data.J2KDecodeWaiting) | 230 | else if (!process.data.J2KDecodeWaiting) |
@@ -259,10 +259,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
259 | 259 | ||
260 | //pq[h] = process; | 260 | //pq[h] = process; |
261 | } | 261 | } |
262 | 262 | ||
263 | // uncomment the following line to see the upper most asset and the priority | 263 | // uncomment the following line to see the upper most asset and the priority |
264 | //Console.WriteLine(process.ToString()); | 264 | //Console.WriteLine(process.ToString()); |
265 | 265 | ||
266 | // Lower priority to give the next image a chance to bubble up | 266 | // Lower priority to give the next image a chance to bubble up |
267 | pq[h] -= 50000; | 267 | pq[h] -= 50000; |
268 | } | 268 | } |
@@ -318,7 +318,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
318 | } | 318 | } |
319 | } | 319 | } |
320 | } | 320 | } |
321 | 321 | ||
322 | 322 | ||
323 | /// <summary> | 323 | /// <summary> |
324 | /// Adds an image to the queue and update priority | 324 | /// Adds an image to the queue and update priority |
@@ -336,7 +336,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
336 | { | 336 | { |
337 | h = PQHandles[AssetId]; | 337 | h = PQHandles[AssetId]; |
338 | pq[h] = pq[h].SetPriority(priority); | 338 | pq[h] = pq[h].SetPriority(priority); |
339 | 339 | ||
340 | } | 340 | } |
341 | else | 341 | else |
342 | { | 342 | { |
@@ -354,7 +354,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
354 | public void Close() | 354 | public void Close() |
355 | { | 355 | { |
356 | m_shuttingdown = true; | 356 | m_shuttingdown = true; |
357 | 357 | ||
358 | lock (pq) | 358 | lock (pq) |
359 | { | 359 | { |
360 | while (!pq.IsEmpty) | 360 | while (!pq.IsEmpty) |
@@ -362,7 +362,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
362 | pq.DeleteMin(); | 362 | pq.DeleteMin(); |
363 | } | 363 | } |
364 | } | 364 | } |
365 | 365 | ||
366 | 366 | ||
367 | lock (PQHandles) | 367 | lock (PQHandles) |
368 | PQHandles.Clear(); | 368 | PQHandles.Clear(); |
@@ -423,7 +423,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
423 | /// </summary> | 423 | /// </summary> |
424 | public UUID AssetId | 424 | public UUID AssetId |
425 | { | 425 | { |
426 | get { return m_asset_ref.FullID; } | 426 | get { return m_asset_ref.Metadata.FullID; } |
427 | } | 427 | } |
428 | 428 | ||
429 | /// <summary> | 429 | /// <summary> |
@@ -544,7 +544,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
544 | /// <returns>true if a packet was sent, false if not</returns> | 544 | /// <returns>true if a packet was sent, false if not</returns> |
545 | public bool SendPacket(LLClientView client) | 545 | public bool SendPacket(LLClientView client) |
546 | { | 546 | { |
547 | // If we've hit the end of the send or if the client set -1, return false. | 547 | // If we've hit the end of the send or if the client set -1, return false. |
548 | if (CurrentPacket > StopPacket || StopPacket == -1) | 548 | if (CurrentPacket > StopPacket || StopPacket == -1) |
549 | return false; | 549 | return false; |
550 | 550 | ||
@@ -564,7 +564,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
564 | } | 564 | } |
565 | else | 565 | else |
566 | { | 566 | { |
567 | 567 | ||
568 | // Send first packet | 568 | // Send first packet |
569 | byte[] firstImageData = new byte[FIRST_IMAGE_PACKET_SIZE]; | 569 | byte[] firstImageData = new byte[FIRST_IMAGE_PACKET_SIZE]; |
570 | try { Buffer.BlockCopy(m_asset_ref.Data, 0, firstImageData, 0, FIRST_IMAGE_PACKET_SIZE); } | 570 | try { Buffer.BlockCopy(m_asset_ref.Data, 0, firstImageData, 0, FIRST_IMAGE_PACKET_SIZE); } |
@@ -585,7 +585,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
585 | // figure out if we're on the last packet, if so, use the last packet size. If not, use 1000. | 585 | // figure out if we're on the last packet, if so, use the last packet size. If not, use 1000. |
586 | // we know that the total image size is greater then 1000 if we're here | 586 | // we know that the total image size is greater then 1000 if we're here |
587 | int imagePacketSize = (CurrentPacket == (TexturePacketCount() ) ) ? LastPacketSize() : IMAGE_PACKET_SIZE; | 587 | int imagePacketSize = (CurrentPacket == (TexturePacketCount() ) ) ? LastPacketSize() : IMAGE_PACKET_SIZE; |
588 | 588 | ||
589 | //if (imagePacketSize > 0) | 589 | //if (imagePacketSize > 0) |
590 | // imagePacketSize = IMAGE_PACKET_SIZE; | 590 | // imagePacketSize = IMAGE_PACKET_SIZE; |
591 | //if (imagePacketSize != 1000) | 591 | //if (imagePacketSize != 1000) |
@@ -611,7 +611,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
611 | try { Buffer.BlockCopy(m_asset_ref.Data, CurrentBytePosition(), imageData, 0, imagePacketSize); } | 611 | try { Buffer.BlockCopy(m_asset_ref.Data, CurrentBytePosition(), imageData, 0, imagePacketSize); } |
612 | catch (Exception e) | 612 | catch (Exception e) |
613 | { | 613 | { |
614 | Console.WriteLine(String.Format("Err: srcLen:{0}, BytePos:{1}, desLen:{2}, pktsize:{3}, currpak:{4}, stoppak:{5}, totalpak:{6}", m_asset_ref.Data.Length, CurrentBytePosition(), | 614 | Console.WriteLine(String.Format("Err: srcLen:{0}, BytePos:{1}, desLen:{2}, pktsize:{3}, currpak:{4}, stoppak:{5}, totalpak:{6}", m_asset_ref.Data.Length, CurrentBytePosition(), |
615 | imageData.Length, imagePacketSize, CurrentPacket,StopPacket,TexturePacketCount())); | 615 | imageData.Length, imagePacketSize, CurrentPacket,StopPacket,TexturePacketCount())); |
616 | Console.WriteLine(e.ToString()); | 616 | Console.WriteLine(e.ToString()); |
617 | //m_log.Error("Texture data copy failed for " + m_asset_ref.FullID.ToString()); | 617 | //m_log.Error("Texture data copy failed for " + m_asset_ref.FullID.ToString()); |
@@ -622,7 +622,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
622 | 622 | ||
623 | // Send next packet to the client | 623 | // Send next packet to the client |
624 | client.SendImageNextPart((ushort)(CurrentPacket - 1), requestedUUID, imageData); | 624 | client.SendImageNextPart((ushort)(CurrentPacket - 1), requestedUUID, imageData); |
625 | 625 | ||
626 | ++CurrentPacket; | 626 | ++CurrentPacket; |
627 | 627 | ||
628 | if (atEnd) | 628 | if (atEnd) |
@@ -630,7 +630,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
630 | 630 | ||
631 | return true; | 631 | return true; |
632 | } | 632 | } |
633 | 633 | ||
634 | } | 634 | } |
635 | 635 | ||
636 | /// <summary> | 636 | /// <summary> |
@@ -676,7 +676,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
676 | 676 | ||
677 | public static Prio<D> operator -(Prio<D> tp, int delta) | 677 | public static Prio<D> operator -(Prio<D> tp, int delta) |
678 | { | 678 | { |
679 | if (tp.priority - delta < 0) | 679 | if (tp.priority - delta < 0) |
680 | return new Prio<D>(tp.data, tp.priority - delta); | 680 | return new Prio<D>(tp.data, tp.priority - delta); |
681 | else | 681 | else |
682 | return new Prio<D>(tp.data, 0); | 682 | return new Prio<D>(tp.data, 0); |