diff options
Diffstat (limited to 'OpenSim/Region')
17 files changed, 573 insertions, 573 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); |
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs index 0874676..961ecb1 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs | |||
@@ -1,29 +1,29 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (c) 2008, Contributors. All rights reserved. | 2 | * Copyright (c) 2008, Contributors. All rights reserved. |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without modification, | 5 | * Redistribution and use in source and binary forms, with or without modification, |
6 | * are permitted provided that the following conditions are met: | 6 | * are permitted provided that the following conditions are met: |
7 | * | 7 | * |
8 | * * Redistributions of source code must retain the above copyright notice, | 8 | * * Redistributions of source code must retain the above copyright notice, |
9 | * this list of conditions and the following disclaimer. | 9 | * this list of conditions and the following disclaimer. |
10 | * * Redistributions in binary form must reproduce the above copyright notice, | 10 | * * Redistributions in binary form must reproduce the above copyright notice, |
11 | * this list of conditions and the following disclaimer in the documentation | 11 | * this list of conditions and the following disclaimer in the documentation |
12 | * and/or other materials provided with the distribution. | 12 | * and/or other materials provided with the distribution. |
13 | * * Neither the name of the Organizations nor the names of Individual | 13 | * * Neither the name of the Organizations nor the names of Individual |
14 | * Contributors may be used to endorse or promote products derived from | 14 | * Contributors may be used to endorse or promote products derived from |
15 | * this software without specific prior written permission. | 15 | * this software without specific prior written permission. |
16 | * | 16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | 19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL |
20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | 21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | 22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
25 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | 29 | ||
@@ -73,11 +73,11 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
73 | public BaseHttpServer httpServer; | 73 | public BaseHttpServer httpServer; |
74 | 74 | ||
75 | protected List<RegionInfo> m_regionsOnInstance = new List<RegionInfo>(); | 75 | protected List<RegionInfo> m_regionsOnInstance = new List<RegionInfo>(); |
76 | 76 | ||
77 | // Hyperlink regions are hyperlinks on the map | 77 | // Hyperlink regions are hyperlinks on the map |
78 | protected List<RegionInfo> m_hyperlinkRegions = new List<RegionInfo>(); | 78 | protected List<RegionInfo> m_hyperlinkRegions = new List<RegionInfo>(); |
79 | 79 | ||
80 | // Known regions are home regions of visiting foreign users. | 80 | // Known regions are home regions of visiting foreign users. |
81 | // They are not on the map as static hyperlinks. They are dynamic hyperlinks, they go away when | 81 | // They are not on the map as static hyperlinks. They are dynamic hyperlinks, they go away when |
82 | // the visitor goes away. They are mapped to X=0 on the map. | 82 | // the visitor goes away. They are mapped to X=0 on the map. |
83 | // This is key-ed on agent ID | 83 | // This is key-ed on agent ID |
@@ -326,13 +326,13 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
326 | //Console.WriteLine("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); | 326 | //Console.WriteLine("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width); |
327 | byte[] imageData = OpenJPEG.EncodeFromImage(m, true); | 327 | byte[] imageData = OpenJPEG.EncodeFromImage(m, true); |
328 | AssetBase ass = new AssetBase(UUID.Random(), "region " + info.RegionID.ToString()); | 328 | AssetBase ass = new AssetBase(UUID.Random(), "region " + info.RegionID.ToString()); |
329 | info.RegionSettings.TerrainImageID = ass.FullID; | 329 | info.RegionSettings.TerrainImageID = ass.Metadata.FullID; |
330 | ass.Type = (int)AssetType.Texture; | 330 | ass.Metadata.Type = (int)AssetType.Texture; |
331 | ass.Temporary = false; | 331 | ass.Metadata.Temporary = false; |
332 | //imageData.CopyTo(ass.Data, 0); | 332 | //imageData.CopyTo(ass.Data, 0); |
333 | ass.Data = imageData; | 333 | ass.Data = imageData; |
334 | m_assetcache.AddAsset(ass); | 334 | m_assetcache.AddAsset(ass); |
335 | 335 | ||
336 | } | 336 | } |
337 | catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke | 337 | catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke |
338 | { | 338 | { |
@@ -342,7 +342,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
342 | 342 | ||
343 | // A little ugly, since this code is exactly the same as OSG1's, and we're already | 343 | // A little ugly, since this code is exactly the same as OSG1's, and we're already |
344 | // calling that for when the region in in grid mode... (for the grid regions) | 344 | // calling that for when the region in in grid mode... (for the grid regions) |
345 | // | 345 | // |
346 | public virtual LandData RequestLandData (ulong regionHandle, uint x, uint y) | 346 | public virtual LandData RequestLandData (ulong regionHandle, uint x, uint y) |
347 | { | 347 | { |
348 | m_log.DebugFormat("[HGrid]: requests land data in {0}, at {1}, {2}", | 348 | m_log.DebugFormat("[HGrid]: requests land data in {0}, at {1}, {2}", |
@@ -542,23 +542,23 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
542 | m_log.Info("[HGrid]: InformRegionOfUser: Local grid region " + regInfo.regionSecret); | 542 | m_log.Info("[HGrid]: InformRegionOfUser: Local grid region " + regInfo.regionSecret); |
543 | } | 543 | } |
544 | 544 | ||
545 | string capsPath = agentData.CapsPath; | 545 | string capsPath = agentData.CapsPath; |
546 | Hashtable loginParams = new Hashtable(); | 546 | Hashtable loginParams = new Hashtable(); |
547 | loginParams["session_id"] = agentData.SessionID.ToString(); | 547 | loginParams["session_id"] = agentData.SessionID.ToString(); |
548 | loginParams["secure_session_id"] = agentData.SecureSessionID.ToString(); | 548 | loginParams["secure_session_id"] = agentData.SecureSessionID.ToString(); |
549 | 549 | ||
550 | loginParams["firstname"] = agentData.firstname; | 550 | loginParams["firstname"] = agentData.firstname; |
551 | loginParams["lastname"] = agentData.lastname; | 551 | loginParams["lastname"] = agentData.lastname; |
552 | 552 | ||
553 | loginParams["agent_id"] = agentData.AgentID.ToString(); | 553 | loginParams["agent_id"] = agentData.AgentID.ToString(); |
554 | loginParams["circuit_code"] = agentData.circuitcode.ToString(); | 554 | loginParams["circuit_code"] = agentData.circuitcode.ToString(); |
555 | loginParams["startpos_x"] = agentData.startpos.X.ToString(); | 555 | loginParams["startpos_x"] = agentData.startpos.X.ToString(); |
556 | loginParams["startpos_y"] = agentData.startpos.Y.ToString(); | 556 | loginParams["startpos_y"] = agentData.startpos.Y.ToString(); |
557 | loginParams["startpos_z"] = agentData.startpos.Z.ToString(); | 557 | loginParams["startpos_z"] = agentData.startpos.Z.ToString(); |
558 | loginParams["caps_path"] = capsPath; | 558 | loginParams["caps_path"] = capsPath; |
559 | 559 | ||
560 | CachedUserInfo u = m_userProfileCache.GetUserDetails(agentData.AgentID); | 560 | CachedUserInfo u = m_userProfileCache.GetUserDetails(agentData.AgentID); |
561 | if (u != null && u.UserProfile != null) | 561 | if (u != null && u.UserProfile != null) |
562 | { | 562 | { |
563 | loginParams["region_uuid"] = u.UserProfile.HomeRegionID.ToString(); // This seems to be always Zero | 563 | loginParams["region_uuid"] = u.UserProfile.HomeRegionID.ToString(); // This seems to be always Zero |
564 | //Console.WriteLine(" --------- Home Region UUID -------"); | 564 | //Console.WriteLine(" --------- Home Region UUID -------"); |
@@ -691,7 +691,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
691 | 691 | ||
692 | userData.UserServerURI = (string)requestData["userserver_id"]; | 692 | userData.UserServerURI = (string)requestData["userserver_id"]; |
693 | userData.UserAssetURI = (string)requestData["assetserver_id"]; | 693 | userData.UserAssetURI = (string)requestData["assetserver_id"]; |
694 | userData.UserInventoryURI = (string)requestData["inventoryserver_id"]; | 694 | userData.UserInventoryURI = (string)requestData["inventoryserver_id"]; |
695 | 695 | ||
696 | UUID rootID = UUID.Zero; | 696 | UUID rootID = UUID.Zero; |
697 | UUID.TryParse((string)requestData["root_folder_id"], out rootID); | 697 | UUID.TryParse((string)requestData["root_folder_id"], out rootID); |
@@ -710,7 +710,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
710 | 710 | ||
711 | m_log.DebugFormat("[HGrid]: Told by user service to prepare for a connection from {0} {1} {2}", | 711 | m_log.DebugFormat("[HGrid]: Told by user service to prepare for a connection from {0} {1} {2}", |
712 | userData.FirstName, userData.SurName, userData.ID); | 712 | userData.FirstName, userData.SurName, userData.ID); |
713 | m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress + | 713 | m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress + |
714 | "; home_port: " + userData.UserHomePort + "; remoting: " + userData.UserHomeRemotingPort); | 714 | "; home_port: " + userData.UserHomePort + "; remoting: " + userData.UserHomeRemotingPort); |
715 | 715 | ||
716 | 716 | ||
@@ -926,7 +926,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
926 | return true; | 926 | return true; |
927 | } | 927 | } |
928 | 928 | ||
929 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) | 929 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) |
930 | { | 930 | { |
931 | // If we're here, it's because regionHandle is a remote, non-grided region | 931 | // If we're here, it's because regionHandle is a remote, non-grided region |
932 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); | 932 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); |
@@ -934,7 +934,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
934 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); | 934 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); |
935 | if (regInfo == null) | 935 | if (regInfo == null) |
936 | return false; | 936 | return false; |
937 | 937 | ||
938 | //ulong realHandle = regionHandle; | 938 | //ulong realHandle = regionHandle; |
939 | 939 | ||
940 | if (!SendUserInformation(regInfo, agentData)) | 940 | if (!SendUserInformation(regInfo, agentData)) |
@@ -1184,7 +1184,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1184 | #region Methods triggered by calls from external instances | 1184 | #region Methods triggered by calls from external instances |
1185 | 1185 | ||
1186 | /// <summary> | 1186 | /// <summary> |
1187 | /// | 1187 | /// |
1188 | /// </summary> | 1188 | /// </summary> |
1189 | /// <param name="regionHandle"></param> | 1189 | /// <param name="regionHandle"></param> |
1190 | /// <param name="agentData"></param> | 1190 | /// <param name="agentData"></param> |
@@ -1192,7 +1192,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1192 | public void AdjustUserInformation(AgentCircuitData agentData) | 1192 | public void AdjustUserInformation(AgentCircuitData agentData) |
1193 | { | 1193 | { |
1194 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); | 1194 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); |
1195 | if ((uinfo != null) && (uinfo.UserProfile != null) && | 1195 | if ((uinfo != null) && (uinfo.UserProfile != null) && |
1196 | (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData))) | 1196 | (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData))) |
1197 | { | 1197 | { |
1198 | //Console.WriteLine("---------------> Local User!"); | 1198 | //Console.WriteLine("---------------> Local User!"); |
@@ -1232,7 +1232,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1232 | if (info.RegionHandle == ihandle) | 1232 | if (info.RegionHandle == ihandle) |
1233 | return info; | 1233 | return info; |
1234 | } | 1234 | } |
1235 | 1235 | ||
1236 | return null; | 1236 | return null; |
1237 | } | 1237 | } |
1238 | 1238 | ||
@@ -1250,7 +1250,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1250 | ohandle = Convert.ToInt64(info.regionSecret); | 1250 | ohandle = Convert.ToInt64(info.regionSecret); |
1251 | m_log.Info("[HGrid] remote region " + ohandle); | 1251 | m_log.Info("[HGrid] remote region " + ohandle); |
1252 | } | 1252 | } |
1253 | catch | 1253 | catch |
1254 | { | 1254 | { |
1255 | m_log.Error("[HGrid] Could not convert secret for " + ihandle + " (" + info.regionSecret + ")"); | 1255 | m_log.Error("[HGrid] Could not convert secret for " + ihandle + " (" + info.regionSecret + ")"); |
1256 | } | 1256 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs index 689b4d5..7f4bb0b 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AgentAssetsTransactions.cs | |||
@@ -72,7 +72,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
72 | } | 72 | } |
73 | 73 | ||
74 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) | 74 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) |
75 | { | 75 | { |
76 | lock (XferUploaders) | 76 | lock (XferUploaders) |
77 | { | 77 | { |
78 | foreach (AssetXferUploader uploader in XferUploaders.Values) | 78 | foreach (AssetXferUploader uploader in XferUploaders.Values) |
@@ -97,8 +97,8 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
97 | wearableType, nextOwnerMask); | 97 | wearableType, nextOwnerMask); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | 101 | ||
102 | 102 | ||
103 | /// <summary> | 103 | /// <summary> |
104 | /// Get an uploaded asset. If the data is successfully retrieved, the transaction will be removed. | 104 | /// Get an uploaded asset. If the data is successfully retrieved, the transaction will be removed. |
@@ -171,10 +171,10 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
171 | "[ASSET TRANSACTIONS]: Updating task item {0} in {1} with asset in transaction {2}", | 171 | "[ASSET TRANSACTIONS]: Updating task item {0} in {1} with asset in transaction {2}", |
172 | item.Name, part.Name, transactionID); | 172 | item.Name, part.Name, transactionID); |
173 | 173 | ||
174 | asset.Name = item.Name; | 174 | asset.Metadata.Name = item.Name; |
175 | asset.Description = item.Description; | 175 | asset.Metadata.Description = item.Description; |
176 | asset.Type = (sbyte)item.Type; | 176 | asset.Metadata.Type = (sbyte)item.Type; |
177 | item.AssetID = asset.FullID; | 177 | item.AssetID = asset.Metadata.FullID; |
178 | 178 | ||
179 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); | 179 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); |
180 | 180 | ||
@@ -206,14 +206,14 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
206 | asset = GetTransactionAsset(transactionID); | 206 | asset = GetTransactionAsset(transactionID); |
207 | } | 207 | } |
208 | 208 | ||
209 | if (asset != null && asset.FullID == assetID) | 209 | if (asset != null && asset.Metadata.FullID == assetID) |
210 | { | 210 | { |
211 | // Assets never get updated, new ones get created | 211 | // Assets never get updated, new ones get created |
212 | asset.FullID = UUID.Random(); | 212 | asset.Metadata.FullID = UUID.Random(); |
213 | asset.Name = item.Name; | 213 | asset.Metadata.Name = item.Name; |
214 | asset.Description = item.Description; | 214 | asset.Metadata.Description = item.Description; |
215 | asset.Type = (sbyte)item.AssetType; | 215 | asset.Metadata.Type = (sbyte)item.AssetType; |
216 | item.AssetID = asset.FullID; | 216 | item.AssetID = asset.Metadata.FullID; |
217 | 217 | ||
218 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); | 218 | Manager.MyScene.CommsManager.AssetCache.AddAsset(asset); |
219 | } | 219 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs index 6dcbe83..5387165 100644 --- a/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs +++ b/OpenSim/Region/Environment/Modules/Agent/AssetTransaction/AssetXferUploader.cs | |||
@@ -113,17 +113,17 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
113 | { | 113 | { |
114 | ourClient = remoteClient; | 114 | ourClient = remoteClient; |
115 | m_asset = new AssetBase(); | 115 | m_asset = new AssetBase(); |
116 | m_asset.FullID = assetID; | 116 | m_asset.Metadata.FullID = assetID; |
117 | m_asset.Type = type; | 117 | m_asset.Metadata.Type = type; |
118 | m_asset.Data = data; | 118 | m_asset.Data = data; |
119 | m_asset.Name = "blank"; | 119 | m_asset.Metadata.Name = "blank"; |
120 | m_asset.Description = "empty"; | 120 | m_asset.Metadata.Description = "empty"; |
121 | m_asset.Local = storeLocal; | 121 | m_asset.Metadata.Local = storeLocal; |
122 | m_asset.Temporary = tempFile; | 122 | m_asset.Metadata.Temporary = tempFile; |
123 | 123 | ||
124 | TransactionID = transaction; | 124 | TransactionID = transaction; |
125 | m_storeLocal = storeLocal; | 125 | m_storeLocal = storeLocal; |
126 | 126 | ||
127 | if (m_asset.Data.Length > 2) | 127 | if (m_asset.Data.Length > 2) |
128 | { | 128 | { |
129 | SendCompleteMessage(); | 129 | SendCompleteMessage(); |
@@ -140,12 +140,12 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
140 | protected void RequestStartXfer() | 140 | protected void RequestStartXfer() |
141 | { | 141 | { |
142 | XferID = Util.GetNextXferID(); | 142 | XferID = Util.GetNextXferID(); |
143 | ourClient.SendXferRequest(XferID, m_asset.Type, m_asset.FullID, 0, new byte[0]); | 143 | ourClient.SendXferRequest(XferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, new byte[0]); |
144 | } | 144 | } |
145 | 145 | ||
146 | protected void SendCompleteMessage() | 146 | protected void SendCompleteMessage() |
147 | { | 147 | { |
148 | ourClient.SendAssetUploadCompleteMessage(m_asset.Type, true, m_asset.FullID); | 148 | ourClient.SendAssetUploadCompleteMessage(m_asset.Metadata.Type, true, m_asset.Metadata.FullID); |
149 | 149 | ||
150 | m_finished = true; | 150 | m_finished = true; |
151 | if (m_createItem) | 151 | if (m_createItem) |
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
164 | DateTime now = DateTime.Now; | 164 | DateTime now = DateTime.Now; |
165 | string filename = | 165 | string filename = |
166 | String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}.dat", now.Year, now.Month, now.Day, | 166 | String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}.dat", now.Year, now.Month, now.Day, |
167 | now.Hour, now.Minute, now.Second, m_asset.Name, m_asset.Type); | 167 | now.Hour, now.Minute, now.Second, m_asset.Metadata.Name, m_asset.Metadata.Type); |
168 | SaveAssetToFile(filename, m_asset.Data); | 168 | SaveAssetToFile(filename, m_asset.Data); |
169 | } | 169 | } |
170 | } | 170 | } |
@@ -196,9 +196,9 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
196 | this.invType = invType; | 196 | this.invType = invType; |
197 | this.wearableType = wearableType; | 197 | this.wearableType = wearableType; |
198 | nextPerm = nextOwnerMask; | 198 | nextPerm = nextOwnerMask; |
199 | m_asset.Name = name; | 199 | m_asset.Metadata.Name = name; |
200 | m_asset.Description = description; | 200 | m_asset.Metadata.Description = description; |
201 | m_asset.Type = type; | 201 | m_asset.Metadata.Type = type; |
202 | 202 | ||
203 | if (m_finished) | 203 | if (m_finished) |
204 | { | 204 | { |
@@ -211,7 +211,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
211 | } | 211 | } |
212 | } | 212 | } |
213 | 213 | ||
214 | 214 | ||
215 | private void DoCreateItem() | 215 | private void DoCreateItem() |
216 | { | 216 | { |
217 | m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); | 217 | m_userTransactions.Manager.MyScene.CommsManager.AssetCache.AddAsset(m_asset); |
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
225 | item.Owner = ourClient.AgentId; | 225 | item.Owner = ourClient.AgentId; |
226 | item.Creator = ourClient.AgentId; | 226 | item.Creator = ourClient.AgentId; |
227 | item.ID = UUID.Random(); | 227 | item.ID = UUID.Random(); |
228 | item.AssetID = m_asset.FullID; | 228 | item.AssetID = m_asset.Metadata.FullID; |
229 | item.Description = m_description; | 229 | item.Description = m_description; |
230 | item.Name = m_name; | 230 | item.Name = m_name; |
231 | item.AssetType = type; | 231 | item.AssetType = type; |
@@ -245,9 +245,9 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
245 | else | 245 | else |
246 | { | 246 | { |
247 | m_log.ErrorFormat( | 247 | m_log.ErrorFormat( |
248 | "[ASSET TRANSACTIONS]: Could not find user {0} for inventory item creation", | 248 | "[ASSET TRANSACTIONS]: Could not find user {0} for inventory item creation", |
249 | ourClient.AgentId); | 249 | ourClient.AgentId); |
250 | } | 250 | } |
251 | } | 251 | } |
252 | 252 | ||
253 | /// <summary> | 253 | /// <summary> |
@@ -260,7 +260,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.AssetTransaction | |||
260 | { | 260 | { |
261 | return m_asset; | 261 | return m_asset; |
262 | } | 262 | } |
263 | 263 | ||
264 | return null; | 264 | return null; |
265 | } | 265 | } |
266 | } | 266 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs b/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs index a6901b6..f9a10bf 100644 --- a/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs +++ b/OpenSim/Region/Environment/Modules/Agent/TextureSender/TextureSender.cs | |||
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
55 | /// </summary> | 55 | /// </summary> |
56 | private AssetBase m_asset; | 56 | private AssetBase m_asset; |
57 | 57 | ||
58 | //public UUID assetID { get { return m_asset.FullID; } } | 58 | //public UUID assetID { get { return m_asset.Metadata.FullID; } } |
59 | 59 | ||
60 | // private bool m_cancel = false; | 60 | // private bool m_cancel = false; |
61 | 61 | ||
@@ -93,7 +93,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
93 | get { return false; } | 93 | get { return false; } |
94 | set | 94 | set |
95 | { | 95 | { |
96 | // m_cancel = value; | 96 | // m_cancel = value; |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
@@ -102,7 +102,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
102 | get { return false; } | 102 | get { return false; } |
103 | set | 103 | set |
104 | { | 104 | { |
105 | // m_sending = value; | 105 | // m_sending = value; |
106 | } | 106 | } |
107 | } | 107 | } |
108 | 108 | ||
@@ -117,7 +117,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
117 | // See ITextureSender | 117 | // See ITextureSender |
118 | public bool SendTexturePacket() | 118 | public bool SendTexturePacket() |
119 | { | 119 | { |
120 | //m_log.DebugFormat("[TEXTURE SENDER]: Sending packet for {0}", m_asset.FullID); | 120 | //m_log.DebugFormat("[TEXTURE SENDER]: Sending packet for {0}", m_asset.Metadata.FullID); |
121 | 121 | ||
122 | SendPacket(); | 122 | SendPacket(); |
123 | counter++; | 123 | counter++; |
@@ -154,7 +154,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
154 | { | 154 | { |
155 | if (NumPackets == 0) | 155 | if (NumPackets == 0) |
156 | { | 156 | { |
157 | RequestUser.SendImageFirstPart(1, m_asset.FullID, (uint)m_asset.Data.Length, m_asset.Data, 2); | 157 | RequestUser.SendImageFirstPart(1, m_asset.Metadata.FullID, (uint)m_asset.Data.Length, m_asset.Data, 2); |
158 | PacketCounter++; | 158 | PacketCounter++; |
159 | } | 159 | } |
160 | else | 160 | else |
@@ -163,7 +163,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
163 | Array.Copy(m_asset.Data, 0, ImageData1, 0, 600); | 163 | Array.Copy(m_asset.Data, 0, ImageData1, 0, 600); |
164 | 164 | ||
165 | RequestUser.SendImageFirstPart( | 165 | RequestUser.SendImageFirstPart( |
166 | (ushort)(NumPackets), m_asset.FullID, (uint)m_asset.Data.Length, ImageData1, 2); | 166 | (ushort)(NumPackets), m_asset.Metadata.FullID, (uint)m_asset.Data.Length, ImageData1, 2); |
167 | PacketCounter++; | 167 | PacketCounter++; |
168 | } | 168 | } |
169 | } | 169 | } |
@@ -179,11 +179,11 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureSender | |||
179 | catch (ArgumentOutOfRangeException) | 179 | catch (ArgumentOutOfRangeException) |
180 | { | 180 | { |
181 | m_log.Error("[TEXTURE SENDER]: Unable to separate texture into multiple packets: Array bounds failure on asset:" + | 181 | m_log.Error("[TEXTURE SENDER]: Unable to separate texture into multiple packets: Array bounds failure on asset:" + |
182 | m_asset.FullID.ToString()); | 182 | m_asset.Metadata.ID); |
183 | return; | 183 | return; |
184 | } | 184 | } |
185 | 185 | ||
186 | RequestUser.SendImageNextPart((ushort)PacketCounter, m_asset.FullID, imageData); | 186 | RequestUser.SendImageNextPart((ushort)PacketCounter, m_asset.Metadata.FullID, imageData); |
187 | PacketCounter++; | 187 | PacketCounter++; |
188 | } | 188 | } |
189 | } | 189 | } |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 862caa9..dcfcba3 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
46 | public class InventoryArchiveReadRequest | 46 | public class InventoryArchiveReadRequest |
47 | { | 47 | { |
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | protected Scene scene; | 50 | protected Scene scene; |
51 | protected TarArchiveReader archive; | 51 | protected TarArchiveReader archive; |
52 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); | 52 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); |
@@ -65,7 +65,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
65 | InventoryItemBase item = new InventoryItemBase(); | 65 | InventoryItemBase item = new InventoryItemBase(); |
66 | StringReader sr = new StringReader(contents); | 66 | StringReader sr = new StringReader(contents); |
67 | XmlTextReader reader = new XmlTextReader(sr); | 67 | XmlTextReader reader = new XmlTextReader(sr); |
68 | 68 | ||
69 | if (contents.Equals("")) return null; | 69 | if (contents.Equals("")) return null; |
70 | 70 | ||
71 | reader.ReadStartElement("InventoryObject"); | 71 | reader.ReadStartElement("InventoryObject"); |
@@ -79,7 +79,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
79 | item.InvType = System.Convert.ToInt32(reader.ReadString()); | 79 | item.InvType = System.Convert.ToInt32(reader.ReadString()); |
80 | reader.ReadEndElement(); | 80 | reader.ReadEndElement(); |
81 | reader.ReadStartElement("CreatorUUID"); | 81 | reader.ReadStartElement("CreatorUUID"); |
82 | item.Creator = UUID.Parse(reader.ReadString()); | 82 | item.Creator = UUID.Parse(reader.ReadString()); |
83 | reader.ReadEndElement(); | 83 | reader.ReadEndElement(); |
84 | reader.ReadStartElement("CreationDate"); | 84 | reader.ReadStartElement("CreationDate"); |
85 | item.CreationDate = System.Convert.ToInt32(reader.ReadString()); | 85 | item.CreationDate = System.Convert.ToInt32(reader.ReadString()); |
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
94 | } | 94 | } |
95 | else | 95 | else |
96 | { | 96 | { |
97 | reader.ReadStartElement("Description"); | 97 | reader.ReadStartElement("Description"); |
98 | item.Description = reader.ReadString(); | 98 | item.Description = reader.ReadString(); |
99 | reader.ReadEndElement(); | 99 | reader.ReadEndElement(); |
100 | } | 100 | } |
@@ -145,7 +145,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
145 | int successfulAssetRestores = 0; | 145 | int successfulAssetRestores = 0; |
146 | int failedAssetRestores = 0; | 146 | int failedAssetRestores = 0; |
147 | int successfulItemRestores = 0; | 147 | int successfulItemRestores = 0; |
148 | 148 | ||
149 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); | 149 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); |
150 | if (null == userProfile) | 150 | if (null == userProfile) |
151 | { | 151 | { |
@@ -157,28 +157,28 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
157 | if (null == userInfo) | 157 | if (null == userInfo) |
158 | { | 158 | { |
159 | m_log.ErrorFormat( | 159 | m_log.ErrorFormat( |
160 | "[CONSOLE]: Failed to find user info for {0} {1} {2}", | 160 | "[CONSOLE]: Failed to find user info for {0} {1} {2}", |
161 | firstName, lastName, userProfile.ID); | 161 | firstName, lastName, userProfile.ID); |
162 | 162 | ||
163 | return; | 163 | return; |
164 | } | 164 | } |
165 | 165 | ||
166 | if (!userInfo.HasReceivedInventory) | 166 | if (!userInfo.HasReceivedInventory) |
167 | { | 167 | { |
168 | m_log.ErrorFormat( | 168 | m_log.ErrorFormat( |
169 | "[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", | 169 | "[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", |
170 | firstName, lastName, userProfile.ID); | 170 | firstName, lastName, userProfile.ID); |
171 | 171 | ||
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | 174 | ||
175 | InventoryFolderImpl inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); | 175 | InventoryFolderImpl inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); |
176 | 176 | ||
177 | if (null == inventoryFolder) | 177 | if (null == inventoryFolder) |
178 | { | 178 | { |
179 | // TODO: Later on, automatically create this folder if it does not exist | 179 | // TODO: Later on, automatically create this folder if it does not exist |
180 | m_log.ErrorFormat("[ARCHIVER]: Inventory path {0} does not exist", invPath); | 180 | m_log.ErrorFormat("[ARCHIVER]: Inventory path {0} does not exist", invPath); |
181 | 181 | ||
182 | return; | 182 | return; |
183 | } | 183 | } |
184 | 184 | ||
@@ -202,17 +202,17 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
202 | else | 202 | else |
203 | { | 203 | { |
204 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); | 204 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); |
205 | 205 | ||
206 | if (item != null) | 206 | if (item != null) |
207 | { | 207 | { |
208 | item.Creator = userProfile.ID; | 208 | item.Creator = userProfile.ID; |
209 | item.Owner = userProfile.ID; | 209 | item.Owner = userProfile.ID; |
210 | 210 | ||
211 | // Reset folder ID to the one in which we want to load it | 211 | // Reset folder ID to the one in which we want to load it |
212 | // TODO: Properly restore entire folder structure. At the moment all items are dumped in this | 212 | // TODO: Properly restore entire folder structure. At the moment all items are dumped in this |
213 | // single folder no matter where in the saved folder structure they are. | 213 | // single folder no matter where in the saved folder structure they are. |
214 | item.Folder = inventoryFolder.ID; | 214 | item.Folder = inventoryFolder.ID; |
215 | 215 | ||
216 | userInfo.AddItem(item); | 216 | userInfo.AddItem(item); |
217 | successfulItemRestores++; | 217 | successfulItemRestores++; |
218 | } | 218 | } |
@@ -258,7 +258,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
258 | 258 | ||
259 | AssetBase asset = new AssetBase(new UUID(uuid), "RandomName"); | 259 | AssetBase asset = new AssetBase(new UUID(uuid), "RandomName"); |
260 | 260 | ||
261 | asset.Type = assetType; | 261 | asset.Metadata.Type = assetType; |
262 | asset.Data = data; | 262 | asset.Data = data; |
263 | 263 | ||
264 | scene.AssetCache.AddAsset(asset); | 264 | scene.AssetCache.AddAsset(asset); |
diff --git a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs index 0974f02..bddf10d 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs | |||
@@ -231,21 +231,21 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
231 | 231 | ||
232 | // Create a new asset for user | 232 | // Create a new asset for user |
233 | AssetBase asset = new AssetBase(); | 233 | AssetBase asset = new AssetBase(); |
234 | asset.FullID = UUID.Random(); | 234 | asset.Metadata.FullID = UUID.Random(); |
235 | asset.Data = assetData; | 235 | asset.Data = assetData; |
236 | asset.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000); | 236 | asset.Metadata.Name = "DynamicImage" + Util.RandomClass.Next(1, 10000); |
237 | asset.Type = 0; | 237 | asset.Metadata.Type = 0; |
238 | asset.Description = "dynamic image"; | 238 | asset.Metadata.Description = "dynamic image"; |
239 | asset.Local = false; | 239 | asset.Metadata.Local = false; |
240 | asset.Temporary = true; | 240 | asset.Metadata.Temporary = true; |
241 | scene.AssetCache.AddAsset(asset); | 241 | scene.AssetCache.AddAsset(asset); |
242 | 242 | ||
243 | LastAssetID = asset.FullID; | 243 | LastAssetID = asset.Metadata.FullID; |
244 | 244 | ||
245 | IJ2KDecoder cacheLayerDecode = scene.RequestModuleInterface<IJ2KDecoder>(); | 245 | IJ2KDecoder cacheLayerDecode = scene.RequestModuleInterface<IJ2KDecoder>(); |
246 | if (cacheLayerDecode != null) | 246 | if (cacheLayerDecode != null) |
247 | { | 247 | { |
248 | cacheLayerDecode.syncdecode(asset.FullID, asset.Data); | 248 | cacheLayerDecode.syncdecode(asset.Metadata.FullID, asset.Data); |
249 | } | 249 | } |
250 | cacheLayerDecode = null; | 250 | cacheLayerDecode = null; |
251 | 251 | ||
@@ -256,7 +256,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
256 | UUID oldID = tmptex.DefaultTexture.TextureID; | 256 | UUID oldID = tmptex.DefaultTexture.TextureID; |
257 | scene.AssetCache.ExpireAsset(oldID); | 257 | scene.AssetCache.ExpireAsset(oldID); |
258 | 258 | ||
259 | tmptex.DefaultTexture.TextureID = asset.FullID; | 259 | tmptex.DefaultTexture.TextureID = asset.Metadata.FullID; |
260 | // I'm pretty sure we always want to force this to true | 260 | // I'm pretty sure we always want to force this to true |
261 | tmptex.DefaultTexture.Fullbright = true; | 261 | tmptex.DefaultTexture.Fullbright = true; |
262 | 262 | ||
@@ -287,7 +287,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
287 | try | 287 | try |
288 | { | 288 | { |
289 | result = OpenJPEG.EncodeFromImage(joint, true); | 289 | result = OpenJPEG.EncodeFromImage(joint, true); |
290 | } | 290 | } |
291 | catch (Exception) | 291 | catch (Exception) |
292 | { | 292 | { |
293 | Console.WriteLine( | 293 | Console.WriteLine( |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 4e9fcef..c860d01 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -66,12 +66,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
66 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); | 66 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); |
67 | m_errorMessage = String.Empty; | 67 | m_errorMessage = String.Empty; |
68 | } | 68 | } |
69 | 69 | ||
70 | public ArchiveReadRequest(Scene scene, Stream loadStream) | 70 | public ArchiveReadRequest(Scene scene, Stream loadStream) |
71 | { | 71 | { |
72 | m_scene = scene; | 72 | m_scene = scene; |
73 | m_loadStream = loadStream; | 73 | m_loadStream = loadStream; |
74 | } | 74 | } |
75 | 75 | ||
76 | /// <summary> | 76 | /// <summary> |
77 | /// Dearchive the region embodied in this request. | 77 | /// Dearchive the region embodied in this request. |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
81 | // The same code can handle dearchiving 0.1 and 0.2 OpenSim Archive versions | 81 | // The same code can handle dearchiving 0.1 and 0.2 OpenSim Archive versions |
82 | DearchiveRegion0DotStar(); | 82 | DearchiveRegion0DotStar(); |
83 | } | 83 | } |
84 | 84 | ||
85 | private void DearchiveRegion0DotStar() | 85 | private void DearchiveRegion0DotStar() |
86 | { | 86 | { |
87 | int successfulAssetRestores = 0; | 87 | int successfulAssetRestores = 0; |
@@ -98,12 +98,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
98 | 98 | ||
99 | byte[] data; | 99 | byte[] data; |
100 | TarArchiveReader.TarEntryType entryType; | 100 | TarArchiveReader.TarEntryType entryType; |
101 | 101 | ||
102 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) | 102 | while ((data = archive.ReadEntry(out filePath, out entryType)) != null) |
103 | { | 103 | { |
104 | //m_log.DebugFormat( | 104 | //m_log.DebugFormat( |
105 | // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); | 105 | // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); |
106 | if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) | 106 | if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) |
107 | { | 107 | { |
108 | m_log.WarnFormat("[ARCHIVER]: Ignoring directory entry {0}", | 108 | m_log.WarnFormat("[ARCHIVER]: Ignoring directory entry {0}", |
109 | filePath); | 109 | filePath); |
@@ -133,7 +133,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
133 | LoadRegionSettings(filePath, data); | 133 | LoadRegionSettings(filePath, data); |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); | 137 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); |
138 | 138 | ||
139 | archive.Close(); | 139 | archive.Close(); |
@@ -154,10 +154,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
154 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); | 154 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); |
155 | m_errorMessage += String.Format("Failed to load {0} assets", failedAssetRestores); | 155 | m_errorMessage += String.Format("Failed to load {0} assets", failedAssetRestores); |
156 | } | 156 | } |
157 | 157 | ||
158 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); | 158 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); |
159 | m_scene.DeleteAllSceneObjects(); | 159 | m_scene.DeleteAllSceneObjects(); |
160 | 160 | ||
161 | // Reload serialized prims | 161 | // Reload serialized prims |
162 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); | 162 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); |
163 | 163 | ||
@@ -176,10 +176,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
176 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 176 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
177 | // otherwise, use the master avatar uuid instead | 177 | // otherwise, use the master avatar uuid instead |
178 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 178 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
179 | 179 | ||
180 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 180 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
181 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | 181 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; |
182 | 182 | ||
183 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 183 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
184 | { | 184 | { |
185 | if (!resolveUserUuid(part.CreatorID)) | 185 | if (!resolveUserUuid(part.CreatorID)) |
@@ -233,7 +233,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
233 | { | 233 | { |
234 | sceneObject.CreateScriptInstances(0, true, m_scene.DefaultScriptEngine, 0); | 234 | sceneObject.CreateScriptInstances(0, true, m_scene.DefaultScriptEngine, 0); |
235 | } | 235 | } |
236 | 236 | ||
237 | m_scene.EventManager.TriggerOarFileLoaded(m_errorMessage); | 237 | m_scene.EventManager.TriggerOarFileLoaded(m_errorMessage); |
238 | } | 238 | } |
239 | 239 | ||
@@ -290,12 +290,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
290 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); | 290 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); |
291 | 291 | ||
292 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty); | 292 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty); |
293 | asset.Type = assetType; | 293 | asset.Metadata.Type = assetType; |
294 | asset.Data = data; | 294 | asset.Data = data; |
295 | 295 | ||
296 | m_scene.AssetCache.AddAsset(asset); | 296 | m_scene.AssetCache.AddAsset(asset); |
297 | 297 | ||
298 | /** | 298 | /** |
299 | * Create layers on decode for image assets. This is likely to significantly increase the time to load archives so | 299 | * Create layers on decode for image assets. This is likely to significantly increase the time to load archives so |
300 | * it might be best done when dearchive takes place on a separate thread | 300 | * it might be best done when dearchive takes place on a separate thread |
301 | if (asset.Type=AssetType.Texture) | 301 | if (asset.Type=AssetType.Texture) |
@@ -317,7 +317,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
317 | return false; | 317 | return false; |
318 | } | 318 | } |
319 | } | 319 | } |
320 | 320 | ||
321 | /// <summary> | 321 | /// <summary> |
322 | /// Load region settings data | 322 | /// Load region settings data |
323 | /// </summary> | 323 | /// </summary> |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
329 | private bool LoadRegionSettings(string settingsPath, byte[] data) | 329 | private bool LoadRegionSettings(string settingsPath, byte[] data) |
330 | { | 330 | { |
331 | RegionSettings loadedRegionSettings; | 331 | RegionSettings loadedRegionSettings; |
332 | 332 | ||
333 | try | 333 | try |
334 | { | 334 | { |
335 | loadedRegionSettings = RegionSettingsSerializer.Deserialize(data); | 335 | loadedRegionSettings = RegionSettingsSerializer.Deserialize(data); |
@@ -337,13 +337,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
337 | catch (Exception e) | 337 | catch (Exception e) |
338 | { | 338 | { |
339 | m_log.ErrorFormat( | 339 | m_log.ErrorFormat( |
340 | "[ARCHIVER]: Could not parse region settings file {0}. Ignoring. Exception was {1}", | 340 | "[ARCHIVER]: Could not parse region settings file {0}. Ignoring. Exception was {1}", |
341 | settingsPath, e); | 341 | settingsPath, e); |
342 | return false; | 342 | return false; |
343 | } | 343 | } |
344 | 344 | ||
345 | RegionSettings currentRegionSettings = m_scene.RegionInfo.RegionSettings; | 345 | RegionSettings currentRegionSettings = m_scene.RegionInfo.RegionSettings; |
346 | 346 | ||
347 | currentRegionSettings.AgentLimit = loadedRegionSettings.AgentLimit; | 347 | currentRegionSettings.AgentLimit = loadedRegionSettings.AgentLimit; |
348 | currentRegionSettings.AllowDamage = loadedRegionSettings.AllowDamage; | 348 | currentRegionSettings.AllowDamage = loadedRegionSettings.AllowDamage; |
349 | currentRegionSettings.AllowLandJoinDivide = loadedRegionSettings.AllowLandJoinDivide; | 349 | currentRegionSettings.AllowLandJoinDivide = loadedRegionSettings.AllowLandJoinDivide; |
@@ -373,10 +373,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
373 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; | 373 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; |
374 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; | 374 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; |
375 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; | 375 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; |
376 | 376 | ||
377 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); | 377 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); |
378 | estateModule.sendRegionHandshakeToAll(); | 378 | estateModule.sendRegionHandshakeToAll(); |
379 | 379 | ||
380 | return true; | 380 | return true; |
381 | } | 381 | } |
382 | 382 | ||
@@ -411,11 +411,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
411 | if (File.Exists(path)) | 411 | if (File.Exists(path)) |
412 | { | 412 | { |
413 | return new FileStream(path, FileMode.Open); | 413 | return new FileStream(path, FileMode.Open); |
414 | } | 414 | } |
415 | else | 415 | else |
416 | { | 416 | { |
417 | Uri uri = new Uri(path); // throw exception if not valid URI | 417 | Uri uri = new Uri(path); // throw exception if not valid URI |
418 | if (uri.Scheme == "file") | 418 | if (uri.Scheme == "file") |
419 | { | 419 | { |
420 | return new FileStream(uri.AbsolutePath, FileMode.Open); | 420 | return new FileStream(uri.AbsolutePath, FileMode.Open); |
421 | } | 421 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs index 75ae474..36a60f3 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs | |||
@@ -86,16 +86,16 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
86 | 86 | ||
87 | string extension = string.Empty; | 87 | string extension = string.Empty; |
88 | 88 | ||
89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Metadata.Type)) |
90 | { | 90 | { |
91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Metadata.Type]; |
92 | } | 92 | } |
93 | 93 | ||
94 | xtw.WriteElementString("filename", uuid.ToString() + extension); | 94 | xtw.WriteElementString("filename", uuid.ToString() + extension); |
95 | 95 | ||
96 | xtw.WriteElementString("name", asset.Name); | 96 | xtw.WriteElementString("name", asset.Metadata.Name); |
97 | xtw.WriteElementString("description", asset.Description); | 97 | xtw.WriteElementString("description", asset.Metadata.Description); |
98 | xtw.WriteElementString("asset-type", asset.Type.ToString()); | 98 | xtw.WriteElementString("asset-type", asset.Metadata.Type.ToString()); |
99 | 99 | ||
100 | xtw.WriteEndElement(); | 100 | xtw.WriteEndElement(); |
101 | } | 101 | } |
@@ -123,15 +123,15 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
123 | 123 | ||
124 | string extension = string.Empty; | 124 | string extension = string.Empty; |
125 | 125 | ||
126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Metadata.Type)) |
127 | { | 127 | { |
128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Metadata.Type]; |
129 | } | 129 | } |
130 | else | 130 | else |
131 | { | 131 | { |
132 | m_log.ErrorFormat( | 132 | m_log.ErrorFormat( |
133 | "[ARCHIVER]: Unrecognized asset type {0} with uuid {1}. This asset will be saved but not reloaded", | 133 | "[ARCHIVER]: Unrecognized asset type {0} with uuid {1}. This asset will be saved but not reloaded", |
134 | asset.Type, asset.ID); | 134 | asset.Metadata.Type, asset.Metadata.ID); |
135 | } | 135 | } |
136 | 136 | ||
137 | archive.AddFile( | 137 | archive.AddFile( |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs index b26fe4c..0ef1e1d 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs | |||
@@ -157,8 +157,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
157 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); | 157 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); |
158 | 158 | ||
159 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name); | 159 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name); |
160 | asset.Description = metadata.Description; | 160 | asset.Metadata.Description = metadata.Description; |
161 | asset.Type = metadata.AssetType; | 161 | asset.Metadata.Type = metadata.AssetType; |
162 | asset.Data = data; | 162 | asset.Data = data; |
163 | 163 | ||
164 | m_cache.AddAsset(asset); | 164 | m_cache.AddAsset(asset); |
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs index 6d69443..2ba4e34 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateTerrainXferHandler.cs | |||
@@ -37,13 +37,13 @@ using OpenSim.Region.Environment.Scenes; | |||
37 | 37 | ||
38 | namespace OpenSim.Region.Environment.Modules.World.Estate | 38 | namespace OpenSim.Region.Environment.Modules.World.Estate |
39 | { | 39 | { |
40 | 40 | ||
41 | public class EstateTerrainXferHandler | 41 | public class EstateTerrainXferHandler |
42 | { | 42 | { |
43 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 43 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | private AssetBase m_asset; | 45 | private AssetBase m_asset; |
46 | 46 | ||
47 | public delegate void TerrainUploadComplete(string name, byte[] filedata, IClientAPI remoteClient); | 47 | public delegate void TerrainUploadComplete(string name, byte[] filedata, IClientAPI remoteClient); |
48 | 48 | ||
49 | public event TerrainUploadComplete TerrainUploadDone; | 49 | public event TerrainUploadComplete TerrainUploadDone; |
@@ -52,21 +52,21 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
52 | //private string m_name = String.Empty; | 52 | //private string m_name = String.Empty; |
53 | //private UUID TransactionID = UUID.Zero; | 53 | //private UUID TransactionID = UUID.Zero; |
54 | private sbyte type = 0; | 54 | private sbyte type = 0; |
55 | 55 | ||
56 | public ulong mXferID; | 56 | public ulong mXferID; |
57 | private TerrainUploadComplete handlerTerrainUploadDone; | 57 | private TerrainUploadComplete handlerTerrainUploadDone; |
58 | 58 | ||
59 | public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename) | 59 | public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename) |
60 | { | 60 | { |
61 | 61 | ||
62 | m_asset = new AssetBase(); | 62 | m_asset = new AssetBase(); |
63 | m_asset.FullID = UUID.Zero; | 63 | m_asset.Metadata.FullID = UUID.Zero; |
64 | m_asset.Type = type; | 64 | m_asset.Metadata.Type = type; |
65 | m_asset.Data = new byte[0]; | 65 | m_asset.Data = new byte[0]; |
66 | m_asset.Name = pClientFilename; | 66 | m_asset.Metadata.Name = pClientFilename; |
67 | m_asset.Description = "empty"; | 67 | m_asset.Metadata.Description = "empty"; |
68 | m_asset.Local = true; | 68 | m_asset.Metadata.Local = true; |
69 | m_asset.Temporary = true; | 69 | m_asset.Metadata.Temporary = true; |
70 | 70 | ||
71 | } | 71 | } |
72 | 72 | ||
@@ -78,7 +78,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
78 | public void RequestStartXfer(IClientAPI pRemoteClient) | 78 | public void RequestStartXfer(IClientAPI pRemoteClient) |
79 | { | 79 | { |
80 | mXferID = Util.GetNextXferID(); | 80 | mXferID = Util.GetNextXferID(); |
81 | pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, Utils.StringToBytes(m_asset.Name)); | 81 | pRemoteClient.SendXferRequest(mXferID, m_asset.Metadata.Type, m_asset.Metadata.FullID, 0, Utils.StringToBytes(m_asset.Metadata.Name)); |
82 | } | 82 | } |
83 | 83 | ||
84 | /// <summary> | 84 | /// <summary> |
@@ -86,7 +86,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
86 | /// </summary> | 86 | /// </summary> |
87 | /// <param name="xferID"></param> | 87 | /// <param name="xferID"></param> |
88 | /// <param name="packetID"></param> | 88 | /// <param name="packetID"></param> |
89 | /// <param name="data"></param> | 89 | /// <param name="data"></param> |
90 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) | 90 | public void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) |
91 | { | 91 | { |
92 | if (mXferID == xferID) | 92 | if (mXferID == xferID) |
@@ -110,7 +110,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
110 | if ((packetID & 0x80000000) != 0) | 110 | if ((packetID & 0x80000000) != 0) |
111 | { | 111 | { |
112 | SendCompleteMessage(remoteClient); | 112 | SendCompleteMessage(remoteClient); |
113 | 113 | ||
114 | } | 114 | } |
115 | } | 115 | } |
116 | } | 116 | } |
@@ -120,7 +120,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
120 | handlerTerrainUploadDone = TerrainUploadDone; | 120 | handlerTerrainUploadDone = TerrainUploadDone; |
121 | if (handlerTerrainUploadDone != null) | 121 | if (handlerTerrainUploadDone != null) |
122 | { | 122 | { |
123 | handlerTerrainUploadDone(m_asset.Name,m_asset.Data, remoteClient); | 123 | handlerTerrainUploadDone(m_asset.Metadata.Name, m_asset.Data, remoteClient); |
124 | } | 124 | } |
125 | } | 125 | } |
126 | } | 126 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs index 3acaa21..73a5a3a 100644 --- a/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs +++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGAssetMapper.cs | |||
@@ -1,29 +1,29 @@ | |||
1 | /** | 1 | /** |
2 | * Copyright (c) 2008, Contributors. All rights reserved. | 2 | * Copyright (c) 2008, Contributors. All rights reserved. |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without modification, | 5 | * Redistribution and use in source and binary forms, with or without modification, |
6 | * are permitted provided that the following conditions are met: | 6 | * are permitted provided that the following conditions are met: |
7 | * | 7 | * |
8 | * * Redistributions of source code must retain the above copyright notice, | 8 | * * Redistributions of source code must retain the above copyright notice, |
9 | * this list of conditions and the following disclaimer. | 9 | * this list of conditions and the following disclaimer. |
10 | * * Redistributions in binary form must reproduce the above copyright notice, | 10 | * * Redistributions in binary form must reproduce the above copyright notice, |
11 | * this list of conditions and the following disclaimer in the documentation | 11 | * this list of conditions and the following disclaimer in the documentation |
12 | * and/or other materials provided with the distribution. | 12 | * and/or other materials provided with the distribution. |
13 | * * Neither the name of the Organizations nor the names of Individual | 13 | * * Neither the name of the Organizations nor the names of Individual |
14 | * Contributors may be used to endorse or promote products derived from | 14 | * Contributors may be used to endorse or promote products derived from |
15 | * this software without specific prior written permission. | 15 | * this software without specific prior written permission. |
16 | * | 16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | 19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL |
20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 20 | * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | 21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | 22 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
25 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
@@ -48,7 +48,7 @@ using OpenSim.Region.Environment.Scenes; | |||
48 | 48 | ||
49 | namespace OpenSim.Region.Environment.Scenes.Hypergrid | 49 | namespace OpenSim.Region.Environment.Scenes.Hypergrid |
50 | { | 50 | { |
51 | public class HGAssetMapper | 51 | public class HGAssetMapper |
52 | { | 52 | { |
53 | #region Fields | 53 | #region Fields |
54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
@@ -128,12 +128,12 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
128 | 128 | ||
129 | if (m_scene.CommsManager.AssetCache.TryGetCachedAsset(assetID, out asset) && (asset != null)) | 129 | if (m_scene.CommsManager.AssetCache.TryGetCachedAsset(assetID, out asset) && (asset != null)) |
130 | { | 130 | { |
131 | m_log.Debug("[HGScene]: Asset made it to asset cache. " + asset.Name + " " + assetID); | 131 | m_log.Debug("[HGScene]: Asset made it to asset cache. " + asset.Metadata.Name + " " + assetID); |
132 | // I think I need to store it in the asset DB too. | 132 | // I think I need to store it in the asset DB too. |
133 | // For now, let me just do it for textures and scripts | 133 | // For now, let me just do it for textures and scripts |
134 | if (((AssetType)asset.Type == AssetType.Texture) || | 134 | if (((AssetType)asset.Metadata.Type == AssetType.Texture) || |
135 | ((AssetType)asset.Type == AssetType.LSLBytecode) || | 135 | ((AssetType)asset.Metadata.Type == AssetType.LSLBytecode) || |
136 | ((AssetType)asset.Type == AssetType.LSLText)) | 136 | ((AssetType)asset.Metadata.Type == AssetType.LSLText)) |
137 | { | 137 | { |
138 | AssetBase asset1 = new AssetBase(); | 138 | AssetBase asset1 = new AssetBase(); |
139 | Copy(asset, asset1); | 139 | Copy(asset, asset1); |
@@ -157,9 +157,9 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
157 | if (asset1 != null) | 157 | if (asset1 != null) |
158 | { | 158 | { |
159 | // See long comment in AssetCache.AddAsset | 159 | // See long comment in AssetCache.AddAsset |
160 | if (!asset1.Temporary || asset1.Local) | 160 | if (!asset1.Metadata.Temporary || asset1.Metadata.Local) |
161 | { | 161 | { |
162 | // The asset cache returns instances of subclasses of AssetBase: | 162 | // The asset cache returns instances of subclasses of AssetBase: |
163 | // TextureImage or AssetInfo. So in passing them to the remote | 163 | // TextureImage or AssetInfo. So in passing them to the remote |
164 | // server we first need to convert this to instances of AssetBase, | 164 | // server we first need to convert this to instances of AssetBase, |
165 | // which is the serializable class for assets. | 165 | // which is the serializable class for assets. |
@@ -179,14 +179,14 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
179 | private void Copy(AssetBase from, AssetBase to) | 179 | private void Copy(AssetBase from, AssetBase to) |
180 | { | 180 | { |
181 | to.Data = from.Data; | 181 | to.Data = from.Data; |
182 | to.Description = from.Description; | 182 | to.Metadata.Description = from.Metadata.Description; |
183 | to.FullID = from.FullID; | 183 | to.Metadata.FullID = from.Metadata.FullID; |
184 | to.ID = from.ID; | 184 | to.Metadata.ID = from.Metadata.ID; |
185 | to.Local = from.Local; | 185 | to.Metadata.Local = from.Metadata.Local; |
186 | to.Name = from.Name; | 186 | to.Metadata.Name = from.Metadata.Name; |
187 | to.Temporary = from.Temporary; | 187 | to.Metadata.Temporary = from.Metadata.Temporary; |
188 | to.Type = from.Type; | 188 | to.Metadata.Type = from.Metadata.Type; |
189 | 189 | ||
190 | } | 190 | } |
191 | 191 | ||
192 | private void _guardedAdd(Dictionary<UUID, bool> lst, UUID obj, bool val) | 192 | private void _guardedAdd(Dictionary<UUID, bool> lst, UUID obj, bool val) |
@@ -243,7 +243,7 @@ namespace OpenSim.Region.Environment.Scenes.Hypergrid | |||
243 | private Dictionary<UUID, bool> SniffUUIDs(AssetBase asset) | 243 | private Dictionary<UUID, bool> SniffUUIDs(AssetBase asset) |
244 | { | 244 | { |
245 | Dictionary<UUID, bool> uuids = new Dictionary<UUID, bool>(); | 245 | Dictionary<UUID, bool> uuids = new Dictionary<UUID, bool>(); |
246 | if ((asset != null) && ((AssetType)asset.Type == AssetType.Object)) | 246 | if ((asset != null) && ((AssetType)asset.Metadata.Type == AssetType.Object)) |
247 | { | 247 | { |
248 | string ass_str = Utils.BytesToString(asset.Data); | 248 | string ass_str = Utils.BytesToString(asset.Data); |
249 | SceneObjectGroup sog = new SceneObjectGroup(ass_str, true); | 249 | SceneObjectGroup sog = new SceneObjectGroup(ass_str, true); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 58ab058..cb9aee2 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -42,12 +42,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
42 | public partial class Scene | 42 | public partial class Scene |
43 | { | 43 | { |
44 | private static readonly ILog m_log | 44 | private static readonly ILog m_log |
45 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
48 | /// Allows asynchronous derezzing of objects from the scene into a client's inventory. | 48 | /// Allows asynchronous derezzing of objects from the scene into a client's inventory. |
49 | /// </summary> | 49 | /// </summary> |
50 | protected AsyncSceneObjectGroupDeleter m_asyncSceneObjectDeleter; | 50 | protected AsyncSceneObjectGroupDeleter m_asyncSceneObjectDeleter; |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// Start all the scripts in the scene which should be started. | 53 | /// Start all the scripts in the scene which should be started. |
@@ -145,9 +145,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
145 | else | 145 | else |
146 | { | 146 | { |
147 | m_log.ErrorFormat( | 147 | m_log.ErrorFormat( |
148 | "[AGENT INVENTORY]: Could not resolve user {0} for adding an inventory item", | 148 | "[AGENT INVENTORY]: Could not resolve user {0} for adding an inventory item", |
149 | remoteClient.AgentId); | 149 | remoteClient.AgentId); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | /// <summary> | 153 | /// <summary> |
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
175 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit notecard", false); | 175 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit notecard", false); |
176 | return UUID.Zero; | 176 | return UUID.Zero; |
177 | } | 177 | } |
178 | 178 | ||
179 | remoteClient.SendAgentAlertMessage("Notecard saved", false); | 179 | remoteClient.SendAgentAlertMessage("Notecard saved", false); |
180 | } | 180 | } |
181 | else if ((InventoryType)item.InvType == InventoryType.LSL) | 181 | else if ((InventoryType)item.InvType == InventoryType.LSL) |
@@ -185,7 +185,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
185 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit script", false); | 185 | remoteClient.SendAgentAlertMessage("Insufficient permissions to edit script", false); |
186 | return UUID.Zero; | 186 | return UUID.Zero; |
187 | } | 187 | } |
188 | 188 | ||
189 | remoteClient.SendAgentAlertMessage("Script saved", false); | 189 | remoteClient.SendAgentAlertMessage("Script saved", false); |
190 | } | 190 | } |
191 | 191 | ||
@@ -193,21 +193,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
193 | CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data); | 193 | CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data); |
194 | AssetCache.AddAsset(asset); | 194 | AssetCache.AddAsset(asset); |
195 | 195 | ||
196 | item.AssetID = asset.FullID; | 196 | item.AssetID = asset.Metadata.FullID; |
197 | userInfo.UpdateItem(item); | 197 | userInfo.UpdateItem(item); |
198 | 198 | ||
199 | // remoteClient.SendInventoryItemCreateUpdate(item); | 199 | // remoteClient.SendInventoryItemCreateUpdate(item); |
200 | return (asset.FullID); | 200 | return (asset.Metadata.FullID); |
201 | } | 201 | } |
202 | } | 202 | } |
203 | } | 203 | } |
204 | else | 204 | else |
205 | { | 205 | { |
206 | m_log.ErrorFormat( | 206 | m_log.ErrorFormat( |
207 | "[AGENT INVENTORY]: Could not resolve user {0} for caps inventory update", | 207 | "[AGENT INVENTORY]: Could not resolve user {0} for caps inventory update", |
208 | remoteClient.AgentId); | 208 | remoteClient.AgentId); |
209 | } | 209 | } |
210 | 210 | ||
211 | return UUID.Zero; | 211 | return UUID.Zero; |
212 | } | 212 | } |
213 | 213 | ||
@@ -283,9 +283,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
283 | { | 283 | { |
284 | part.Inventory.RemoveScriptInstance(item.ItemID); | 284 | part.Inventory.RemoveScriptInstance(item.ItemID); |
285 | } | 285 | } |
286 | 286 | ||
287 | // Update item with new asset | 287 | // Update item with new asset |
288 | item.AssetID = asset.FullID; | 288 | item.AssetID = asset.Metadata.FullID; |
289 | group.UpdateInventoryItem(item); | 289 | group.UpdateInventoryItem(item); |
290 | part.GetProperties(remoteClient); | 290 | part.GetProperties(remoteClient); |
291 | 291 | ||
@@ -406,7 +406,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
406 | /// </summary> | 406 | /// </summary> |
407 | /// <param name="recipientClient"></param> | 407 | /// <param name="recipientClient"></param> |
408 | /// <param name="senderId">ID of the sender of the item</param> | 408 | /// <param name="senderId">ID of the sender of the item</param> |
409 | /// <param name="itemId"></param> | 409 | /// <param name="itemId"></param> |
410 | public virtual void GiveInventoryItem(IClientAPI recipientClient, UUID senderId, UUID itemId) | 410 | public virtual void GiveInventoryItem(IClientAPI recipientClient, UUID senderId, UUID itemId) |
411 | { | 411 | { |
412 | InventoryItemBase itemCopy = GiveInventoryItem(recipientClient.AgentId, senderId, itemId); | 412 | InventoryItemBase itemCopy = GiveInventoryItem(recipientClient.AgentId, senderId, itemId); |
@@ -420,19 +420,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
420 | /// </summary> | 420 | /// </summary> |
421 | /// <param name="recipient"></param> | 421 | /// <param name="recipient"></param> |
422 | /// <param name="senderId">ID of the sender of the item</param> | 422 | /// <param name="senderId">ID of the sender of the item</param> |
423 | /// <param name="itemId"></param> | 423 | /// <param name="itemId"></param> |
424 | /// <returns>The inventory item copy given, null if the give was unsuccessful</returns> | 424 | /// <returns>The inventory item copy given, null if the give was unsuccessful</returns> |
425 | public virtual InventoryItemBase GiveInventoryItem(UUID recipient, UUID senderId, UUID itemId) | 425 | public virtual InventoryItemBase GiveInventoryItem(UUID recipient, UUID senderId, UUID itemId) |
426 | { | 426 | { |
427 | return GiveInventoryItem(recipient, senderId, itemId, UUID.Zero); | 427 | return GiveInventoryItem(recipient, senderId, itemId, UUID.Zero); |
428 | } | 428 | } |
429 | 429 | ||
430 | /// <summary> | 430 | /// <summary> |
431 | /// Give an inventory item from one user to another | 431 | /// Give an inventory item from one user to another |
432 | /// </summary> | 432 | /// </summary> |
433 | /// <param name="recipient"></param> | 433 | /// <param name="recipient"></param> |
434 | /// <param name="senderId">ID of the sender of the item</param> | 434 | /// <param name="senderId">ID of the sender of the item</param> |
435 | /// <param name="itemId"></param> | 435 | /// <param name="itemId"></param> |
436 | /// <param name="recipientFolderId"> | 436 | /// <param name="recipientFolderId"> |
437 | /// The id of the folder in which the copy item should go. If UUID.Zero then the item is placed in the most | 437 | /// The id of the folder in which the copy item should go. If UUID.Zero then the item is placed in the most |
438 | /// appropriate default folder. | 438 | /// appropriate default folder. |
@@ -485,7 +485,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
485 | itemCopy.AssetType = item.AssetType; | 485 | itemCopy.AssetType = item.AssetType; |
486 | itemCopy.InvType = item.InvType; | 486 | itemCopy.InvType = item.InvType; |
487 | itemCopy.Folder = recipientFolderId; | 487 | itemCopy.Folder = recipientFolderId; |
488 | 488 | ||
489 | if (Permissions.PropagatePermissions()) | 489 | if (Permissions.PropagatePermissions()) |
490 | { | 490 | { |
491 | if (item.InvType == 6) | 491 | if (item.InvType == 6) |
@@ -557,19 +557,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
557 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemId.ToString() + ", no root folder"); | 557 | m_log.Error("[AGENT INVENTORY]: Failed to find item " + itemId.ToString() + ", no root folder"); |
558 | return null; | 558 | return null; |
559 | } | 559 | } |
560 | 560 | ||
561 | return null; | 561 | return null; |
562 | } | 562 | } |
563 | 563 | ||
564 | /// <summary> | 564 | /// <summary> |
565 | /// Give an entire inventory folder from one user to another. The entire contents (including all descendent | 565 | /// Give an entire inventory folder from one user to another. The entire contents (including all descendent |
566 | /// folders) is given. | 566 | /// folders) is given. |
567 | /// </summary> | 567 | /// </summary> |
568 | /// <param name="recipientId"></param> | 568 | /// <param name="recipientId"></param> |
569 | /// <param name="senderId">ID of the sender of the item</param> | 569 | /// <param name="senderId">ID of the sender of the item</param> |
570 | /// <param name="folderId"></param> | 570 | /// <param name="folderId"></param> |
571 | /// <param name="recipientParentFolderId"> | 571 | /// <param name="recipientParentFolderId"> |
572 | /// The id of the receipient folder in which the send folder should be placed. If UUID.Zero then the | 572 | /// The id of the receipient folder in which the send folder should be placed. If UUID.Zero then the |
573 | /// recipient folder is the root folder | 573 | /// recipient folder is the root folder |
574 | /// </param> | 574 | /// </param> |
575 | /// <returns> | 575 | /// <returns> |
@@ -588,24 +588,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
588 | 588 | ||
589 | return null; | 589 | return null; |
590 | } | 590 | } |
591 | 591 | ||
592 | if (!senderUserInfo.HasReceivedInventory) | 592 | if (!senderUserInfo.HasReceivedInventory) |
593 | { | 593 | { |
594 | m_log.DebugFormat( | 594 | m_log.DebugFormat( |
595 | "[AGENT INVENTORY]: Could not give inventory folder - have not yet received inventory for {0}", | 595 | "[AGENT INVENTORY]: Could not give inventory folder - have not yet received inventory for {0}", |
596 | senderId); | 596 | senderId); |
597 | 597 | ||
598 | return null; | 598 | return null; |
599 | } | 599 | } |
600 | 600 | ||
601 | InventoryFolderImpl folder = senderUserInfo.RootFolder.FindFolder(folderId); | 601 | InventoryFolderImpl folder = senderUserInfo.RootFolder.FindFolder(folderId); |
602 | 602 | ||
603 | if (null == folder) | 603 | if (null == folder) |
604 | { | 604 | { |
605 | m_log.ErrorFormat( | 605 | m_log.ErrorFormat( |
606 | "[AGENT INVENTORY]: Could not find inventory folder {0} to give", folderId); | 606 | "[AGENT INVENTORY]: Could not find inventory folder {0} to give", folderId); |
607 | 607 | ||
608 | return null; | 608 | return null; |
609 | } | 609 | } |
610 | 610 | ||
611 | CachedUserInfo recipientUserInfo | 611 | CachedUserInfo recipientUserInfo |
@@ -618,30 +618,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
618 | 618 | ||
619 | return null; | 619 | return null; |
620 | } | 620 | } |
621 | 621 | ||
622 | if (recipientParentFolderId == UUID.Zero) | 622 | if (recipientParentFolderId == UUID.Zero) |
623 | recipientParentFolderId = recipientUserInfo.RootFolder.ID; | 623 | recipientParentFolderId = recipientUserInfo.RootFolder.ID; |
624 | 624 | ||
625 | UUID newFolderId = UUID.Random(); | 625 | UUID newFolderId = UUID.Random(); |
626 | recipientUserInfo.CreateFolder(folder.Name, newFolderId, (ushort)folder.Type, recipientParentFolderId); | 626 | recipientUserInfo.CreateFolder(folder.Name, newFolderId, (ushort)folder.Type, recipientParentFolderId); |
627 | 627 | ||
628 | // XXX: Messy - we should really get this back in the CreateFolder call | 628 | // XXX: Messy - we should really get this back in the CreateFolder call |
629 | InventoryFolderImpl copiedFolder = recipientUserInfo.RootFolder.FindFolder(newFolderId); | 629 | InventoryFolderImpl copiedFolder = recipientUserInfo.RootFolder.FindFolder(newFolderId); |
630 | 630 | ||
631 | // Give all the subfolders | 631 | // Give all the subfolders |
632 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); | 632 | List<InventoryFolderImpl> subFolders = folder.RequestListOfFolderImpls(); |
633 | foreach (InventoryFolderImpl childFolder in subFolders) | 633 | foreach (InventoryFolderImpl childFolder in subFolders) |
634 | { | 634 | { |
635 | GiveInventoryFolder(recipientId, senderId, childFolder.ID, copiedFolder.ID); | 635 | GiveInventoryFolder(recipientId, senderId, childFolder.ID, copiedFolder.ID); |
636 | } | 636 | } |
637 | 637 | ||
638 | // Give all the items | 638 | // Give all the items |
639 | List<InventoryItemBase> items = folder.RequestListOfItems(); | 639 | List<InventoryItemBase> items = folder.RequestListOfItems(); |
640 | foreach (InventoryItemBase item in items) | 640 | foreach (InventoryItemBase item in items) |
641 | { | 641 | { |
642 | GiveInventoryItem(recipientId, senderId, item.ID, copiedFolder.ID); | 642 | GiveInventoryItem(recipientId, senderId, item.ID, copiedFolder.ID); |
643 | } | 643 | } |
644 | 644 | ||
645 | return copiedFolder; | 645 | return copiedFolder; |
646 | } | 646 | } |
647 | 647 | ||
@@ -688,7 +688,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
688 | { | 688 | { |
689 | if (newName != String.Empty) | 689 | if (newName != String.Empty) |
690 | { | 690 | { |
691 | asset.Name = newName; | 691 | asset.Metadata.Name = newName; |
692 | } | 692 | } |
693 | else | 693 | else |
694 | { | 694 | { |
@@ -728,10 +728,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
728 | private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data) | 728 | private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data) |
729 | { | 729 | { |
730 | AssetBase asset = new AssetBase(); | 730 | AssetBase asset = new AssetBase(); |
731 | asset.Name = name; | 731 | asset.Metadata.Name = name; |
732 | asset.Description = description; | 732 | asset.Metadata.Description = description; |
733 | asset.Type = assetType; | 733 | asset.Metadata.Type = assetType; |
734 | asset.FullID = UUID.Random(); | 734 | asset.Metadata.FullID = UUID.Random(); |
735 | asset.Data = (data == null) ? new byte[1] : data; | 735 | asset.Data = (data == null) ? new byte[1] : data; |
736 | 736 | ||
737 | return asset; | 737 | return asset; |
@@ -831,11 +831,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
831 | item.Owner = remoteClient.AgentId; | 831 | item.Owner = remoteClient.AgentId; |
832 | item.Creator = remoteClient.AgentId; | 832 | item.Creator = remoteClient.AgentId; |
833 | item.ID = UUID.Random(); | 833 | item.ID = UUID.Random(); |
834 | item.AssetID = asset.FullID; | 834 | item.AssetID = asset.Metadata.FullID; |
835 | item.Description = asset.Description; | 835 | item.Description = asset.Metadata.Description; |
836 | item.Name = name; | 836 | item.Name = name; |
837 | item.Flags = flags; | 837 | item.Flags = flags; |
838 | item.AssetType = asset.Type; | 838 | item.AssetType = asset.Metadata.Type; |
839 | item.InvType = invType; | 839 | item.InvType = invType; |
840 | item.Folder = folderID; | 840 | item.Folder = folderID; |
841 | item.CurrentPermissions = currentMask; | 841 | item.CurrentPermissions = currentMask; |
@@ -879,7 +879,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
879 | 879 | ||
880 | if (!Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) | 880 | if (!Permissions.CanCreateUserInventory(invType, remoteClient.AgentId)) |
881 | return; | 881 | return; |
882 | 882 | ||
883 | if (transactionID == UUID.Zero) | 883 | if (transactionID == UUID.Zero) |
884 | { | 884 | { |
885 | CachedUserInfo userInfo | 885 | CachedUserInfo userInfo |
@@ -890,7 +890,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
890 | ScenePresence presence; | 890 | ScenePresence presence; |
891 | TryGetAvatar(remoteClient.AgentId, out presence); | 891 | TryGetAvatar(remoteClient.AgentId, out presence); |
892 | byte[] data = null; | 892 | byte[] data = null; |
893 | 893 | ||
894 | if (invType == 3 && presence != null) // OpenMetaverse.asset.assettype.landmark = 3 - needs to be turned into an enum | 894 | if (invType == 3 && presence != null) // OpenMetaverse.asset.assettype.landmark = 3 - needs to be turned into an enum |
895 | { | 895 | { |
896 | Vector3 pos = presence.AbsolutePosition; | 896 | Vector3 pos = presence.AbsolutePosition; |
@@ -905,7 +905,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
905 | AssetBase asset = CreateAsset(name, description, assetType, data); | 905 | AssetBase asset = CreateAsset(name, description, assetType, data); |
906 | AssetCache.AddAsset(asset); | 906 | AssetCache.AddAsset(asset); |
907 | 907 | ||
908 | CreateNewInventoryItem(remoteClient, folderID, asset.Name, 0, callbackID, asset, invType, nextOwnerMask, creationDate); | 908 | CreateNewInventoryItem(remoteClient, folderID, asset.Metadata.Name, 0, callbackID, asset, invType, nextOwnerMask, creationDate); |
909 | } | 909 | } |
910 | else | 910 | else |
911 | { | 911 | { |
@@ -1429,7 +1429,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1429 | } | 1429 | } |
1430 | } | 1430 | } |
1431 | else // Updating existing item with new perms etc | 1431 | else // Updating existing item with new perms etc |
1432 | { | 1432 | { |
1433 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); | 1433 | IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); |
1434 | if (agentTransactions != null) | 1434 | if (agentTransactions != null) |
1435 | { | 1435 | { |
@@ -1511,7 +1511,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1511 | } | 1511 | } |
1512 | } | 1512 | } |
1513 | else // script has been rezzed directly into a prim's inventory | 1513 | else // script has been rezzed directly into a prim's inventory |
1514 | { | 1514 | { |
1515 | SceneObjectPart part = GetSceneObjectPart(itemBase.Folder); | 1515 | SceneObjectPart part = GetSceneObjectPart(itemBase.Folder); |
1516 | if (part == null) | 1516 | if (part == null) |
1517 | return; | 1517 | return; |
@@ -1521,10 +1521,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1521 | 1521 | ||
1522 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1522 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) |
1523 | return; | 1523 | return; |
1524 | 1524 | ||
1525 | if (!Permissions.CanCreateObjectInventory( | 1525 | if (!Permissions.CanCreateObjectInventory( |
1526 | itemBase.InvType, part.UUID, remoteClient.AgentId)) | 1526 | itemBase.InvType, part.UUID, remoteClient.AgentId)) |
1527 | return; | 1527 | return; |
1528 | 1528 | ||
1529 | AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}")); | 1529 | AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}")); |
1530 | AssetCache.AddAsset(asset); | 1530 | AssetCache.AddAsset(asset); |
@@ -1550,7 +1550,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1550 | taskItem.Flags = itemBase.Flags; | 1550 | taskItem.Flags = itemBase.Flags; |
1551 | taskItem.PermsGranter = UUID.Zero; | 1551 | taskItem.PermsGranter = UUID.Zero; |
1552 | taskItem.PermsMask = 0; | 1552 | taskItem.PermsMask = 0; |
1553 | taskItem.AssetID = asset.FullID; | 1553 | taskItem.AssetID = asset.Metadata.FullID; |
1554 | 1554 | ||
1555 | part.Inventory.AddInventoryItem(taskItem, false); | 1555 | part.Inventory.AddInventoryItem(taskItem, false); |
1556 | part.GetProperties(remoteClient); | 1556 | part.GetProperties(remoteClient); |
@@ -1737,7 +1737,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1737 | grp.UUID, | 1737 | grp.UUID, |
1738 | remoteClient.AgentId); | 1738 | remoteClient.AgentId); |
1739 | permissionToDelete = permissionToTake; | 1739 | permissionToDelete = permissionToTake; |
1740 | 1740 | ||
1741 | if (permissionToDelete) | 1741 | if (permissionToDelete) |
1742 | { | 1742 | { |
1743 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, "parcel owner return"); | 1743 | AddReturn(grp.OwnerID, grp.Name, grp.AbsolutePosition, "parcel owner return"); |
@@ -1794,8 +1794,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1794 | /// </summary> | 1794 | /// </summary> |
1795 | /// <param name="action"></param> | 1795 | /// <param name="action"></param> |
1796 | /// <param name="folderID"></param> | 1796 | /// <param name="folderID"></param> |
1797 | /// <param name="objectGroup"></param> | 1797 | /// <param name="objectGroup"></param> |
1798 | /// <param name="remoteClient"> </param> | 1798 | /// <param name="remoteClient"> </param> |
1799 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, | 1799 | public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, |
1800 | SceneObjectGroup objectGroup, IClientAPI remoteClient) | 1800 | SceneObjectGroup objectGroup, IClientAPI remoteClient) |
1801 | { | 1801 | { |
@@ -1807,7 +1807,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1807 | // | 1807 | // |
1808 | CachedUserInfo userInfo; | 1808 | CachedUserInfo userInfo; |
1809 | 1809 | ||
1810 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy || | 1810 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy || |
1811 | action == DeRezAction.SaveToExistingUserInventoryItem) | 1811 | action == DeRezAction.SaveToExistingUserInventoryItem) |
1812 | { | 1812 | { |
1813 | // Take or take copy require a taker | 1813 | // Take or take copy require a taker |
@@ -1850,25 +1850,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
1850 | // | 1850 | // |
1851 | 1851 | ||
1852 | InventoryFolderBase folder = null; | 1852 | InventoryFolderBase folder = null; |
1853 | InventoryItemBase item = null; | 1853 | InventoryItemBase item = null; |
1854 | 1854 | ||
1855 | if (DeRezAction.SaveToExistingUserInventoryItem == action) | 1855 | if (DeRezAction.SaveToExistingUserInventoryItem == action) |
1856 | { | 1856 | { |
1857 | item = userInfo.RootFolder.FindItem( | 1857 | item = userInfo.RootFolder.FindItem( |
1858 | objectGroup.RootPart.FromUserInventoryItemID); | 1858 | objectGroup.RootPart.FromUserInventoryItemID); |
1859 | 1859 | ||
1860 | if (null == item) | 1860 | if (null == item) |
1861 | { | 1861 | { |
1862 | m_log.DebugFormat( | 1862 | m_log.DebugFormat( |
1863 | "[AGENT INVENTORY]: Object {0} {1} scheduled for save to inventory has already been deleted.", | 1863 | "[AGENT INVENTORY]: Object {0} {1} scheduled for save to inventory has already been deleted.", |
1864 | objectGroup.Name, objectGroup.UUID); | 1864 | objectGroup.Name, objectGroup.UUID); |
1865 | return UUID.Zero; | 1865 | return UUID.Zero; |
1866 | } | 1866 | } |
1867 | } | 1867 | } |
1868 | else | 1868 | else |
1869 | { | 1869 | { |
1870 | // Folder magic | 1870 | // Folder magic |
1871 | // | 1871 | // |
1872 | if (action == DeRezAction.Delete) | 1872 | if (action == DeRezAction.Delete) |
1873 | { | 1873 | { |
1874 | // Deleting someone else's item | 1874 | // Deleting someone else's item |
@@ -1940,7 +1940,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1940 | item.InvType = (int)InventoryType.Object; | 1940 | item.InvType = (int)InventoryType.Object; |
1941 | item.Folder = folder.ID; | 1941 | item.Folder = folder.ID; |
1942 | item.Owner = userInfo.UserProfile.ID; | 1942 | item.Owner = userInfo.UserProfile.ID; |
1943 | 1943 | ||
1944 | } | 1944 | } |
1945 | 1945 | ||
1946 | AssetBase asset = CreateAsset( | 1946 | AssetBase asset = CreateAsset( |
@@ -1949,16 +1949,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1949 | (sbyte)AssetType.Object, | 1949 | (sbyte)AssetType.Object, |
1950 | Utils.StringToBytes(sceneObjectXml)); | 1950 | Utils.StringToBytes(sceneObjectXml)); |
1951 | AssetCache.AddAsset(asset); | 1951 | AssetCache.AddAsset(asset); |
1952 | assetID = asset.FullID; | 1952 | assetID = asset.Metadata.FullID; |
1953 | 1953 | ||
1954 | if (DeRezAction.SaveToExistingUserInventoryItem == action) | 1954 | if (DeRezAction.SaveToExistingUserInventoryItem == action) |
1955 | { | 1955 | { |
1956 | item.AssetID = asset.FullID; | 1956 | item.AssetID = asset.Metadata.FullID; |
1957 | userInfo.UpdateItem(item); | 1957 | userInfo.UpdateItem(item); |
1958 | } | 1958 | } |
1959 | else | 1959 | else |
1960 | { | 1960 | { |
1961 | item.AssetID = asset.FullID; | 1961 | item.AssetID = asset.Metadata.FullID; |
1962 | 1962 | ||
1963 | if (remoteClient != null && (remoteClient.AgentId != objectGroup.RootPart.OwnerID) && Permissions.PropagatePermissions()) | 1963 | if (remoteClient != null && (remoteClient.AgentId != objectGroup.RootPart.OwnerID) && Permissions.PropagatePermissions()) |
1964 | { | 1964 | { |
@@ -1991,12 +1991,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1991 | 1991 | ||
1992 | // TODO: add the new fields (Flags, Sale info, etc) | 1992 | // TODO: add the new fields (Flags, Sale info, etc) |
1993 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 1993 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
1994 | item.Description = asset.Description; | 1994 | item.Description = asset.Metadata.Description; |
1995 | item.Name = asset.Name; | 1995 | item.Name = asset.Metadata.Name; |
1996 | item.AssetType = asset.Type; | 1996 | item.AssetType = asset.Metadata.Type; |
1997 | 1997 | ||
1998 | userInfo.AddItem(item); | 1998 | userInfo.AddItem(item); |
1999 | 1999 | ||
2000 | if (remoteClient != null && item.Owner == remoteClient.AgentId) | 2000 | if (remoteClient != null && item.Owner == remoteClient.AgentId) |
2001 | { | 2001 | { |
2002 | remoteClient.SendInventoryItemCreateUpdate(item); | 2002 | remoteClient.SendInventoryItemCreateUpdate(item); |
@@ -2008,10 +2008,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2008 | { | 2008 | { |
2009 | notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item); | 2009 | notifyUser.ControllingClient.SendInventoryItemCreateUpdate(item); |
2010 | } | 2010 | } |
2011 | } | 2011 | } |
2012 | } | 2012 | } |
2013 | } | 2013 | } |
2014 | 2014 | ||
2015 | return assetID; | 2015 | return assetID; |
2016 | } | 2016 | } |
2017 | 2017 | ||
@@ -2025,11 +2025,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2025 | m_log.InfoFormat("[ATTACHMENT]: Save request for {0} which is unchanged", grp.UUID); | 2025 | m_log.InfoFormat("[ATTACHMENT]: Save request for {0} which is unchanged", grp.UUID); |
2026 | return; | 2026 | return; |
2027 | } | 2027 | } |
2028 | 2028 | ||
2029 | m_log.InfoFormat( | 2029 | m_log.InfoFormat( |
2030 | "[ATTACHMENT]: Updating asset for attachment {0}, attachpoint {1}", | 2030 | "[ATTACHMENT]: Updating asset for attachment {0}, attachpoint {1}", |
2031 | grp.UUID, grp.GetAttachmentPoint()); | 2031 | grp.UUID, grp.GetAttachmentPoint()); |
2032 | 2032 | ||
2033 | string sceneObjectXml = objectGroup.ToXmlString(); | 2033 | string sceneObjectXml = objectGroup.ToXmlString(); |
2034 | 2034 | ||
2035 | CachedUserInfo userInfo = | 2035 | CachedUserInfo userInfo = |
@@ -2077,10 +2077,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2077 | Utils.StringToBytes(sceneObjectXml)); | 2077 | Utils.StringToBytes(sceneObjectXml)); |
2078 | AssetCache.AddAsset(asset); | 2078 | AssetCache.AddAsset(asset); |
2079 | 2079 | ||
2080 | item.AssetID = asset.FullID; | 2080 | item.AssetID = asset.Metadata.FullID; |
2081 | item.Description = asset.Description; | 2081 | item.Description = asset.Metadata.Description; |
2082 | item.Name = asset.Name; | 2082 | item.Name = asset.Metadata.Name; |
2083 | item.AssetType = asset.Type; | 2083 | item.AssetType = asset.Metadata.Type; |
2084 | item.InvType = (int)InventoryType.Object; | 2084 | item.InvType = (int)InventoryType.Object; |
2085 | item.Folder = foundFolder; | 2085 | item.Folder = foundFolder; |
2086 | 2086 | ||
@@ -2118,10 +2118,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2118 | item.Creator = grp.RootPart.CreatorID; | 2118 | item.Creator = grp.RootPart.CreatorID; |
2119 | item.Owner = remoteClient.AgentId; | 2119 | item.Owner = remoteClient.AgentId; |
2120 | item.ID = UUID.Random(); | 2120 | item.ID = UUID.Random(); |
2121 | item.AssetID = asset.FullID; | 2121 | item.AssetID = asset.Metadata.FullID; |
2122 | item.Description = asset.Description; | 2122 | item.Description = asset.Metadata.Description; |
2123 | item.Name = asset.Name; | 2123 | item.Name = asset.Metadata.Name; |
2124 | item.AssetType = asset.Type; | 2124 | item.AssetType = asset.Metadata.Type; |
2125 | item.InvType = (int)InventoryType.Object; | 2125 | item.InvType = (int)InventoryType.Object; |
2126 | 2126 | ||
2127 | item.Folder = UUID.Zero; // Objects folder! | 2127 | item.Folder = UUID.Zero; // Objects folder! |
@@ -2241,20 +2241,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
2241 | if (rezAsset != null) | 2241 | if (rezAsset != null) |
2242 | { | 2242 | { |
2243 | UUID itemId = UUID.Zero; | 2243 | UUID itemId = UUID.Zero; |
2244 | 2244 | ||
2245 | // If we have permission to copy then link the rezzed object back to the user inventory | 2245 | // If we have permission to copy then link the rezzed object back to the user inventory |
2246 | // item that it came from. This allows us to enable 'save object to inventory' | 2246 | // item that it came from. This allows us to enable 'save object to inventory' |
2247 | if (!Permissions.BypassPermissions()) | 2247 | if (!Permissions.BypassPermissions()) |
2248 | { | 2248 | { |
2249 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == (uint)PermissionMask.Copy) | 2249 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == (uint)PermissionMask.Copy) |
2250 | { | 2250 | { |
2251 | itemId = item.ID; | 2251 | itemId = item.ID; |
2252 | } | 2252 | } |
2253 | } | 2253 | } |
2254 | 2254 | ||
2255 | string xmlData = Utils.BytesToString(rezAsset.Data); | 2255 | string xmlData = Utils.BytesToString(rezAsset.Data); |
2256 | SceneObjectGroup group = new SceneObjectGroup(itemId, xmlData, true); | 2256 | SceneObjectGroup group = new SceneObjectGroup(itemId, xmlData, true); |
2257 | 2257 | ||
2258 | if (!Permissions.CanRezObject( | 2258 | if (!Permissions.CanRezObject( |
2259 | group.Children.Count, remoteClient.AgentId, pos) | 2259 | group.Children.Count, remoteClient.AgentId, pos) |
2260 | && !attachment) | 2260 | && !attachment) |
@@ -2351,12 +2351,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
2351 | group.ClearPartAttachmentData(); | 2351 | group.ClearPartAttachmentData(); |
2352 | } | 2352 | } |
2353 | } | 2353 | } |
2354 | 2354 | ||
2355 | if (!attachment) | 2355 | if (!attachment) |
2356 | { | 2356 | { |
2357 | // Fire on_rez | 2357 | // Fire on_rez |
2358 | group.CreateScriptInstances(0, true, DefaultScriptEngine, 0); | 2358 | group.CreateScriptInstances(0, true, DefaultScriptEngine, 0); |
2359 | 2359 | ||
2360 | rootPart.ScheduleFullUpdate(); | 2360 | rootPart.ScheduleFullUpdate(); |
2361 | } | 2361 | } |
2362 | 2362 | ||
@@ -2500,7 +2500,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2500 | DeRezObject(null, grp.RootPart.LocalId, | 2500 | DeRezObject(null, grp.RootPart.LocalId, |
2501 | grp.RootPart.GroupID, DeRezAction.Return, UUID.Zero); | 2501 | grp.RootPart.GroupID, DeRezAction.Return, UUID.Zero); |
2502 | } | 2502 | } |
2503 | 2503 | ||
2504 | return true; | 2504 | return true; |
2505 | } | 2505 | } |
2506 | 2506 | ||
@@ -2632,7 +2632,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2632 | } | 2632 | } |
2633 | 2633 | ||
2634 | } | 2634 | } |
2635 | 2635 | ||
2636 | m_sceneGraph.DetachSingleAttachmentToInv(itemID, remoteClient); | 2636 | m_sceneGraph.DetachSingleAttachmentToInv(itemID, remoteClient); |
2637 | } | 2637 | } |
2638 | 2638 | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 33dae66..32bd9aa 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -115,18 +115,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | 115 | ||
116 | /// <value> | 116 | /// <value> |
117 | /// All the region modules attached to this scene. | 117 | /// All the region modules attached to this scene. |
118 | /// </value> | 118 | /// </value> |
119 | public Dictionary<string, IRegionModule> Modules | 119 | public Dictionary<string, IRegionModule> Modules |
120 | { | 120 | { |
121 | get { return m_modules; } | 121 | get { return m_modules; } |
122 | } | 122 | } |
123 | protected Dictionary<string, IRegionModule> m_modules = new Dictionary<string, IRegionModule>(); | 123 | protected Dictionary<string, IRegionModule> m_modules = new Dictionary<string, IRegionModule>(); |
124 | 124 | ||
125 | /// <value> | 125 | /// <value> |
126 | /// The module interfaces available from this scene. | 126 | /// The module interfaces available from this scene. |
127 | /// </value> | 127 | /// </value> |
128 | protected Dictionary<Type, List<object> > ModuleInterfaces = new Dictionary<Type, List<object> >(); | 128 | protected Dictionary<Type, List<object> > ModuleInterfaces = new Dictionary<Type, List<object> >(); |
129 | 129 | ||
130 | protected Dictionary<string, object> ModuleAPIMethods = new Dictionary<string, object>(); | 130 | protected Dictionary<string, object> ModuleAPIMethods = new Dictionary<string, object>(); |
131 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); | 131 | protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>(); |
132 | 132 | ||
@@ -143,7 +143,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
143 | protected IInterregionCommsIn m_interregionCommsIn; | 143 | protected IInterregionCommsIn m_interregionCommsIn; |
144 | protected IDialogModule m_dialogModule; | 144 | protected IDialogModule m_dialogModule; |
145 | protected internal ICapabilitiesModule CapsModule; | 145 | protected internal ICapabilitiesModule CapsModule; |
146 | 146 | ||
147 | // Central Update Loop | 147 | // Central Update Loop |
148 | 148 | ||
149 | protected int m_fps = 10; | 149 | protected int m_fps = 10; |
@@ -280,10 +280,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
280 | } | 280 | } |
281 | 281 | ||
282 | public int objectCapacity = 45000; | 282 | public int objectCapacity = 45000; |
283 | 283 | ||
284 | /// <value> | 284 | /// <value> |
285 | /// Registered classes that are capable of creating entities. | 285 | /// Registered classes that are capable of creating entities. |
286 | /// </value> | 286 | /// </value> |
287 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); | 287 | protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>(); |
288 | 288 | ||
289 | #endregion | 289 | #endregion |
@@ -316,7 +316,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
316 | 316 | ||
317 | m_eventManager = new EventManager(); | 317 | m_eventManager = new EventManager(); |
318 | m_permissions = new ScenePermissions(this); | 318 | m_permissions = new ScenePermissions(this); |
319 | 319 | ||
320 | m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this); | 320 | m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this); |
321 | m_asyncSceneObjectDeleter.Enabled = true; | 321 | m_asyncSceneObjectDeleter.Enabled = true; |
322 | 322 | ||
@@ -421,7 +421,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
421 | protected virtual void RegisterDefaultSceneEvents() | 421 | protected virtual void RegisterDefaultSceneEvents() |
422 | { | 422 | { |
423 | IDialogModule dm = RequestModuleInterface<IDialogModule>(); | 423 | IDialogModule dm = RequestModuleInterface<IDialogModule>(); |
424 | 424 | ||
425 | if (dm != null) | 425 | if (dm != null) |
426 | m_eventManager.OnPermissionError += dm.SendAlertToUser; | 426 | m_eventManager.OnPermissionError += dm.SendAlertToUser; |
427 | } | 427 | } |
@@ -564,7 +564,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
564 | m_incrementsof15seconds = (int)seconds / 15; | 564 | m_incrementsof15seconds = (int)seconds / 15; |
565 | m_RestartTimerCounter = 0; | 565 | m_RestartTimerCounter = 0; |
566 | m_restartTimer.AutoReset = true; | 566 | m_restartTimer.AutoReset = true; |
567 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); | 567 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); |
568 | m_log.Info("[REGION]: Restarting Region in " + (seconds / 60) + " minutes"); | 568 | m_log.Info("[REGION]: Restarting Region in " + (seconds / 60) + " minutes"); |
569 | m_restartTimer.Start(); | 569 | m_restartTimer.Start(); |
570 | m_dialogModule.SendNotificationToUsersInRegion( | 570 | m_dialogModule.SendNotificationToUsersInRegion( |
@@ -583,8 +583,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
583 | { | 583 | { |
584 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) | 584 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) |
585 | m_dialogModule.SendNotificationToUsersInRegion( | 585 | m_dialogModule.SendNotificationToUsersInRegion( |
586 | UUID.Random(), | 586 | UUID.Random(), |
587 | String.Empty, | 587 | String.Empty, |
588 | RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter) * 15) + " seconds"); | 588 | RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter) * 15) + " seconds"); |
589 | } | 589 | } |
590 | else | 590 | else |
@@ -717,7 +717,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
717 | 717 | ||
718 | // Stop all client threads. | 718 | // Stop all client threads. |
719 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); | 719 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); |
720 | 720 | ||
721 | // Stop updating the scene objects and agents. | 721 | // Stop updating the scene objects and agents. |
722 | //m_heartbeatTimer.Close(); | 722 | //m_heartbeatTimer.Close(); |
723 | shuttingdown = true; | 723 | shuttingdown = true; |
@@ -733,7 +733,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
733 | } | 733 | } |
734 | 734 | ||
735 | m_sceneGraph.Close(); | 735 | m_sceneGraph.Close(); |
736 | 736 | ||
737 | // De-register with region communications (events cleanup) | 737 | // De-register with region communications (events cleanup) |
738 | UnRegisterRegionWithComms(); | 738 | UnRegisterRegionWithComms(); |
739 | 739 | ||
@@ -1400,7 +1400,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1400 | //tc = System.Environment.TickCount - tc; | 1400 | //tc = System.Environment.TickCount - tc; |
1401 | //m_log.Info("[MAPTILE]: Completed One row in " + tc + " ms"); | 1401 | //m_log.Info("[MAPTILE]: Completed One row in " + tc + " ms"); |
1402 | } | 1402 | } |
1403 | 1403 | ||
1404 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Done in " + (System.Environment.TickCount - tc) + " ms"); | 1404 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Done in " + (System.Environment.TickCount - tc) + " ms"); |
1405 | 1405 | ||
1406 | bool drawPrimVolume = true; | 1406 | bool drawPrimVolume = true; |
@@ -1644,13 +1644,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1644 | m_regInfo.RegionSettings.TerrainImageID = TerrainImageUUID; | 1644 | m_regInfo.RegionSettings.TerrainImageID = TerrainImageUUID; |
1645 | 1645 | ||
1646 | AssetBase asset = new AssetBase(); | 1646 | AssetBase asset = new AssetBase(); |
1647 | asset.FullID = m_regInfo.RegionSettings.TerrainImageID; | 1647 | asset.Metadata.FullID = m_regInfo.RegionSettings.TerrainImageID; |
1648 | asset.Data = data; | 1648 | asset.Data = data; |
1649 | asset.Name = "terrainImage_" + m_regInfo.RegionID.ToString() + "_" + lastMapRefresh.ToString(); | 1649 | asset.Metadata.Name = "terrainImage_" + m_regInfo.RegionID.ToString() + "_" + lastMapRefresh.ToString(); |
1650 | asset.Description = RegionInfo.RegionName; | 1650 | asset.Metadata.Description = RegionInfo.RegionName; |
1651 | 1651 | ||
1652 | asset.Type = 0; | 1652 | asset.Metadata.Type = 0; |
1653 | asset.Temporary = temporary; | 1653 | asset.Metadata.Temporary = temporary; |
1654 | AssetCache.AddAsset(asset); | 1654 | AssetCache.AddAsset(asset); |
1655 | } | 1655 | } |
1656 | 1656 | ||
@@ -1699,7 +1699,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1699 | m_log.ErrorFormat("[SCENE] Found a SceneObjectGroup with m_rootPart == null and {0} children", | 1699 | m_log.ErrorFormat("[SCENE] Found a SceneObjectGroup with m_rootPart == null and {0} children", |
1700 | group.Children == null ? 0 : group.Children.Count); | 1700 | group.Children == null ? 0 : group.Children.Count); |
1701 | } | 1701 | } |
1702 | 1702 | ||
1703 | AddRestoredSceneObject(group, true, true); | 1703 | AddRestoredSceneObject(group, true, true); |
1704 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 1704 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
1705 | rootPart.ObjectFlags &= ~(uint)PrimFlags.Scripted; | 1705 | rootPart.ObjectFlags &= ~(uint)PrimFlags.Scripted; |
@@ -1814,7 +1814,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1814 | { | 1814 | { |
1815 | //m_log.DebugFormat( | 1815 | //m_log.DebugFormat( |
1816 | // "[SCENE]: Scene.AddNewPrim() pcode {0} called for {1} in {2}", shape.PCode, ownerID, RegionInfo.RegionName); | 1816 | // "[SCENE]: Scene.AddNewPrim() pcode {0} called for {1} in {2}", shape.PCode, ownerID, RegionInfo.RegionName); |
1817 | 1817 | ||
1818 | // If an entity creator has been registered for this prim type then use that | 1818 | // If an entity creator has been registered for this prim type then use that |
1819 | if (m_entityCreators.ContainsKey((PCode)shape.PCode)) | 1819 | if (m_entityCreators.ContainsKey((PCode)shape.PCode)) |
1820 | return m_entityCreators[(PCode)shape.PCode].CreateEntity(ownerID, groupID, pos, rot, shape); | 1820 | return m_entityCreators[(PCode)shape.PCode].CreateEntity(ownerID, groupID, pos, rot, shape); |
@@ -2094,7 +2094,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2094 | /// <returns></returns> | 2094 | /// <returns></returns> |
2095 | public bool IncomingInterRegionPrimGroup(UUID primID, string objXMLData, int XMLMethod) | 2095 | public bool IncomingInterRegionPrimGroup(UUID primID, string objXMLData, int XMLMethod) |
2096 | { | 2096 | { |
2097 | 2097 | ||
2098 | if (XMLMethod == 0) | 2098 | if (XMLMethod == 0) |
2099 | { | 2099 | { |
2100 | m_log.DebugFormat("[INTERREGION]: A new prim {0} arrived from a neighbor", primID); | 2100 | m_log.DebugFormat("[INTERREGION]: A new prim {0} arrived from a neighbor", primID); |
@@ -2308,7 +2308,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2308 | 2308 | ||
2309 | CreateAndAddScenePresence(client); | 2309 | CreateAndAddScenePresence(client); |
2310 | } | 2310 | } |
2311 | 2311 | ||
2312 | m_LastLogin = System.Environment.TickCount; | 2312 | m_LastLogin = System.Environment.TickCount; |
2313 | EventManager.TriggerOnNewClient(client); | 2313 | EventManager.TriggerOnNewClient(client); |
2314 | } | 2314 | } |
@@ -2390,7 +2390,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2390 | client.OnUnackedTerrain += TerrainUnAcked; | 2390 | client.OnUnackedTerrain += TerrainUnAcked; |
2391 | 2391 | ||
2392 | client.OnObjectOwner += ObjectOwner; | 2392 | client.OnObjectOwner += ObjectOwner; |
2393 | 2393 | ||
2394 | if (StatsReporter != null) | 2394 | if (StatsReporter != null) |
2395 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsFromClientStats; | 2395 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsFromClientStats; |
2396 | 2396 | ||
@@ -2561,7 +2561,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2561 | m_log.ErrorFormat("[APPEARANCE]: Problem fetching appearance for avatar {0}, {1}", | 2561 | m_log.ErrorFormat("[APPEARANCE]: Problem fetching appearance for avatar {0}, {1}", |
2562 | client.Name, e); | 2562 | client.Name, e); |
2563 | } | 2563 | } |
2564 | 2564 | ||
2565 | m_log.Warn("[APPEARANCE]: Appearance not found, returning default"); | 2565 | m_log.Warn("[APPEARANCE]: Appearance not found, returning default"); |
2566 | } | 2566 | } |
2567 | 2567 | ||
@@ -2770,21 +2770,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
2770 | 2770 | ||
2771 | ScenePresence sp = m_sceneGraph.GetScenePresence(agent.AgentID); | 2771 | ScenePresence sp = m_sceneGraph.GetScenePresence(agent.AgentID); |
2772 | if (sp != null) | 2772 | if (sp != null) |
2773 | { | 2773 | { |
2774 | m_log.DebugFormat( | 2774 | m_log.DebugFormat( |
2775 | "[SCENE]: Adjusting known seeds for existing agent {0} in {1}", | 2775 | "[SCENE]: Adjusting known seeds for existing agent {0} in {1}", |
2776 | agent.AgentID, RegionInfo.RegionName); | 2776 | agent.AgentID, RegionInfo.RegionName); |
2777 | 2777 | ||
2778 | sp.AdjustKnownSeeds(); | 2778 | sp.AdjustKnownSeeds(); |
2779 | 2779 | ||
2780 | return; | 2780 | return; |
2781 | } | 2781 | } |
2782 | 2782 | ||
2783 | // Don't disable this log message - it's too helpful | 2783 | // Don't disable this log message - it's too helpful |
2784 | m_log.DebugFormat( | 2784 | m_log.DebugFormat( |
2785 | "[CONNECTION BEGIN]: Region {0} told of incoming client {1} {2} {3} (circuit code {4})", | 2785 | "[CONNECTION BEGIN]: Region {0} told of incoming client {1} {2} {3} (circuit code {4})", |
2786 | RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode); | 2786 | RegionInfo.RegionName, agent.firstname, agent.lastname, agent.AgentID, agent.circuitcode); |
2787 | 2787 | ||
2788 | if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) | 2788 | if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) |
2789 | { | 2789 | { |
2790 | m_log.WarnFormat( | 2790 | m_log.WarnFormat( |
@@ -2808,10 +2808,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2808 | } | 2808 | } |
2809 | 2809 | ||
2810 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); | 2810 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); |
2811 | 2811 | ||
2812 | // rewrite session_id | 2812 | // rewrite session_id |
2813 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); | 2813 | CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); |
2814 | 2814 | ||
2815 | if (userinfo != null) | 2815 | if (userinfo != null) |
2816 | { | 2816 | { |
2817 | userinfo.SessionID = agent.SessionID; | 2817 | userinfo.SessionID = agent.SessionID; |
@@ -2873,12 +2873,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
2873 | public virtual void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) | 2873 | public virtual void AgentCrossing(UUID agentID, Vector3 position, bool isFlying) |
2874 | { | 2874 | { |
2875 | ScenePresence presence; | 2875 | ScenePresence presence; |
2876 | 2876 | ||
2877 | lock (m_scenePresences) | 2877 | lock (m_scenePresences) |
2878 | { | 2878 | { |
2879 | m_scenePresences.TryGetValue(agentID, out presence); | 2879 | m_scenePresences.TryGetValue(agentID, out presence); |
2880 | } | 2880 | } |
2881 | 2881 | ||
2882 | if (presence != null) | 2882 | if (presence != null) |
2883 | { | 2883 | { |
2884 | try | 2884 | try |
@@ -2902,14 +2902,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
2902 | { | 2902 | { |
2903 | // m_log.DebugFormat( | 2903 | // m_log.DebugFormat( |
2904 | // "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName); | 2904 | // "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName); |
2905 | 2905 | ||
2906 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); | 2906 | ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID); |
2907 | if (childAgentUpdate != null) | 2907 | if (childAgentUpdate != null) |
2908 | { | 2908 | { |
2909 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); | 2909 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); |
2910 | return true; | 2910 | return true; |
2911 | } | 2911 | } |
2912 | 2912 | ||
2913 | return false; | 2913 | return false; |
2914 | } | 2914 | } |
2915 | 2915 | ||
@@ -2932,10 +2932,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2932 | // Not Implemented: | 2932 | // Not Implemented: |
2933 | //TODO: Do we need to pass the message on to one of our neighbors? | 2933 | //TODO: Do we need to pass the message on to one of our neighbors? |
2934 | } | 2934 | } |
2935 | 2935 | ||
2936 | return true; | 2936 | return true; |
2937 | } | 2937 | } |
2938 | 2938 | ||
2939 | return false; | 2939 | return false; |
2940 | } | 2940 | } |
2941 | 2941 | ||
@@ -2957,7 +2957,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2957 | public bool IncomingCloseAgent(UUID agentID) | 2957 | public bool IncomingCloseAgent(UUID agentID) |
2958 | { | 2958 | { |
2959 | //m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID); | 2959 | //m_log.DebugFormat("[SCENE]: Processing incoming close agent for {0}", agentID); |
2960 | 2960 | ||
2961 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); | 2961 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); |
2962 | if (presence != null) | 2962 | if (presence != null) |
2963 | { | 2963 | { |
@@ -2972,7 +2972,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2972 | } | 2972 | } |
2973 | 2973 | ||
2974 | // Don't do this to root agents on logout, it's not nice for the viewer | 2974 | // Don't do this to root agents on logout, it's not nice for the viewer |
2975 | if (presence.IsChildAgent) | 2975 | if (presence.IsChildAgent) |
2976 | { | 2976 | { |
2977 | // Tell a single agent to disconnect from the region. | 2977 | // Tell a single agent to disconnect from the region. |
2978 | IEventQueue eq = RequestModuleInterface<IEventQueue>(); | 2978 | IEventQueue eq = RequestModuleInterface<IEventQueue>(); |
@@ -2984,11 +2984,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
2984 | else | 2984 | else |
2985 | presence.ControllingClient.SendShutdownConnectionNotice(); | 2985 | presence.ControllingClient.SendShutdownConnectionNotice(); |
2986 | } | 2986 | } |
2987 | 2987 | ||
2988 | presence.ControllingClient.Close(true); | 2988 | presence.ControllingClient.Close(true); |
2989 | return true; | 2989 | return true; |
2990 | } | 2990 | } |
2991 | 2991 | ||
2992 | // Agent not here | 2992 | // Agent not here |
2993 | return false; | 2993 | return false; |
2994 | } | 2994 | } |
@@ -3059,7 +3059,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3059 | remoteClient.SendTeleportFailed("The region '" + regionName + "' could not be found."); | 3059 | remoteClient.SendTeleportFailed("The region '" + regionName + "' could not be found."); |
3060 | return; | 3060 | return; |
3061 | } | 3061 | } |
3062 | 3062 | ||
3063 | RequestTeleportLocation(remoteClient, regionInfo.RegionHandle, position, lookat, teleportFlags); | 3063 | RequestTeleportLocation(remoteClient, regionInfo.RegionHandle, position, lookat, teleportFlags); |
3064 | } | 3064 | } |
3065 | 3065 | ||
@@ -3080,7 +3080,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3080 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) | 3080 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) |
3081 | sp = m_scenePresences[remoteClient.AgentId]; | 3081 | sp = m_scenePresences[remoteClient.AgentId]; |
3082 | } | 3082 | } |
3083 | 3083 | ||
3084 | if (sp != null) | 3084 | if (sp != null) |
3085 | { | 3085 | { |
3086 | m_sceneGridService.RequestTeleportToLocation(sp, regionHandle, | 3086 | m_sceneGridService.RequestTeleportToLocation(sp, regionHandle, |
@@ -3211,7 +3211,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3211 | return; | 3211 | return; |
3212 | 3212 | ||
3213 | l.Add(mod); | 3213 | l.Add(mod); |
3214 | 3214 | ||
3215 | if (mod is IEntityCreator) | 3215 | if (mod is IEntityCreator) |
3216 | { | 3216 | { |
3217 | IEntityCreator entityCreator = (IEntityCreator)mod; | 3217 | IEntityCreator entityCreator = (IEntityCreator)mod; |
@@ -3220,7 +3220,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3220 | m_entityCreators[pcode] = entityCreator; | 3220 | m_entityCreators[pcode] = entityCreator; |
3221 | } | 3221 | } |
3222 | } | 3222 | } |
3223 | 3223 | ||
3224 | ModuleInterfaces[typeof(M)] = l; | 3224 | ModuleInterfaces[typeof(M)] = l; |
3225 | } | 3225 | } |
3226 | 3226 | ||
@@ -3243,7 +3243,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3243 | /// <summary> | 3243 | /// <summary> |
3244 | /// For the given interface, retrieve an array of region modules that implement it. | 3244 | /// For the given interface, retrieve an array of region modules that implement it. |
3245 | /// </summary> | 3245 | /// </summary> |
3246 | /// <returns>an empty array if there are no registered modules implementing that interface</returns> | 3246 | /// <returns>an empty array if there are no registered modules implementing that interface</returns> |
3247 | public override T[] RequestModuleInterfaces<T>() | 3247 | public override T[] RequestModuleInterfaces<T>() |
3248 | { | 3248 | { |
3249 | if (ModuleInterfaces.ContainsKey(typeof(T))) | 3249 | if (ModuleInterfaces.ContainsKey(typeof(T))) |
@@ -3383,7 +3383,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3383 | else | 3383 | else |
3384 | { | 3384 | { |
3385 | m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied"); | 3385 | m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied"); |
3386 | } | 3386 | } |
3387 | } | 3387 | } |
3388 | } | 3388 | } |
3389 | 3389 | ||
@@ -3855,14 +3855,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
3855 | public override bool PresenceChildStatus(UUID avatarID) | 3855 | public override bool PresenceChildStatus(UUID avatarID) |
3856 | { | 3856 | { |
3857 | ScenePresence cp = GetScenePresence(avatarID); | 3857 | ScenePresence cp = GetScenePresence(avatarID); |
3858 | 3858 | ||
3859 | // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing | 3859 | // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing |
3860 | // This needs to be fixed properly by cleaning up the logout code. | 3860 | // This needs to be fixed properly by cleaning up the logout code. |
3861 | //if (cp != null) | 3861 | //if (cp != null) |
3862 | // return cp.IsChildAgent; | 3862 | // return cp.IsChildAgent; |
3863 | 3863 | ||
3864 | //return false; | 3864 | //return false; |
3865 | 3865 | ||
3866 | return cp.IsChildAgent; | 3866 | return cp.IsChildAgent; |
3867 | } | 3867 | } |
3868 | 3868 | ||
@@ -4140,10 +4140,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
4140 | 4140 | ||
4141 | item.ID = UUID.Random(); | 4141 | item.ID = UUID.Random(); |
4142 | item.Owner = remoteClient.AgentId; | 4142 | item.Owner = remoteClient.AgentId; |
4143 | item.AssetID = asset.FullID; | 4143 | item.AssetID = asset.Metadata.FullID; |
4144 | item.Description = asset.Description; | 4144 | item.Description = asset.Metadata.Description; |
4145 | item.Name = asset.Name; | 4145 | item.Name = asset.Metadata.Name; |
4146 | item.AssetType = asset.Type; | 4146 | item.AssetType = asset.Metadata.Type; |
4147 | item.InvType = (int)InventoryType.Object; | 4147 | item.InvType = (int)InventoryType.Object; |
4148 | item.Folder = categoryID; | 4148 | item.Folder = categoryID; |
4149 | 4149 | ||
@@ -4194,7 +4194,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4194 | if (!okToSell) | 4194 | if (!okToSell) |
4195 | { | 4195 | { |
4196 | m_dialogModule.SendAlertToUser( | 4196 | m_dialogModule.SendAlertToUser( |
4197 | remoteClient, "This item's inventory doesn't appear to be for sale"); | 4197 | remoteClient, "This item's inventory doesn't appear to be for sale"); |
4198 | return false; | 4198 | return false; |
4199 | } | 4199 | } |
4200 | 4200 | ||
@@ -4252,7 +4252,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4252 | 4252 | ||
4253 | // This routine is normally called from within a lock (OdeLock) from within the OdePhysicsScene | 4253 | // This routine is normally called from within a lock (OdeLock) from within the OdePhysicsScene |
4254 | // WARNING: be careful of deadlocks here if you manipulate the scene. Remember you are being called | 4254 | // WARNING: be careful of deadlocks here if you manipulate the scene. Remember you are being called |
4255 | // from within the OdePhysicsScene. | 4255 | // from within the OdePhysicsScene. |
4256 | 4256 | ||
4257 | protected internal void jointMoved(PhysicsJoint joint) | 4257 | protected internal void jointMoved(PhysicsJoint joint) |
4258 | { | 4258 | { |
@@ -4348,7 +4348,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
4348 | // FIXME: this causes a sequential lookup of all objects in the scene; use a dictionary | 4348 | // FIXME: this causes a sequential lookup of all objects in the scene; use a dictionary |
4349 | if (joint != null) | 4349 | if (joint != null) |
4350 | { | 4350 | { |
4351 | if (joint.ErrorMessageCount > PhysicsJoint.maxErrorMessages) | 4351 | if (joint.ErrorMessageCount > PhysicsJoint.maxErrorMessages) |
4352 | return; | 4352 | return; |
4353 | 4353 | ||
4354 | SceneObjectPart jointProxyObject = GetSceneObjectPart(joint.ObjectNameInScene); | 4354 | SceneObjectPart jointProxyObject = GetSceneObjectPart(joint.ObjectNameInScene); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 3e7ffab..734b3ef 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -37,8 +37,8 @@ using OpenSim.Framework; | |||
37 | using OpenSim.Framework.Console; | 37 | using OpenSim.Framework.Console; |
38 | using OpenSim.Region.Environment.Interfaces; | 38 | using OpenSim.Region.Environment.Interfaces; |
39 | using OpenSim.Region.Environment.Scenes; | 39 | using OpenSim.Region.Environment.Scenes; |
40 | using OpenSim.Region.ScriptEngine.Shared; | 40 | using OpenSim.Region.ScriptEngine.Shared; |
41 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; | 41 | using OpenSim.Region.ScriptEngine.Shared.Api.Plugins; |
42 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; | 42 | using OpenSim.Region.ScriptEngine.Shared.ScriptBase; |
43 | using OpenSim.Region.ScriptEngine.Interfaces; | 43 | using OpenSim.Region.ScriptEngine.Interfaces; |
44 | using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; | 44 | using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; |
@@ -117,7 +117,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
117 | m_host = host; | 117 | m_host = host; |
118 | m_localID = localID; | 118 | m_localID = localID; |
119 | m_itemID = itemID; | 119 | m_itemID = itemID; |
120 | 120 | ||
121 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) | 121 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) |
122 | m_OSFunctionsEnabled = true; | 122 | m_OSFunctionsEnabled = true; |
123 | 123 | ||
@@ -328,9 +328,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
328 | CheckThreatLevel(ThreatLevel.VeryHigh, "osRegionNotice"); | 328 | CheckThreatLevel(ThreatLevel.VeryHigh, "osRegionNotice"); |
329 | 329 | ||
330 | m_host.AddScriptLPS(1); | 330 | m_host.AddScriptLPS(1); |
331 | 331 | ||
332 | IDialogModule dm = World.RequestModuleInterface<IDialogModule>(); | 332 | IDialogModule dm = World.RequestModuleInterface<IDialogModule>(); |
333 | 333 | ||
334 | if (dm != null) | 334 | if (dm != null) |
335 | dm.SendGeneralAlert(msg); | 335 | dm.SendGeneralAlert(msg); |
336 | } | 336 | } |
@@ -776,7 +776,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
776 | return String.Empty; | 776 | return String.Empty; |
777 | } | 777 | } |
778 | } | 778 | } |
779 | 779 | ||
780 | public string osGetSimulatorVersion() | 780 | public string osGetSimulatorVersion() |
781 | { | 781 | { |
782 | // High because it can be used to target attacks to known weaknesses | 782 | // High because it can be used to target attacks to known weaknesses |
@@ -802,37 +802,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
802 | 802 | ||
803 | World.ParcelMediaSetTime((float)time); | 803 | World.ParcelMediaSetTime((float)time); |
804 | } | 804 | } |
805 | 805 | ||
806 | public Hashtable osParseJSON(string JSON) | 806 | public Hashtable osParseJSON(string JSON) |
807 | { | 807 | { |
808 | CheckThreatLevel(ThreatLevel.None, "osParseJSON"); | 808 | CheckThreatLevel(ThreatLevel.None, "osParseJSON"); |
809 | 809 | ||
810 | m_host.AddScriptLPS(1); | 810 | m_host.AddScriptLPS(1); |
811 | 811 | ||
812 | // see http://www.json.org/ for more details on JSON | 812 | // see http://www.json.org/ for more details on JSON |
813 | 813 | ||
814 | string currentKey=null; | 814 | string currentKey=null; |
815 | Stack objectStack = new Stack(); // objects in JSON can be nested so we need to keep a track of this | 815 | Stack objectStack = new Stack(); // objects in JSON can be nested so we need to keep a track of this |
816 | Hashtable jsondata = new Hashtable(); // the hashtable to be returned | 816 | Hashtable jsondata = new Hashtable(); // the hashtable to be returned |
817 | int i=0; | 817 | int i=0; |
818 | try | 818 | try |
819 | { | 819 | { |
820 | 820 | ||
821 | // iterate through the serialised stream of tokens and store at the right depth in the hashtable | 821 | // iterate through the serialised stream of tokens and store at the right depth in the hashtable |
822 | // the top level hashtable may contain more nested hashtables within it each containing an objects representation | 822 | // the top level hashtable may contain more nested hashtables within it each containing an objects representation |
823 | for (i=0;i<JSON.Length; i++) | 823 | for (i=0;i<JSON.Length; i++) |
824 | { | 824 | { |
825 | 825 | ||
826 | // Console.WriteLine(""+JSON[i]); | 826 | // Console.WriteLine(""+JSON[i]); |
827 | switch (JSON[i]) | 827 | switch (JSON[i]) |
828 | { | 828 | { |
829 | case '{': | 829 | case '{': |
830 | // create hashtable and add it to the stack or array if we are populating one, we can have a lot of nested objects in JSON | 830 | // create hashtable and add it to the stack or array if we are populating one, we can have a lot of nested objects in JSON |
831 | 831 | ||
832 | Hashtable currentObject = new Hashtable(); | 832 | Hashtable currentObject = new Hashtable(); |
833 | if (objectStack.Count==0) // the stack should only be empty for the first outer object | 833 | if (objectStack.Count==0) // the stack should only be empty for the first outer object |
834 | { | 834 | { |
835 | 835 | ||
836 | objectStack.Push(jsondata); | 836 | objectStack.Push(jsondata); |
837 | } | 837 | } |
838 | else if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 838 | else if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
@@ -842,12 +842,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
842 | objectStack.Push(currentObject); | 842 | objectStack.Push(currentObject); |
843 | } | 843 | } |
844 | else | 844 | else |
845 | { | 845 | { |
846 | // add it to the parent hashtable | 846 | // add it to the parent hashtable |
847 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentObject); | 847 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentObject); |
848 | objectStack.Push(currentObject); | 848 | objectStack.Push(currentObject); |
849 | } | 849 | } |
850 | 850 | ||
851 | // clear the key | 851 | // clear the key |
852 | currentKey=null; | 852 | currentKey=null; |
853 | break; | 853 | break; |
@@ -856,25 +856,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
856 | objectStack.Pop(); | 856 | objectStack.Pop(); |
857 | break; | 857 | break; |
858 | case '"':// string boundary | 858 | case '"':// string boundary |
859 | 859 | ||
860 | string tokenValue=""; | 860 | string tokenValue=""; |
861 | i++; // move to next char | 861 | i++; // move to next char |
862 | 862 | ||
863 | // just loop through until the next quote mark storing the string, ignore quotes with pre-ceding \ | 863 | // just loop through until the next quote mark storing the string, ignore quotes with pre-ceding \ |
864 | while (JSON[i]!='"') | 864 | while (JSON[i]!='"') |
865 | { | 865 | { |
866 | tokenValue+=JSON[i]; | 866 | tokenValue+=JSON[i]; |
867 | 867 | ||
868 | // handle escaped double quotes \" | 868 | // handle escaped double quotes \" |
869 | if (JSON[i]=='\\' && JSON[i+1]=='"') | 869 | if (JSON[i]=='\\' && JSON[i+1]=='"') |
870 | { | 870 | { |
871 | tokenValue+=JSON[i+1]; | 871 | tokenValue+=JSON[i+1]; |
872 | i++; | 872 | i++; |
873 | } | 873 | } |
874 | i++; | 874 | i++; |
875 | 875 | ||
876 | } | 876 | } |
877 | 877 | ||
878 | // ok we've got a string, if we've got an array on the top of the stack then we store it | 878 | // ok we've got a string, if we've got an array on the top of the stack then we store it |
879 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 879 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
880 | { | 880 | { |
@@ -884,14 +884,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
884 | { | 884 | { |
885 | currentKey = tokenValue; | 885 | currentKey = tokenValue; |
886 | } | 886 | } |
887 | else | 887 | else |
888 | { | 888 | { |
889 | // we have a key so lets store this value | 889 | // we have a key so lets store this value |
890 | ((Hashtable)objectStack.Peek()).Add(currentKey,tokenValue); | 890 | ((Hashtable)objectStack.Peek()).Add(currentKey,tokenValue); |
891 | // now lets clear the key, we're done with it and moving on | 891 | // now lets clear the key, we're done with it and moving on |
892 | currentKey=null; | 892 | currentKey=null; |
893 | } | 893 | } |
894 | 894 | ||
895 | break; | 895 | break; |
896 | case ':':// key : value separator | 896 | case ':':// key : value separator |
897 | // just ignore | 897 | // just ignore |
@@ -900,20 +900,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
900 | // just ignore | 900 | // just ignore |
901 | break; | 901 | break; |
902 | case '[': // array start | 902 | case '[': // array start |
903 | ArrayList currentArray = new ArrayList(); | 903 | ArrayList currentArray = new ArrayList(); |
904 | 904 | ||
905 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 905 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
906 | { | 906 | { |
907 | ((ArrayList)objectStack.Peek()).Add(currentArray); | 907 | ((ArrayList)objectStack.Peek()).Add(currentArray); |
908 | } | 908 | } |
909 | else | 909 | else |
910 | { | 910 | { |
911 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentArray); | 911 | ((Hashtable)objectStack.Peek()).Add(currentKey,currentArray); |
912 | // clear the key | 912 | // clear the key |
913 | currentKey=null; | 913 | currentKey=null; |
914 | } | 914 | } |
915 | objectStack.Push(currentArray); | 915 | objectStack.Push(currentArray); |
916 | 916 | ||
917 | break; | 917 | break; |
918 | case ',':// seperator | 918 | case ',':// seperator |
919 | // just ignore | 919 | // just ignore |
@@ -923,24 +923,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
923 | objectStack.Pop(); | 923 | objectStack.Pop(); |
924 | break; | 924 | break; |
925 | case 't': // we've found a character start not in quotes, it must be a boolean true | 925 | case 't': // we've found a character start not in quotes, it must be a boolean true |
926 | 926 | ||
927 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 927 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
928 | { | 928 | { |
929 | ((ArrayList)objectStack.Peek()).Add(true); | 929 | ((ArrayList)objectStack.Peek()).Add(true); |
930 | } | 930 | } |
931 | else | 931 | else |
932 | { | 932 | { |
933 | ((Hashtable)objectStack.Peek()).Add(currentKey,true); | 933 | ((Hashtable)objectStack.Peek()).Add(currentKey,true); |
934 | currentKey=null; | 934 | currentKey=null; |
935 | } | 935 | } |
936 | 936 | ||
937 | //advance the counter to the letter 'e' | 937 | //advance the counter to the letter 'e' |
938 | i = i+3; | 938 | i = i+3; |
939 | break; | 939 | break; |
940 | case 'f': // we've found a character start not in quotes, it must be a boolean false | 940 | case 'f': // we've found a character start not in quotes, it must be a boolean false |
941 | 941 | ||
942 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 942 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
943 | { | 943 | { |
944 | ((ArrayList)objectStack.Peek()).Add(false); | 944 | ((ArrayList)objectStack.Peek()).Add(false); |
945 | } | 945 | } |
946 | else | 946 | else |
@@ -960,53 +960,53 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
960 | default: | 960 | default: |
961 | // ok here we're catching all numeric types int,double,long we might want to spit these up mr accurately | 961 | // ok here we're catching all numeric types int,double,long we might want to spit these up mr accurately |
962 | // but for now we'll just do them as strings | 962 | // but for now we'll just do them as strings |
963 | 963 | ||
964 | string numberValue=""; | 964 | string numberValue=""; |
965 | 965 | ||
966 | // just loop through until the next known marker quote mark storing the string | 966 | // just loop through until the next known marker quote mark storing the string |
967 | while (JSON[i] != '"' && JSON[i] != ',' && JSON[i] != ']' && JSON[i] != '}' && JSON[i] != ' ') | 967 | while (JSON[i] != '"' && JSON[i] != ',' && JSON[i] != ']' && JSON[i] != '}' && JSON[i] != ' ') |
968 | { | 968 | { |
969 | numberValue+=""+JSON[i++]; | 969 | numberValue+=""+JSON[i++]; |
970 | } | 970 | } |
971 | 971 | ||
972 | i--; // we want to process this caracter that marked the end of this string in the main loop | 972 | i--; // we want to process this caracter that marked the end of this string in the main loop |
973 | 973 | ||
974 | // ok we've got a string, if we've got an array on the top of the stack then we store it | 974 | // ok we've got a string, if we've got an array on the top of the stack then we store it |
975 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") | 975 | if (objectStack.Peek().ToString()=="System.Collections.ArrayList") |
976 | { | 976 | { |
977 | ((ArrayList)objectStack.Peek()).Add(numberValue); | 977 | ((ArrayList)objectStack.Peek()).Add(numberValue); |
978 | } | 978 | } |
979 | else | 979 | else |
980 | { | 980 | { |
981 | // we have a key so lets store this value | 981 | // we have a key so lets store this value |
982 | ((Hashtable)objectStack.Peek()).Add(currentKey,numberValue); | 982 | ((Hashtable)objectStack.Peek()).Add(currentKey,numberValue); |
983 | // now lets clear the key, we're done with it and moving on | 983 | // now lets clear the key, we're done with it and moving on |
984 | currentKey=null; | 984 | currentKey=null; |
985 | } | 985 | } |
986 | 986 | ||
987 | break; | 987 | break; |
988 | } | 988 | } |
989 | } | 989 | } |
990 | } | 990 | } |
991 | catch(Exception) | 991 | catch(Exception) |
992 | { | 992 | { |
993 | OSSLError("osParseJSON: The JSON string is not valid " + JSON) ; | 993 | OSSLError("osParseJSON: The JSON string is not valid " + JSON) ; |
994 | } | 994 | } |
995 | 995 | ||
996 | return jsondata; | 996 | return jsondata; |
997 | } | 997 | } |
998 | 998 | ||
999 | // send a message to to object identified by the given UUID, a script in the object must implement the dataserver function | 999 | // send a message to to object identified by the given UUID, a script in the object must implement the dataserver function |
1000 | // the dataserver function is passed the ID of the calling function and a string message | 1000 | // the dataserver function is passed the ID of the calling function and a string message |
1001 | public void osMessageObject(LSL_Key objectUUID, string message) | 1001 | public void osMessageObject(LSL_Key objectUUID, string message) |
1002 | { | 1002 | { |
1003 | CheckThreatLevel(ThreatLevel.Low, "osMessageObject"); | 1003 | CheckThreatLevel(ThreatLevel.Low, "osMessageObject"); |
1004 | m_host.AddScriptLPS(1); | 1004 | m_host.AddScriptLPS(1); |
1005 | 1005 | ||
1006 | object[] resobj = new object[] { new LSL_Types.LSLString(m_host.UUID.ToString()), new LSL_Types.LSLString(message) }; | 1006 | object[] resobj = new object[] { new LSL_Types.LSLString(m_host.UUID.ToString()), new LSL_Types.LSLString(message) }; |
1007 | 1007 | ||
1008 | SceneObjectPart sceneOP = World.GetSceneObjectPart(new UUID(objectUUID)); | 1008 | SceneObjectPart sceneOP = World.GetSceneObjectPart(new UUID(objectUUID)); |
1009 | 1009 | ||
1010 | m_ScriptEngine.PostObjectEvent( | 1010 | m_ScriptEngine.PostObjectEvent( |
1011 | sceneOP.LocalId, new EventParams( | 1011 | sceneOP.LocalId, new EventParams( |
1012 | "dataserver", resobj, new DetectParams[0])); | 1012 | "dataserver", resobj, new DetectParams[0])); |
@@ -1024,10 +1024,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1024 | 1024 | ||
1025 | // Create new asset | 1025 | // Create new asset |
1026 | AssetBase asset = new AssetBase(); | 1026 | AssetBase asset = new AssetBase(); |
1027 | asset.Name = notecardName; | 1027 | asset.Metadata.Name = notecardName; |
1028 | asset.Description = "Script Generated Notecard"; | 1028 | asset.Metadata.Description = "Script Generated Notecard"; |
1029 | asset.Type = 7; | 1029 | asset.Metadata.Type = 7; |
1030 | asset.FullID = UUID.Random(); | 1030 | asset.Metadata.FullID = UUID.Random(); |
1031 | string notecardData = ""; | 1031 | string notecardData = ""; |
1032 | 1032 | ||
1033 | for (int i = 0; i < contents.Length; i++) { | 1033 | for (int i = 0; i < contents.Length; i++) { |
@@ -1035,7 +1035,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1035 | } | 1035 | } |
1036 | 1036 | ||
1037 | int textLength = notecardData.Length; | 1037 | int textLength = notecardData.Length; |
1038 | notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " | 1038 | notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " |
1039 | + textLength.ToString() + "\n" + notecardData + "}\n"; | 1039 | + textLength.ToString() + "\n" + notecardData + "}\n"; |
1040 | 1040 | ||
1041 | asset.Data = Encoding.ASCII.GetBytes(notecardData); | 1041 | asset.Data = Encoding.ASCII.GetBytes(notecardData); |
@@ -1047,8 +1047,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1047 | taskItem.ResetIDs(m_host.UUID); | 1047 | taskItem.ResetIDs(m_host.UUID); |
1048 | taskItem.ParentID = m_host.UUID; | 1048 | taskItem.ParentID = m_host.UUID; |
1049 | taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); | 1049 | taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); |
1050 | taskItem.Name = asset.Name; | 1050 | taskItem.Name = asset.Metadata.Name; |
1051 | taskItem.Description = asset.Description; | 1051 | taskItem.Description = asset.Metadata.Description; |
1052 | taskItem.Type = 7; | 1052 | taskItem.Type = 7; |
1053 | taskItem.InvType = 7; | 1053 | taskItem.InvType = 7; |
1054 | taskItem.OwnerID = m_host.OwnerID; | 1054 | taskItem.OwnerID = m_host.OwnerID; |
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1062 | taskItem.Flags = 0; | 1062 | taskItem.Flags = 0; |
1063 | taskItem.PermsGranter = UUID.Zero; | 1063 | taskItem.PermsGranter = UUID.Zero; |
1064 | taskItem.PermsMask = 0; | 1064 | taskItem.PermsMask = 0; |
1065 | taskItem.AssetID = asset.FullID; | 1065 | taskItem.AssetID = asset.Metadata.FullID; |
1066 | 1066 | ||
1067 | m_host.Inventory.AddInventoryItem(taskItem, false); | 1067 | m_host.Inventory.AddInventoryItem(taskItem, false); |
1068 | } | 1068 | } |