diff options
author | Melanie | 2010-12-04 14:41:57 +0100 |
---|---|---|
committer | Melanie | 2010-12-04 14:41:57 +0100 |
commit | 4b979362e9076344c9e96698f6cf8605945ffe61 (patch) | |
tree | 8297b3b89c8487b39a8bf573d68540e3c729025b /OpenSim/Region/ClientStack | |
parent | Monitor the UUIDs used to create and update wearable assets. Reject any changed (diff) | |
download | opensim-SC_OLD-4b979362e9076344c9e96698f6cf8605945ffe61.zip opensim-SC_OLD-4b979362e9076344c9e96698f6cf8605945ffe61.tar.gz opensim-SC_OLD-4b979362e9076344c9e96698f6cf8605945ffe61.tar.bz2 opensim-SC_OLD-4b979362e9076344c9e96698f6cf8605945ffe61.tar.xz |
Add some safeguards: DOn't send someone else's HUDs, don't send deleted prims
Removed some unneccessarily wordy core comments
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 9189260..478cfe6 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3604,24 +3604,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3604 | if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId)) | 3604 | if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId)) |
3605 | continue; | 3605 | continue; |
3606 | 3606 | ||
3607 | // Please do not remove this unless you can demonstrate on the OpenSim mailing list that a client | ||
3608 | // will never receive an update after a prim kill. Even then, keeping the kill record may be a good | ||
3609 | // safety measure. | ||
3610 | // | ||
3611 | // If a Linden Lab 1.23.5 client (and possibly later and earlier) receives an object update | ||
3612 | // after a kill, it will keep displaying the deleted object until relog. OpenSim currently performs | ||
3613 | // updates and kills on different threads with different scheduling strategies, hence this protection. | ||
3614 | // | ||
3615 | // This doesn't appear to apply to child prims - a client will happily ignore these updates | ||
3616 | // after the root prim has been deleted. | ||
3617 | if (m_killRecord.Contains(part.LocalId)) | 3607 | if (m_killRecord.Contains(part.LocalId)) |
3618 | { | ||
3619 | // m_log.WarnFormat( | ||
3620 | // "[CLIENT]: Preventing update for prim with local id {0} after client for user {1} told it was deleted", | ||
3621 | // part.LocalId, Name); | ||
3622 | continue; | 3608 | continue; |
3623 | } | ||
3624 | 3609 | ||
3610 | if (part.ParentGroup.IsDeleted) | ||
3611 | continue; | ||
3612 | |||
3613 | if (part.ParentGroup.IsAttachment) | ||
3614 | { // Someone else's HUD, why are we getting these? | ||
3615 | if (part.ParentGroup.OwnerID != AgentId && | ||
3616 | part.ParentGroup.RootPart.Shape.State >= 30) | ||
3617 | continue; | ||
3618 | } | ||
3619 | |||
3625 | if (part.ParentGroup.IsAttachment && m_disableFacelights) | 3620 | if (part.ParentGroup.IsAttachment && m_disableFacelights) |
3626 | { | 3621 | { |
3627 | if (part.ParentGroup.RootPart.Shape.State != (byte)AttachmentPoint.LeftHand && | 3622 | if (part.ParentGroup.RootPart.Shape.State != (byte)AttachmentPoint.LeftHand && |