diff options
Diffstat (limited to 'OpenSim/Region')
5 files changed, 28 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs index a3238df..97581e5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs | |||
@@ -187,8 +187,16 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps | |||
187 | int start, end; | 187 | int start, end; |
188 | if (TryParseRange(range, out start, out end)) | 188 | if (TryParseRange(range, out start, out end)) |
189 | { | 189 | { |
190 | end = Utils.Clamp(end, 1, texture.Data.Length - 1); | 190 | // Before clamping start make sure we can satisfy it in order to avoid |
191 | start = Utils.Clamp(start, 0, end - 1); | 191 | // sending back the last byte instead of an error status |
192 | if (start >= texture.Data.Length) | ||
193 | { | ||
194 | response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable; | ||
195 | return; | ||
196 | } | ||
197 | |||
198 | end = Utils.Clamp(end, 0, texture.Data.Length - 1); | ||
199 | start = Utils.Clamp(start, 0, end); | ||
192 | int len = end - start + 1; | 200 | int len = end - start + 1; |
193 | 201 | ||
194 | //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); | 202 | //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index d05cfc2..7a175ea 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -208,7 +208,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
208 | } | 208 | } |
209 | 209 | ||
210 | foreach (List<SceneObjectGroup> objlist in deletes.Values) | 210 | foreach (List<SceneObjectGroup> objlist in deletes.Values) |
211 | ret = DeleteToInventory(action, folderID, objlist, remoteClient); | 211 | { |
212 | foreach (SceneObjectGroup g in objlist) | ||
213 | ret = DeleteToInventory(action, folderID, g, remoteClient); | ||
214 | } | ||
212 | 215 | ||
213 | return ret; | 216 | return ret; |
214 | } | 217 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 8140d42..39b109b 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2694,7 +2694,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2694 | public void PreloadSound(string sound) | 2694 | public void PreloadSound(string sound) |
2695 | { | 2695 | { |
2696 | // UUID ownerID = OwnerID; | 2696 | // UUID ownerID = OwnerID; |
2697 | UUID objectID = UUID; | 2697 | UUID objectID = ParentGroup.RootPart.UUID; |
2698 | UUID soundID = UUID.Zero; | 2698 | UUID soundID = UUID.Zero; |
2699 | 2699 | ||
2700 | if (!UUID.TryParse(sound, out soundID)) | 2700 | if (!UUID.TryParse(sound, out soundID)) |
@@ -3101,7 +3101,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3101 | volume = 0; | 3101 | volume = 0; |
3102 | 3102 | ||
3103 | UUID ownerID = _ownerID; | 3103 | UUID ownerID = _ownerID; |
3104 | UUID objectID = UUID; | 3104 | UUID objectID = ParentGroup.RootPart.UUID; |
3105 | UUID parentID = GetRootPartUUID(); | 3105 | UUID parentID = GetRootPartUUID(); |
3106 | UUID soundID = UUID.Zero; | 3106 | UUID soundID = UUID.Zero; |
3107 | Vector3 position = AbsolutePosition; // region local | 3107 | Vector3 position = AbsolutePosition; // region local |
@@ -3138,11 +3138,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
3138 | else | 3138 | else |
3139 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | 3139 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); |
3140 | ParentGroup.PlaySoundMasterPrim = this; | 3140 | ParentGroup.PlaySoundMasterPrim = this; |
3141 | ownerID = this._ownerID; | 3141 | ownerID = _ownerID; |
3142 | objectID = this.UUID; | 3142 | objectID = ParentGroup.RootPart.UUID; |
3143 | parentID = this.GetRootPartUUID(); | 3143 | parentID = GetRootPartUUID(); |
3144 | position = this.AbsolutePosition; // region local | 3144 | position = AbsolutePosition; // region local |
3145 | regionHandle = this.ParentGroup.Scene.RegionInfo.RegionHandle; | 3145 | regionHandle = ParentGroup.Scene.RegionInfo.RegionHandle; |
3146 | if (triggered) | 3146 | if (triggered) |
3147 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); | 3147 | soundModule.TriggerSound(soundID, ownerID, objectID, parentID, volume, position, regionHandle, radius); |
3148 | else | 3148 | else |
@@ -3150,7 +3150,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3150 | foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) | 3150 | foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) |
3151 | { | 3151 | { |
3152 | ownerID = prim._ownerID; | 3152 | ownerID = prim._ownerID; |
3153 | objectID = prim.UUID; | 3153 | objectID = prim.ParentGroup.RootPart.UUID; |
3154 | parentID = prim.GetRootPartUUID(); | 3154 | parentID = prim.GetRootPartUUID(); |
3155 | position = prim.AbsolutePosition; // region local | 3155 | position = prim.AbsolutePosition; // region local |
3156 | regionHandle = prim.ParentGroup.Scene.RegionInfo.RegionHandle; | 3156 | regionHandle = prim.ParentGroup.Scene.RegionInfo.RegionHandle; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneViewer.cs b/OpenSim/Region/Framework/Scenes/SceneViewer.cs index b45291f..b44a010 100644 --- a/OpenSim/Region/Framework/Scenes/SceneViewer.cs +++ b/OpenSim/Region/Framework/Scenes/SceneViewer.cs | |||
@@ -179,11 +179,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
179 | 179 | ||
180 | public void Reset() | 180 | public void Reset() |
181 | { | 181 | { |
182 | if (m_pendingObjects != null) | 182 | if (m_pendingObjects == null) |
183 | return; | ||
184 | |||
185 | lock (m_pendingObjects) | ||
183 | { | 186 | { |
184 | lock (m_pendingObjects) | 187 | if (m_pendingObjects != null) |
185 | { | 188 | { |
186 | |||
187 | m_pendingObjects.Clear(); | 189 | m_pendingObjects.Clear(); |
188 | m_pendingObjects = null; | 190 | m_pendingObjects = null; |
189 | } | 191 | } |
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index c97db8c..cf57c0a 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
81 | { | 81 | { |
82 | IConfig start_config = config.Configs["Startup"]; | 82 | IConfig start_config = config.Configs["Startup"]; |
83 | 83 | ||
84 | decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache"); | 84 | decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache"); |
85 | cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps); | 85 | cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps); |
86 | 86 | ||
87 | try | 87 | try |