diff options
author | Melanie | 2013-10-04 20:03:12 +0100 |
---|---|---|
committer | Melanie | 2013-10-04 20:03:12 +0100 |
commit | 75c68fa29e3a2fed81c883e7925bf161e968639f (patch) | |
tree | 13ba69e6818f634018a5954d38750cf48128b7f8 /OpenSim/Region/CoreModules | |
parent | Merge branch 'avination-current' into careminster (diff) | |
parent | minor: Disable logging left active on regression test TestSameSimulatorIsolat... (diff) | |
download | opensim-SC_OLD-75c68fa29e3a2fed81c883e7925bf161e968639f.zip opensim-SC_OLD-75c68fa29e3a2fed81c883e7925bf161e968639f.tar.gz opensim-SC_OLD-75c68fa29e3a2fed81c883e7925bf161e968639f.tar.bz2 opensim-SC_OLD-75c68fa29e3a2fed81c883e7925bf161e968639f.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Data/MySQL/MySQLSimulationData.cs
OpenSim/Data/MySQL/Resources/RegionStore.migrations
OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
OpenSim/Region/CoreModules/World/LightShare/LightShareModule.cs
OpenSim/Region/Framework/Scenes/Scene.cs
OpenSim/Region/Framework/Scenes/ScenePresence.cs
OpenSim/Region/Framework/Scenes/Tests/ScenePresenceCapabilityTests.cs
OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
Diffstat (limited to 'OpenSim/Region/CoreModules')
12 files changed, 129 insertions, 36 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 95cc6b7..81a7278 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -482,13 +482,28 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
482 | attachPos = Vector3.Zero; | 482 | attachPos = Vector3.Zero; |
483 | } | 483 | } |
484 | 484 | ||
485 | // AttachmentPt 0 (default) means the client chose to 'wear' the attachment. | 485 | // if the attachment point is the same as previous, make sure we get the saved |
486 | // position info. | ||
487 | if (attachmentPt != 0 && attachmentPt == group.RootPart.Shape.LastAttachPoint) | ||
488 | { | ||
489 | attachPos = group.RootPart.AttachedPos; | ||
490 | } | ||
491 | |||
492 | // AttachmentPt 0 means the client chose to 'wear' the attachment. | ||
486 | if (attachmentPt == (uint)AttachmentPoint.Default) | 493 | if (attachmentPt == (uint)AttachmentPoint.Default) |
487 | { | 494 | { |
488 | // Check object for stored attachment point | 495 | // Check object for stored attachment point |
489 | attachmentPt = group.AttachmentPoint; | 496 | attachmentPt = group.AttachmentPoint; |
490 | } | 497 | } |
491 | 498 | ||
499 | // if we didn't find an attach point, look for where it was last attached | ||
500 | if (attachmentPt == 0) | ||
501 | { | ||
502 | attachmentPt = (uint)group.RootPart.Shape.LastAttachPoint; | ||
503 | attachPos = group.RootPart.AttachedPos; | ||
504 | group.HasGroupChanged = true; | ||
505 | } | ||
506 | |||
492 | // if we still didn't find a suitable attachment point....... | 507 | // if we still didn't find a suitable attachment point....... |
493 | if (attachmentPt == 0) | 508 | if (attachmentPt == 0) |
494 | { | 509 | { |
@@ -684,6 +699,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
684 | so.ClearPartAttachmentData(); | 699 | so.ClearPartAttachmentData(); |
685 | rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false); | 700 | rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false); |
686 | so.HasGroupChanged = true; | 701 | so.HasGroupChanged = true; |
702 | so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint; | ||
687 | rootPart.Rezzed = DateTime.Now; | 703 | rootPart.Rezzed = DateTime.Now; |
688 | rootPart.RemFlag(PrimFlags.TemporaryOnRez); | 704 | rootPart.RemFlag(PrimFlags.TemporaryOnRez); |
689 | so.AttachToBackup(); | 705 | so.AttachToBackup(); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs index 62acd78..f023e77 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs | |||
@@ -719,7 +719,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments.Tests | |||
719 | SceneObjectGroup rezzedAtt = presence.GetAttachments()[0]; | 719 | SceneObjectGroup rezzedAtt = presence.GetAttachments()[0]; |
720 | 720 | ||
721 | m_numberOfAttachEventsFired = 0; | 721 | m_numberOfAttachEventsFired = 0; |
722 | scene.IncomingCloseAgent(presence.UUID, false); | 722 | scene.CloseAgent(presence.UUID, false); |
723 | 723 | ||
724 | // Check that we can't retrieve this attachment from the scene. | 724 | // Check that we can't retrieve this attachment from the scene. |
725 | Assert.That(scene.GetSceneObjectGroup(rezzedAtt.UUID), Is.Null); | 725 | Assert.That(scene.GetSceneObjectGroup(rezzedAtt.UUID), Is.Null); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs index 6b14fa6..adb838c 100644 --- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs | |||
@@ -276,7 +276,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
276 | if (sp.IsChildAgent) | 276 | if (sp.IsChildAgent) |
277 | return; | 277 | return; |
278 | sp.ControllingClient.Kick(reason); | 278 | sp.ControllingClient.Kick(reason); |
279 | sp.Scene.IncomingCloseAgent(sp.UUID, true); | 279 | sp.Scene.CloseAgent(sp.UUID, true); |
280 | } | 280 | } |
281 | 281 | ||
282 | private void OnIncomingInstantMessage(GridInstantMessage msg) | 282 | private void OnIncomingInstantMessage(GridInstantMessage msg) |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index e285f21..03aaaac 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -149,8 +149,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
149 | private void OnInstantMessage(IClientAPI client, GridInstantMessage im) | 149 | private void OnInstantMessage(IClientAPI client, GridInstantMessage im) |
150 | { | 150 | { |
151 | // m_log.DebugFormat( | 151 | // m_log.DebugFormat( |
152 | // "[INVENTORY TRANSFER]: {0} IM type received from {1}", | 152 | // "[INVENTORY TRANSFER]: {0} IM type received from client {1}. From={2} ({3}), To={4}", |
153 | // (InstantMessageDialog)im.dialog, client.Name); | 153 | // (InstantMessageDialog)im.dialog, client.Name, |
154 | // im.fromAgentID, im.fromAgentName, im.toAgentID); | ||
154 | 155 | ||
155 | Scene scene = FindClientScene(client.AgentId); | 156 | Scene scene = FindClientScene(client.AgentId); |
156 | 157 | ||
@@ -467,9 +468,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
467 | /// <summary> | 468 | /// <summary> |
468 | /// | 469 | /// |
469 | /// </summary> | 470 | /// </summary> |
470 | /// <param name="msg"></param> | 471 | /// <param name="im"></param> |
471 | private void OnGridInstantMessage(GridInstantMessage im) | 472 | private void OnGridInstantMessage(GridInstantMessage im) |
472 | { | 473 | { |
474 | // Check if it's a type of message that we should handle | ||
475 | if (!((im.dialog == (byte) InstantMessageDialog.InventoryOffered) | ||
476 | || (im.dialog == (byte) InstantMessageDialog.InventoryAccepted) | ||
477 | || (im.dialog == (byte) InstantMessageDialog.InventoryDeclined) | ||
478 | || (im.dialog == (byte) InstantMessageDialog.TaskInventoryDeclined))) | ||
479 | return; | ||
480 | |||
481 | m_log.DebugFormat( | ||
482 | "[INVENTORY TRANSFER]: {0} IM type received from grid. From={1} ({2}), To={3}", | ||
483 | (InstantMessageDialog)im.dialog, im.fromAgentID, im.fromAgentName, im.toAgentID); | ||
484 | |||
473 | // Check if this is ours to handle | 485 | // Check if this is ours to handle |
474 | // | 486 | // |
475 | Scene scene = FindClientScene(new UUID(im.toAgentID)); | 487 | Scene scene = FindClientScene(new UUID(im.toAgentID)); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs b/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs index 0c64f19..c517a30 100644 --- a/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Lure/LureModule.cs | |||
@@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Lure | |||
165 | (uint)presence.AbsolutePosition.Y, | 165 | (uint)presence.AbsolutePosition.Y, |
166 | (uint)presence.AbsolutePosition.Z + 2); | 166 | (uint)presence.AbsolutePosition.Z + 2); |
167 | 167 | ||
168 | m_log.DebugFormat("TP invite with message {0}, type {1}", message, lureType); | 168 | m_log.DebugFormat("[LURE MODULE]: TP invite with message {0}, type {1}", message, lureType); |
169 | 169 | ||
170 | GridInstantMessage m; | 170 | GridInstantMessage m; |
171 | 171 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index ed14c12..ef5239a 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -56,6 +56,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
56 | public const int DefaultMaxTransferDistance = 4095; | 56 | public const int DefaultMaxTransferDistance = 4095; |
57 | public const bool WaitForAgentArrivedAtDestinationDefault = true; | 57 | public const bool WaitForAgentArrivedAtDestinationDefault = true; |
58 | 58 | ||
59 | public string OutgoingTransferVersionName { get; set; } | ||
60 | |||
61 | /// <summary> | ||
62 | /// Determine the maximum entity transfer version we will use for teleports. | ||
63 | /// </summary> | ||
64 | public float MaxOutgoingTransferVersion { get; set; } | ||
65 | |||
59 | /// <summary> | 66 | /// <summary> |
60 | /// The maximum distance, in standard region units (256m) that an agent is allowed to transfer. | 67 | /// The maximum distance, in standard region units (256m) that an agent is allowed to transfer. |
61 | /// </summary> | 68 | /// </summary> |
@@ -151,9 +158,39 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
151 | /// <param name="source"></param> | 158 | /// <param name="source"></param> |
152 | protected virtual void InitialiseCommon(IConfigSource source) | 159 | protected virtual void InitialiseCommon(IConfigSource source) |
153 | { | 160 | { |
161 | string transferVersionName = "SIMULATION"; | ||
162 | float maxTransferVersion = 0.2f; | ||
163 | |||
154 | IConfig transferConfig = source.Configs["EntityTransfer"]; | 164 | IConfig transferConfig = source.Configs["EntityTransfer"]; |
155 | if (transferConfig != null) | 165 | if (transferConfig != null) |
156 | { | 166 | { |
167 | string rawVersion | ||
168 | = transferConfig.GetString( | ||
169 | "MaxOutgoingTransferVersion", | ||
170 | string.Format("{0}/{1}", transferVersionName, maxTransferVersion)); | ||
171 | |||
172 | string[] rawVersionComponents = rawVersion.Split(new char[] { '/' }); | ||
173 | |||
174 | bool versionValid = false; | ||
175 | |||
176 | if (rawVersionComponents.Length >= 2) | ||
177 | versionValid = float.TryParse(rawVersionComponents[1], out maxTransferVersion); | ||
178 | |||
179 | if (!versionValid) | ||
180 | { | ||
181 | m_log.ErrorFormat( | ||
182 | "[ENTITY TRANSFER MODULE]: MaxOutgoingTransferVersion {0} is invalid, using {1}", | ||
183 | rawVersion, string.Format("{0}/{1}", transferVersionName, maxTransferVersion)); | ||
184 | } | ||
185 | else | ||
186 | { | ||
187 | transferVersionName = rawVersionComponents[0]; | ||
188 | |||
189 | m_log.InfoFormat( | ||
190 | "[ENTITY TRANSFER MODULE]: MaxOutgoingTransferVersion set to {0}", | ||
191 | string.Format("{0}/{1}", transferVersionName, maxTransferVersion)); | ||
192 | } | ||
193 | |||
157 | DisableInterRegionTeleportCancellation | 194 | DisableInterRegionTeleportCancellation |
158 | = transferConfig.GetBoolean("DisableInterRegionTeleportCancellation", false); | 195 | = transferConfig.GetBoolean("DisableInterRegionTeleportCancellation", false); |
159 | 196 | ||
@@ -167,6 +204,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
167 | MaxTransferDistance = DefaultMaxTransferDistance; | 204 | MaxTransferDistance = DefaultMaxTransferDistance; |
168 | } | 205 | } |
169 | 206 | ||
207 | OutgoingTransferVersionName = transferVersionName; | ||
208 | MaxOutgoingTransferVersion = maxTransferVersion; | ||
209 | |||
170 | m_entityTransferStateMachine = new EntityTransferStateMachine(this); | 210 | m_entityTransferStateMachine = new EntityTransferStateMachine(this); |
171 | 211 | ||
172 | m_Enabled = true; | 212 | m_Enabled = true; |
@@ -522,6 +562,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
522 | /// </returns> | 562 | /// </returns> |
523 | private bool IsWithinMaxTeleportDistance(RegionInfo sourceRegion, GridRegion destRegion) | 563 | private bool IsWithinMaxTeleportDistance(RegionInfo sourceRegion, GridRegion destRegion) |
524 | { | 564 | { |
565 | if(MaxTransferDistance == 0) | ||
566 | return true; | ||
567 | |||
525 | // m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Source co-ords are x={0} y={1}", curRegionX, curRegionY); | 568 | // m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Source co-ords are x={0} y={1}", curRegionX, curRegionY); |
526 | // | 569 | // |
527 | // m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final dest is x={0} y={1} {2}@{3}", | 570 | // m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final dest is x={0} y={1} {2}@{3}", |
@@ -623,7 +666,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
623 | if (!sp.ValidateAttachments()) | 666 | if (!sp.ValidateAttachments()) |
624 | m_log.DebugFormat( | 667 | m_log.DebugFormat( |
625 | "[ENTITY TRANSFER MODULE]: Failed validation of all attachments for teleport of {0} from {1} to {2}. Continuing.", | 668 | "[ENTITY TRANSFER MODULE]: Failed validation of all attachments for teleport of {0} from {1} to {2}. Continuing.", |
626 | sp.Name, sp.Scene.RegionInfo.RegionName, finalDestination.RegionName); | 669 | sp.Name, sp.Scene.Name, finalDestination.RegionName); |
627 | 670 | ||
628 | string reason; | 671 | string reason; |
629 | string version; | 672 | string version; |
@@ -634,7 +677,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
634 | 677 | ||
635 | m_log.DebugFormat( | 678 | m_log.DebugFormat( |
636 | "[ENTITY TRANSFER MODULE]: {0} was stopped from teleporting from {1} to {2} because {3}", | 679 | "[ENTITY TRANSFER MODULE]: {0} was stopped from teleporting from {1} to {2} because {3}", |
637 | sp.Name, sp.Scene.RegionInfo.RegionName, finalDestination.RegionName, reason); | 680 | sp.Name, sp.Scene.Name, finalDestination.RegionName, reason); |
638 | 681 | ||
639 | return; | 682 | return; |
640 | } | 683 | } |
@@ -644,7 +687,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
644 | // as server attempts. | 687 | // as server attempts. |
645 | m_interRegionTeleportAttempts.Value++; | 688 | m_interRegionTeleportAttempts.Value++; |
646 | 689 | ||
647 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Destination is running version {0}", version); | 690 | m_log.DebugFormat( |
691 | "[ENTITY TRANSFER MODULE]: {0} max transfer version is {1}/{2}, {3} max version is {4}", | ||
692 | sp.Scene.Name, OutgoingTransferVersionName, MaxOutgoingTransferVersion, finalDestination.RegionName, version); | ||
648 | 693 | ||
649 | // Fixing a bug where teleporting while sitting results in the avatar ending up removed from | 694 | // Fixing a bug where teleporting while sitting results in the avatar ending up removed from |
650 | // both regions | 695 | // both regions |
@@ -691,7 +736,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
691 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); | 736 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); |
692 | } | 737 | } |
693 | 738 | ||
694 | if (version.Equals("SIMULATION/0.2")) | 739 | // We're going to fallback to V1 if the destination gives us anything smaller than 0.2 or we're forcing |
740 | // use of the earlier protocol | ||
741 | float versionNumber = 0.1f; | ||
742 | string[] versionComponents = version.Split(new char[] { '/' }); | ||
743 | if (versionComponents.Length >= 2) | ||
744 | float.TryParse(versionComponents[1], out versionNumber); | ||
745 | |||
746 | if (versionNumber == 0.2f && MaxOutgoingTransferVersion >= versionNumber) | ||
695 | TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); | 747 | TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); |
696 | else | 748 | else |
697 | TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); | 749 | TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); |
@@ -925,7 +977,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
925 | 977 | ||
926 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 978 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
927 | { | 979 | { |
928 | if (!sp.Scene.IncomingPreCloseAgent(sp)) | 980 | if (!sp.Scene.IncomingPreCloseClient(sp)) |
929 | return; | 981 | return; |
930 | 982 | ||
931 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before | 983 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before |
@@ -936,7 +988,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
936 | // an agent cannot teleport back to this region if it has teleported away. | 988 | // an agent cannot teleport back to this region if it has teleported away. |
937 | Thread.Sleep(2000); | 989 | Thread.Sleep(2000); |
938 | 990 | ||
939 | sp.Scene.IncomingCloseAgent(sp.UUID, false); | 991 | sp.Scene.CloseAgent(sp.UUID, false); |
940 | } | 992 | } |
941 | else | 993 | else |
942 | { | 994 | { |
@@ -1090,7 +1142,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1090 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 1142 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
1091 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 1143 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
1092 | { | 1144 | { |
1093 | if (!sp.Scene.IncomingPreCloseAgent(sp)) | 1145 | if (!sp.Scene.IncomingPreCloseClient(sp)) |
1094 | return; | 1146 | return; |
1095 | 1147 | ||
1096 | // RED ALERT!!!! | 1148 | // RED ALERT!!!! |
@@ -1107,7 +1159,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1107 | m_log.DebugFormat( | 1159 | m_log.DebugFormat( |
1108 | "[ENTITY TRANSFER MODULE]: Closing agent {0} in {1} after teleport", sp.Name, Scene.Name); | 1160 | "[ENTITY TRANSFER MODULE]: Closing agent {0} in {1} after teleport", sp.Name, Scene.Name); |
1109 | 1161 | ||
1110 | sp.Scene.IncomingCloseAgent(sp.UUID, false); | 1162 | sp.Scene.CloseAgent(sp.UUID, false); |
1111 | } | 1163 | } |
1112 | else | 1164 | else |
1113 | { | 1165 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 1cf1884..74b834a 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -181,7 +181,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
181 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI")) | 181 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI")) |
182 | { | 182 | { |
183 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); | 183 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); |
184 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachement {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); | 184 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachment {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); |
185 | Dictionary<UUID, AssetType> ids = new Dictionary<UUID, AssetType>(); | 185 | Dictionary<UUID, AssetType> ids = new Dictionary<UUID, AssetType>(); |
186 | HGUuidGatherer uuidGatherer = new HGUuidGatherer(Scene.AssetService, url); | 186 | HGUuidGatherer uuidGatherer = new HGUuidGatherer(Scene.AssetService, url); |
187 | uuidGatherer.GatherAssetUuids(so, ids); | 187 | uuidGatherer.GatherAssetUuids(so, ids); |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 89bb037..3feeb13 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -906,6 +906,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
906 | m_log.Debug("[INVENTORY ACCESS MODULE]: Object has UUID.Zero! Position 3"); | 906 | m_log.Debug("[INVENTORY ACCESS MODULE]: Object has UUID.Zero! Position 3"); |
907 | } | 907 | } |
908 | 908 | ||
909 | // if this was previously an attachment and is now being rezzed, | ||
910 | // save the old attachment info. | ||
911 | if (group.IsAttachment == false && group.RootPart.Shape.State != 0) | ||
912 | { | ||
913 | group.RootPart.AttachedPos = group.AbsolutePosition; | ||
914 | group.RootPart.Shape.LastAttachPoint = (byte)group.AttachmentPoint; | ||
915 | } | ||
916 | |||
909 | foreach (SceneObjectPart part in group.Parts) | 917 | foreach (SceneObjectPart part in group.Parts) |
910 | { | 918 | { |
911 | // Make the rezzer the owner, as this is not necessarily set correctly in the serialized asset. | 919 | // Make the rezzer the owner, as this is not necessarily set correctly in the serialized asset. |
diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs index 8c983e6..d3926cc 100644 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs | |||
@@ -178,17 +178,20 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
178 | m_ServiceThrottle.Enqueue("name", uuid.ToString(), delegate | 178 | m_ServiceThrottle.Enqueue("name", uuid.ToString(), delegate |
179 | { | 179 | { |
180 | //m_log.DebugFormat("[YYY]: Name request {0}", uuid); | 180 | //m_log.DebugFormat("[YYY]: Name request {0}", uuid); |
181 | bool foundRealName = TryGetUserNames(uuid, names); | ||
182 | |||
183 | if (names.Length == 2) | ||
184 | { | ||
185 | if (!foundRealName) | ||
186 | m_log.DebugFormat("[USER MANAGEMENT MODULE]: Sending {0} {1} for {2} to {3} since no bound name found", names[0], names[1], uuid, client.Name); | ||
187 | 181 | ||
182 | // As least upto September 2013, clients permanently cache UUID -> Name bindings. Some clients | ||
183 | // appear to clear this when the user asks it to clear the cache, but others may not. | ||
184 | // | ||
185 | // So to avoid clients | ||
186 | // (particularly Hypergrid clients) permanently binding "Unknown User" to a given UUID, we will | ||
187 | // instead drop the request entirely. | ||
188 | if (TryGetUserNames(uuid, names)) | ||
188 | client.SendNameReply(uuid, names[0], names[1]); | 189 | client.SendNameReply(uuid, names[0], names[1]); |
189 | } | 190 | // else |
191 | // m_log.DebugFormat( | ||
192 | // "[USER MANAGEMENT MODULE]: No bound name for {0} found, ignoring request from {1}", | ||
193 | // uuid, client.Name); | ||
190 | }); | 194 | }); |
191 | |||
192 | } | 195 | } |
193 | } | 196 | } |
194 | 197 | ||
@@ -391,7 +394,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
391 | } | 394 | } |
392 | 395 | ||
393 | names[0] = "Unknown"; | 396 | names[0] = "Unknown"; |
394 | names[1] = "UserUMMTGUN8"; | 397 | names[1] = "UserUMMTGUN9"; |
395 | 398 | ||
396 | return false; | 399 | return false; |
397 | } | 400 | } |
@@ -539,7 +542,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
539 | AddUser(uuid, homeURL + ";" + first + " " + last); | 542 | AddUser(uuid, homeURL + ";" + first + " " + last); |
540 | } | 543 | } |
541 | 544 | ||
542 | public void AddUser (UUID id, string creatorData) | 545 | public void AddUser(UUID id, string creatorData) |
543 | { | 546 | { |
544 | //m_log.DebugFormat("[USER MANAGEMENT MODULE]: Adding user with id {0}, creatorData {1}", id, creatorData); | 547 | //m_log.DebugFormat("[USER MANAGEMENT MODULE]: Adding user with id {0}, creatorData {1}", id, creatorData); |
545 | 548 | ||
@@ -599,6 +602,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
599 | user.LastName = "@unknown"; | 602 | user.LastName = "@unknown"; |
600 | } | 603 | } |
601 | } | 604 | } |
605 | |||
602 | if (parts.Length >= 2) | 606 | if (parts.Length >= 2) |
603 | user.FirstName = parts[1].Replace(' ', '.'); | 607 | user.FirstName = parts[1].Replace(' ', '.'); |
604 | } | 608 | } |
@@ -611,7 +615,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
611 | user.FirstName = "Unknown"; | 615 | user.FirstName = "Unknown"; |
612 | user.LastName = "UserUMMAU4"; | 616 | user.LastName = "UserUMMAU4"; |
613 | } | 617 | } |
614 | 618 | ||
615 | AddUserInternal(user); | 619 | AddUserInternal(user); |
616 | } | 620 | } |
617 | } | 621 | } |
@@ -639,6 +643,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement | |||
639 | 643 | ||
640 | protected void Init() | 644 | protected void Init() |
641 | { | 645 | { |
646 | AddUser(UUID.Zero, "Unknown", "User"); | ||
642 | RegisterConsoleCmds(); | 647 | RegisterConsoleCmds(); |
643 | } | 648 | } |
644 | 649 | ||
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs index f196973..8946b5c 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | |||
@@ -129,7 +129,7 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
129 | b.Access = 254; // means 'simulator is offline'. We need this because the viewer ignores 255's | 129 | b.Access = 254; // means 'simulator is offline'. We need this because the viewer ignores 255's |
130 | } | 130 | } |
131 | 131 | ||
132 | m_log.DebugFormat("[HG MAP]: Reseting {0} blocks", mapBlocks.Count); | 132 | m_log.DebugFormat("[HG MAP]: Resetting {0} blocks", mapBlocks.Count); |
133 | sp.ControllingClient.SendMapBlock(mapBlocks, 0); | 133 | sp.ControllingClient.SendMapBlock(mapBlocks, 0); |
134 | m_SeenMapBlocks.Remove(clientID); | 134 | m_SeenMapBlocks.Remove(clientID); |
135 | } | 135 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index a9aa73c..3be80eb 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
94 | throw new Exception(string.Format("Invalid ConnectorProtocolVersion {0}", ServiceVersion)); | 94 | throw new Exception(string.Format("Invalid ConnectorProtocolVersion {0}", ServiceVersion)); |
95 | 95 | ||
96 | m_log.InfoFormat( | 96 | m_log.InfoFormat( |
97 | "[LOCAL SIMULATION CONNECTOR]: Initialzied with connector protocol version {0}", ServiceVersion); | 97 | "[LOCAL SIMULATION CONNECTOR]: Initialized with connector protocol version {0}", ServiceVersion); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
@@ -235,7 +235,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
235 | // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", | 235 | // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", |
236 | // destination.RegionName, destination.RegionID); | 236 | // destination.RegionName, destination.RegionID); |
237 | 237 | ||
238 | return m_scenes[destination.RegionID].IncomingChildAgentDataUpdate(cAgentData); | 238 | return m_scenes[destination.RegionID].IncomingUpdateChildAgent(cAgentData); |
239 | } | 239 | } |
240 | 240 | ||
241 | // m_log.DebugFormat( | 241 | // m_log.DebugFormat( |
@@ -245,7 +245,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
245 | return false; | 245 | return false; |
246 | } | 246 | } |
247 | 247 | ||
248 | public bool UpdateAgent(GridRegion destination, AgentPosition cAgentData) | 248 | public bool UpdateAgent(GridRegion destination, AgentPosition agentPosition) |
249 | { | 249 | { |
250 | if (destination == null) | 250 | if (destination == null) |
251 | return false; | 251 | return false; |
@@ -257,7 +257,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
257 | foreach (Scene s in m_scenes.Values) | 257 | foreach (Scene s in m_scenes.Values) |
258 | { | 258 | { |
259 | // m_log.Debug("[LOCAL COMMS]: Found region to send ChildAgentUpdate"); | 259 | // m_log.Debug("[LOCAL COMMS]: Found region to send ChildAgentUpdate"); |
260 | s.IncomingChildAgentDataUpdate(cAgentData); | 260 | s.IncomingUpdateChildAgent(agentPosition); |
261 | } | 261 | } |
262 | 262 | ||
263 | //m_log.Debug("[LOCAL COMMS]: region not found for ChildAgentUpdate"); | 263 | //m_log.Debug("[LOCAL COMMS]: region not found for ChildAgentUpdate"); |
@@ -311,7 +311,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
311 | // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", | 311 | // "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", |
312 | // s.RegionInfo.RegionName, destination.RegionHandle); | 312 | // s.RegionInfo.RegionName, destination.RegionHandle); |
313 | 313 | ||
314 | m_scenes[destination.RegionID].IncomingCloseAgent(id, false, auth_token); | 314 | m_scenes[destination.RegionID].CloseAgent(id, false, auth_token); |
315 | return true; | 315 | return true; |
316 | } | 316 | } |
317 | //m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent"); | 317 | //m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent"); |
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 1808fdd..487aa09 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -572,7 +572,7 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
572 | if (!Scene.TeleportClientHome(user, s.ControllingClient)) | 572 | if (!Scene.TeleportClientHome(user, s.ControllingClient)) |
573 | { | 573 | { |
574 | s.ControllingClient.Kick("Your access to the region was revoked and TP home failed - you have been logged out."); | 574 | s.ControllingClient.Kick("Your access to the region was revoked and TP home failed - you have been logged out."); |
575 | Scene.IncomingCloseAgent(s.UUID, false); | 575 | Scene.CloseAgent(s.UUID, false); |
576 | } | 576 | } |
577 | } | 577 | } |
578 | } | 578 | } |
@@ -807,7 +807,7 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
807 | if (!Scene.TeleportClientHome(prey, s.ControllingClient)) | 807 | if (!Scene.TeleportClientHome(prey, s.ControllingClient)) |
808 | { | 808 | { |
809 | s.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); | 809 | s.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); |
810 | Scene.IncomingCloseAgent(s.UUID, false); | 810 | Scene.CloseAgent(s.UUID, false); |
811 | } | 811 | } |
812 | } | 812 | } |
813 | } | 813 | } |
@@ -830,7 +830,7 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
830 | if (!Scene.TeleportClientHome(p.UUID, p.ControllingClient)) | 830 | if (!Scene.TeleportClientHome(p.UUID, p.ControllingClient)) |
831 | { | 831 | { |
832 | p.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); | 832 | p.ControllingClient.Kick("You were teleported home by the region owner, but the TP failed - you have been logged out."); |
833 | Scene.IncomingCloseAgent(p.UUID, false); | 833 | Scene.CloseAgent(p.UUID, false); |
834 | } | 834 | } |
835 | } | 835 | } |
836 | } | 836 | } |