From 16aaba77d49baad0dc581ffbf69d71181b9be70f Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 6 Dec 2013 00:30:44 +0000
Subject: Properly set InventoryType.Snapshot when a snapshot is uploaded
Resolves http://opensimulator.org/mantis/view.php?id=6857
This prevents the inventory service complaining later about an attempt to change an invariant
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 1d4c7f0..66d2138 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -501,6 +501,10 @@ namespace OpenSim.Region.ClientStack.Linden
inType = 1;
assType = 1;
}
+ else if (inventoryType == "snapshot")
+ {
+ inType = (sbyte)InventoryType.Snapshot;
+ }
else if (inventoryType == "animation")
{
inType = 19;
--
cgit v1.1
From bb4f4d9480df4c17ea31288c069993305c7e1582 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 6 Dec 2013 00:38:18 +0000
Subject: minor: Use enums for setting inv/asset types on data upload rather
than magic numbers
---
.../ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 66d2138..a4fe81c 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -498,8 +498,8 @@ namespace OpenSim.Region.ClientStack.Linden
if (inventoryType == "sound")
{
- inType = 1;
- assType = 1;
+ inType = (sbyte)InventoryType.Sound;
+ assType = (sbyte)AssetType.Sound;
}
else if (inventoryType == "snapshot")
{
@@ -507,19 +507,19 @@ namespace OpenSim.Region.ClientStack.Linden
}
else if (inventoryType == "animation")
{
- inType = 19;
- assType = 20;
+ inType = (sbyte)InventoryType.Animation;
+ assType = (sbyte)AssetType.Animation;
}
else if (inventoryType == "wearable")
{
- inType = 18;
+ inType = (sbyte)InventoryType.Wearable;
switch (assetType)
{
case "bodypart":
- assType = 13;
+ assType = (sbyte)AssetType.Bodypart;
break;
case "clothing":
- assType = 5;
+ assType = (sbyte)AssetType.Clothing;
break;
}
}
--
cgit v1.1
From 1842388bb4dcf5ecd57732ffa877b6ca1a3dec7b Mon Sep 17 00:00:00 2001
From: BlueWall
Date: Fri, 6 Dec 2013 02:52:13 -0500
Subject: Add support for user preferences (im via email)
---
.../Avatar/UserProfiles/UserProfileModule.cs | 67 ++++++++++++++++++++++
.../LocalUserProfilesServiceConnector.cs | 2 +
2 files changed, 69 insertions(+)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
index 56ff2bd..b21082f 100644
--- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
@@ -270,6 +270,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
// Notes
client.AddGenericPacketHandler("avatarnotesrequest", NotesRequest);
client.OnAvatarNotesUpdate += NotesUpdate;
+
+ // Preferences
+ client.OnUserInfoRequest += UserPreferencesRequest;
+ client.OnUpdateUserInfo += UpdateUserPreferences;
}
#endregion Region Event Handlers
@@ -799,6 +803,69 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles
}
#endregion Notes
+ #region User Preferences
+ ///
+ /// Updates the user preferences.
+ ///
+ ///
+ /// Im via email.
+ ///
+ ///
+ /// Visible.
+ ///
+ ///
+ /// Remote client.
+ ///
+ public void UpdateUserPreferences(bool imViaEmail, bool visible, IClientAPI remoteClient)
+ {
+ UserPreferences pref = new UserPreferences();
+
+ pref.UserId = remoteClient.AgentId;
+ pref.IMViaEmail = imViaEmail;
+ pref.Visible = visible;
+
+ string serverURI = string.Empty;
+ bool foreign = GetUserProfileServerURI(remoteClient.AgentId, out serverURI);
+
+ object Pref = pref;
+ if(!JsonRpcRequest(ref Pref, "user_preferences_update", serverURI, UUID.Random().ToString()))
+ {
+ m_log.InfoFormat("[PROFILES]: UserPreferences update error");
+ remoteClient.SendAgentAlertMessage("Error updating preferences", false);
+ return;
+ }
+ }
+
+ ///
+ /// Users the preferences request.
+ ///
+ ///
+ /// Remote client.
+ ///
+ public void UserPreferencesRequest(IClientAPI remoteClient)
+ {
+ UserPreferences pref = new UserPreferences();
+
+ pref.UserId = remoteClient.AgentId;
+
+ string serverURI = string.Empty;
+ bool foreign = GetUserProfileServerURI(remoteClient.AgentId, out serverURI);
+
+
+ object Pref = (object)pref;
+ if(!JsonRpcRequest(ref Pref, "user_preferences_request", serverURI, UUID.Random().ToString()))
+ {
+ m_log.InfoFormat("[PROFILES]: UserPreferences request error");
+ remoteClient.SendAgentAlertMessage("Error requesting preferences", false);
+ return;
+ }
+ pref = (UserPreferences) Pref;
+
+ remoteClient.SendUserInfoReply(pref.IMViaEmail, pref.Visible, pref.EMail);
+
+ }
+ #endregion User Preferences
+
#region Avatar Properties
///
/// Update the avatars interests .
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/UserProfiles/LocalUserProfilesServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/UserProfiles/LocalUserProfilesServiceConnector.cs
index 323535a..4701ee6 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/UserProfiles/LocalUserProfilesServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/UserProfiles/LocalUserProfilesServiceConnector.cs
@@ -153,6 +153,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Profile
Server.AddJsonRPCHandler("avatar_properties_request", handler.AvatarPropertiesRequest);
Server.AddJsonRPCHandler("avatar_properties_update", handler.AvatarPropertiesUpdate);
Server.AddJsonRPCHandler("avatar_interests_update", handler.AvatarInterestsUpdate);
+ Server.AddJsonRPCHandler("user_preferences_update", handler.UserPreferenecesUpdate);
+ Server.AddJsonRPCHandler("user_preferences_request", handler.UserPreferencesRequest);
Server.AddJsonRPCHandler("image_assets_request", handler.AvatarImageAssetsRequest);
Server.AddJsonRPCHandler("user_data_request", handler.RequestUserAppData);
Server.AddJsonRPCHandler("user_data_update", handler.UpdateUserAppData);
--
cgit v1.1
From 1496de7ce99079d3d7bf046db088c3d6e2a97bcb Mon Sep 17 00:00:00 2001
From: dahlia
Date: Fri, 6 Dec 2013 15:58:19 -0800
Subject: use System.IO.Compression.DeflateStream for mesh decompression in an
attempt to reduce mesh asset decoding failures
---
OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 1f08b03..e313a30 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -40,7 +40,6 @@ using log4net;
using Nini.Config;
using System.Reflection;
using System.IO;
-using ComponentAce.Compression.Libs.zlib;
namespace OpenSim.Region.Physics.Meshing
{
@@ -549,7 +548,6 @@ namespace OpenSim.Region.Physics.Meshing
return true;
}
-
///
/// decompresses a gzipped OSD object
///
@@ -564,15 +562,13 @@ namespace OpenSim.Region.Physics.Meshing
{
using (MemoryStream outMs = new MemoryStream())
{
- using (ZOutputStream zOut = new ZOutputStream(outMs))
+ using (DeflateStream decompressionStream = new DeflateStream(inMs, CompressionMode.Decompress))
{
byte[] readBuffer = new byte[2048];
- int readLen = 0;
- while ((readLen = inMs.Read(readBuffer, 0, readBuffer.Length)) > 0)
- {
- zOut.Write(readBuffer, 0, readLen);
- }
- zOut.Flush();
+ inMs.Read(readBuffer, 0, 2); // skip first 2 bytes in header
+
+ decompressionStream.CopyTo(outMs);
+
outMs.Seek(0, SeekOrigin.Begin);
byte[] decompressedBuf = outMs.GetBuffer();
--
cgit v1.1