diff options
author | Justin Clark-Casey (justincc) | 2010-07-28 18:55:29 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-07-28 18:55:29 +0100 |
commit | 5aa56b12743c19a68cb371609be797e5fb3e2c4b (patch) | |
tree | 4b9b23b0e4de1397e16eaa6cd03baa8edfedd7b3 | |
parent | comment out further debug line in BaseHttpServer (diff) | |
download | opensim-SC_OLD-5aa56b12743c19a68cb371609be797e5fb3e2c4b.zip opensim-SC_OLD-5aa56b12743c19a68cb371609be797e5fb3e2c4b.tar.gz opensim-SC_OLD-5aa56b12743c19a68cb371609be797e5fb3e2c4b.tar.bz2 opensim-SC_OLD-5aa56b12743c19a68cb371609be797e5fb3e2c4b.tar.xz |
Fix problem where changes to media textures for prims duplicated by shify copy would change both prims until server restart
I also found out that you can crash the current viewer by giving it more media entrys than it's expecting
3 files changed, 33 insertions, 16 deletions
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs index d53f573..6d74b8e 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs | |||
@@ -350,9 +350,9 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
350 | 350 | ||
351 | if (null == part) | 351 | if (null == part) |
352 | { | 352 | { |
353 | // m_log.WarnFormat( | 353 | m_log.WarnFormat( |
354 | // "[MOAP]: Received a GET ObjectMediaRequest for prim {0} but this doesn't exist in region {1}", | 354 | "[MOAP]: Received a GET ObjectMediaRequest for prim {0} but this doesn't exist in region {1}", |
355 | // primId, m_scene.RegionInfo.RegionName); | 355 | primId, m_scene.RegionInfo.RegionName); |
356 | return string.Empty; | 356 | return string.Empty; |
357 | } | 357 | } |
358 | 358 | ||
@@ -386,9 +386,9 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
386 | 386 | ||
387 | if (null == part) | 387 | if (null == part) |
388 | { | 388 | { |
389 | // m_log.WarnFormat( | 389 | m_log.WarnFormat( |
390 | // "[MOAP]: Received an UPDATE ObjectMediaRequest for prim {0} but this doesn't exist in region {1}", | 390 | "[MOAP]: Received an UPDATE ObjectMediaRequest for prim {0} but this doesn't exist in region {1}", |
391 | // primId, m_scene.RegionInfo.RegionName); | 391 | primId, m_scene.RegionInfo.RegionName); |
392 | return string.Empty; | 392 | return string.Empty; |
393 | } | 393 | } |
394 | 394 | ||
@@ -403,9 +403,9 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
403 | 403 | ||
404 | if (omu.FaceMedia.Length > part.GetNumberOfSides()) | 404 | if (omu.FaceMedia.Length > part.GetNumberOfSides()) |
405 | { | 405 | { |
406 | // m_log.WarnFormat( | 406 | m_log.WarnFormat( |
407 | // "[MOAP]: Received {0} media entries from client for prim {1} {2} but this prim has only {3} faces. Dropping request.", | 407 | "[MOAP]: Received {0} media entries from client for prim {1} {2} but this prim has only {3} faces. Dropping request.", |
408 | // omu.FaceMedia.Length, part.Name, part.UUID, part.GetNumberOfSides()); | 408 | omu.FaceMedia.Length, part.Name, part.UUID, part.GetNumberOfSides()); |
409 | return string.Empty; | 409 | return string.Empty; |
410 | } | 410 | } |
411 | 411 | ||
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 982ac52..3a642f4 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -1923,9 +1923,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1923 | if (null == me) | 1923 | if (null == me) |
1924 | return true; | 1924 | return true; |
1925 | 1925 | ||
1926 | m_log.DebugFormat( | 1926 | // m_log.DebugFormat( |
1927 | "[PERMISSIONS]: Checking CanControlPrimMedia for {0} on {1} face {2} with control permissions {3}", | 1927 | // "[PERMISSIONS]: Checking CanControlPrimMedia for {0} on {1} face {2} with control permissions {3}", |
1928 | agentID, primID, face, me.ControlPermissions); | 1928 | // agentID, primID, face, me.ControlPermissions); |
1929 | 1929 | ||
1930 | return GenericPrimMediaPermission(part, agentID, me.ControlPermissions); | 1930 | return GenericPrimMediaPermission(part, agentID, me.ControlPermissions); |
1931 | } | 1931 | } |
@@ -1949,9 +1949,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1949 | if (null == me) | 1949 | if (null == me) |
1950 | return true; | 1950 | return true; |
1951 | 1951 | ||
1952 | m_log.DebugFormat( | 1952 | // m_log.DebugFormat( |
1953 | "[PERMISSIONS]: Checking CanInteractWithPrimMedia for {0} on {1} face {2} with interact permissions {3}", | 1953 | // "[PERMISSIONS]: Checking CanInteractWithPrimMedia for {0} on {1} face {2} with interact permissions {3}", |
1954 | agentID, primID, face, me.InteractPermissions); | 1954 | // agentID, primID, face, me.InteractPermissions); |
1955 | 1955 | ||
1956 | return GenericPrimMediaPermission(part, agentID, me.InteractPermissions); | 1956 | return GenericPrimMediaPermission(part, agentID, me.InteractPermissions); |
1957 | } | 1957 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 444a239..085da19 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1617,7 +1617,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
1617 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); | 1617 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
1618 | } | 1618 | } |
1619 | 1619 | ||
1620 | return dupe; | 1620 | if (Shape.Media != null) |
1621 | { | ||
1622 | List<MediaEntry> dupeMedia = new List<MediaEntry>(); | ||
1623 | |||
1624 | foreach (MediaEntry me in Shape.Media) | ||
1625 | { | ||
1626 | if (me != null) | ||
1627 | dupeMedia.Add(MediaEntry.FromOSD(me.GetOSD())); | ||
1628 | else | ||
1629 | dupeMedia.Add(null); | ||
1630 | } | ||
1631 | |||
1632 | dupe.Shape.Media = dupeMedia; | ||
1633 | } | ||
1634 | |||
1635 | // m_log.DebugFormat("[SCENE OBJECT PART]: Clone of {0} {1} finished", Name, UUID); | ||
1636 | |||
1637 | return dupe; | ||
1621 | } | 1638 | } |
1622 | 1639 | ||
1623 | protected void AssetReceived(string id, Object sender, AssetBase asset) | 1640 | protected void AssetReceived(string id, Object sender, AssetBase asset) |