Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
						commit
						5047bd7b44
					
				|  | @ -48,6 +48,8 @@ namespace OpenSim.Data | |||
|         bool UpdateAvatarProperties(ref UserProfileProperties props, ref string result); | ||||
|         bool UpdateAvatarInterests(UserProfileProperties up, ref string result); | ||||
|         bool GetClassifiedInfo(ref UserClassifiedAdd ad, ref string result); | ||||
|         bool UpdateUserPreferences(ref UserPreferences pref,  ref string result); | ||||
|         bool GetUserPreferences(ref UserPreferences pref, ref string result); | ||||
|         bool GetUserAppData(ref UserAppData props, ref string result); | ||||
|         bool SetUserAppData(UserAppData props, ref string result); | ||||
|         OSDArray GetUserImageAssets(UUID avatarId); | ||||
|  |  | |||
|  | @ -736,7 +736,6 @@ namespace OpenSim.Data.MySQL | |||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "UPDATE userprofile SET "; | ||||
|             query += "profilePartner=?profilePartner, "; | ||||
|             query += "profileURL=?profileURL, "; | ||||
|             query += "profileImage=?image, "; | ||||
|             query += "profileAboutText=?abouttext,"; | ||||
|  | @ -752,7 +751,6 @@ namespace OpenSim.Data.MySQL | |||
|                     using (MySqlCommand cmd = new MySqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("?profileURL", props.WebUrl); | ||||
|                         cmd.Parameters.AddWithValue("?profilePartner", props.PartnerId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("?image", props.ImageId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("?abouttext", props.AboutText); | ||||
|                         cmd.Parameters.AddWithValue("?firstlifeimage", props.FirstLifeImageId.ToString()); | ||||
|  | @ -897,7 +895,7 @@ namespace OpenSim.Data.MySQL | |||
|         } | ||||
|          | ||||
|         #region User Preferences | ||||
|         public OSDArray GetUserPreferences(UUID avatarId) | ||||
|         public bool GetUserPreferences(ref UserPreferences pref, ref string result) | ||||
|         { | ||||
|             string query = string.Empty; | ||||
|              | ||||
|  | @ -914,19 +912,16 @@ namespace OpenSim.Data.MySQL | |||
|                     dbcon.Open(); | ||||
|                     using (MySqlCommand cmd = new MySqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("?Id", avatarId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("?Id", pref.UserId.ToString()); | ||||
|                          | ||||
|                         using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||
|                         { | ||||
|                             if(reader.HasRows) | ||||
|                             { | ||||
|                                 reader.Read(); | ||||
|                                 OSDMap record = new OSDMap(); | ||||
|                                  | ||||
|                                 record.Add("imviaemail",OSD.FromString((string)reader["imviaemail"])); | ||||
|                                 record.Add("visible",OSD.FromString((string)reader["visible"])); | ||||
|                                 record.Add("email",OSD.FromString((string)reader["email"])); | ||||
|                                 data.Add(record); | ||||
|                                 bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); | ||||
|                                 bool.TryParse((string)reader["visible"], out pref.Visible); | ||||
|                                 pref.EMail = (string)reader["email"]; | ||||
|                             } | ||||
|                             else | ||||
|                             { | ||||
|  | @ -949,17 +944,19 @@ namespace OpenSim.Data.MySQL | |||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                  ": Get preferences exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|                 return false; | ||||
|             } | ||||
|             return data; | ||||
|             return true; | ||||
|         } | ||||
|          | ||||
|         public bool UpdateUserPreferences(bool emailIm, bool visible, UUID avatarId ) | ||||
|         public bool UpdateUserPreferences(ref UserPreferences pref, ref string result) | ||||
|         {            | ||||
|             string query = string.Empty; | ||||
| 
 | ||||
|             query += "UPDATE userpsettings SET "; | ||||
|             query += "UPDATE usersettings SET "; | ||||
|             query += "imviaemail=?ImViaEmail, "; | ||||
|             query += "visible=?Visible,"; | ||||
|             query += "visible=?Visible "; | ||||
|             query += "WHERE useruuid=?uuid"; | ||||
|              | ||||
|             try | ||||
|  | @ -969,21 +966,19 @@ namespace OpenSim.Data.MySQL | |||
|                     dbcon.Open(); | ||||
|                     using (MySqlCommand cmd = new MySqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("?ImViaEmail", emailIm.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("?WantText", visible.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("?uuid", avatarId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("?ImViaEmail", pref.IMViaEmail); | ||||
|                         cmd.Parameters.AddWithValue("?Visible", pref.Visible); | ||||
|                         cmd.Parameters.AddWithValue("?uuid", pref.UserId.ToString()); | ||||
| 
 | ||||
|                         lock(Lock) | ||||
|                         { | ||||
|                         cmd.ExecuteNonQuery(); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                  ": AgentInterestsUpdate exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|                 return false; | ||||
|             } | ||||
|             return true; | ||||
|  |  | |||
|  | @ -81,3 +81,13 @@ CREATE TABLE IF NOT EXISTS `userdata` ( | |||
| 
 | ||||
| commit; | ||||
| 
 | ||||
| :VERSION 3         # ------------------------------- | ||||
| begin; | ||||
| CREATE TABLE IF NOT EXISTS `usersettings` ( | ||||
|   `useruuid` varchar(36) NOT NULL, | ||||
|   `imviaemail` enum('true','false') NOT NULL, | ||||
|   `visible` enum('true','false') NOT NULL, | ||||
|   `email` varchar(254) NOT NULL, | ||||
|   PRIMARY KEY (`useruuid`) | ||||
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | ||||
| commit; | ||||
|  | @ -206,7 +206,7 @@ namespace OpenSim.Data.PGSQL | |||
| 
 | ||||
|                     DataTable schemaTable = result.GetSchemaTable(); | ||||
|                     foreach (DataRow row in schemaTable.Rows) | ||||
|                         m_ColumnNames.Add(row["column_name"].ToString()); | ||||
|                         m_ColumnNames.Add(row["ColumnName"].ToString()); | ||||
|                 } | ||||
| 
 | ||||
|                 foreach (string s in m_ColumnNames) | ||||
|  |  | |||
|  | @ -715,7 +715,6 @@ namespace OpenSim.Data.PGSQL | |||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "UPDATE userprofile SET "; | ||||
|             query += "profilePartner=:profilePartner, "; | ||||
|             query += "profileURL=:profileURL, "; | ||||
|             query += "profileImage=:image, "; | ||||
|             query += "profileAboutText=:abouttext,"; | ||||
|  | @ -731,7 +730,6 @@ namespace OpenSim.Data.PGSQL | |||
|                     using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("profileURL", props.WebUrl); | ||||
|                         cmd.Parameters.AddWithValue("profilePartner", props.PartnerId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("image", props.ImageId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("abouttext", props.AboutText); | ||||
|                         cmd.Parameters.AddWithValue("firstlifeimage", props.FirstLifeImageId.ToString()); | ||||
|  | @ -876,7 +874,7 @@ namespace OpenSim.Data.PGSQL | |||
|         } | ||||
|          | ||||
|         #region User Preferences | ||||
|         public OSDArray GetUserPreferences(UUID avatarId) | ||||
|         public bool GetUserPreferences(ref UserPreferences pref, ref string result) | ||||
|         { | ||||
|             string query = string.Empty; | ||||
|              | ||||
|  | @ -893,19 +891,16 @@ namespace OpenSim.Data.PGSQL | |||
|                     dbcon.Open(); | ||||
|                     using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("Id", avatarId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("Id", pref.UserId.ToString()); | ||||
|                          | ||||
|                         using (NpgsqlDataReader reader = cmd.ExecuteReader()) | ||||
|                         { | ||||
|                             if(reader.HasRows) | ||||
|                             { | ||||
|                                 reader.Read(); | ||||
|                                 OSDMap record = new OSDMap(); | ||||
|                                  | ||||
|                                 record.Add("imviaemail",OSD.FromString((string)reader["imviaemail"])); | ||||
|                                 record.Add("visible",OSD.FromString((string)reader["visible"])); | ||||
|                                 record.Add("email",OSD.FromString((string)reader["email"])); | ||||
|                                 data.Add(record); | ||||
|                                 bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); | ||||
|                                 bool.TryParse((string)reader["visible"], out pref.Visible); | ||||
|                                 pref.EMail = (string)reader["email"]; | ||||
|                             } | ||||
|                             else | ||||
|                             { | ||||
|  | @ -928,15 +923,16 @@ namespace OpenSim.Data.PGSQL | |||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                  ": Get preferences exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|             } | ||||
|             return data; | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         public bool UpdateUserPreferences(bool emailIm, bool visible, UUID avatarId ) | ||||
|         public bool UpdateUserPreferences(ref UserPreferences pref,  ref string result) | ||||
|         {            | ||||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "UPDATE userpsettings SET "; | ||||
|             query += "UPDATE usersettings SET "; | ||||
|             query += "imviaemail=:ImViaEmail, "; | ||||
|             query += "visible=:Visible,"; | ||||
|             query += "WHERE useruuid=:uuid"; | ||||
|  | @ -948,9 +944,9 @@ namespace OpenSim.Data.PGSQL | |||
|                     dbcon.Open(); | ||||
|                     using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon)) | ||||
|                     { | ||||
|                         cmd.Parameters.AddWithValue("ImViaEmail", emailIm.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("WantText", visible.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("uuid", avatarId.ToString()); | ||||
|                         cmd.Parameters.AddWithValue("ImViaEmail", pref.IMViaEmail.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("Visible", pref.Visible.ToString().ToLower ()); | ||||
|                         cmd.Parameters.AddWithValue("uuid", pref.UserId.ToString()); | ||||
|                          | ||||
|                         lock(Lock) | ||||
|                         { | ||||
|  | @ -963,6 +959,7 @@ namespace OpenSim.Data.PGSQL | |||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                  ": AgentInterestsUpdate exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|                 return false; | ||||
|             } | ||||
|             return true; | ||||
|  |  | |||
|  | @ -81,3 +81,12 @@ CREATE TABLE userdata ( | |||
| 
 | ||||
| commit; | ||||
| 
 | ||||
| :VERSION 3        # ------------------------------- | ||||
| begin; | ||||
| CREATE TABLE usersettings ( | ||||
|     "useruuid" char(36) NOT NULL, | ||||
|     "imviaemail" bytea NOT NULL, | ||||
|     "visible" bytea NOT NULL, | ||||
|     PRIMARY KEY ("useruuid") | ||||
| ); | ||||
| commit; | ||||
|  | @ -88,3 +88,15 @@ CREATE TABLE IF NOT EXISTS userdata ( | |||
| 
 | ||||
| commit; | ||||
| 
 | ||||
| 
 | ||||
| :VERSION 3         # ------------------------------- | ||||
|   | ||||
| begin; | ||||
| CREATE TABLE IF NOT EXISTS usersettings ( | ||||
|   useruuid char(36) NOT NULL, | ||||
|   imviaemail binary(1) NOT NULL, | ||||
|   visible binary(1) NOT NULL, | ||||
|   email varchar(254) NOT NULL, | ||||
|   PRIMARY KEY (useruuid) | ||||
| ) | ||||
| commit; | ||||
|  | @ -679,7 +679,6 @@ namespace OpenSim.Data.SQLite | |||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "UPDATE userprofile SET "; | ||||
|             query += "profilePartner=:profilePartner, "; | ||||
|             query += "profileURL=:profileURL, "; | ||||
|             query += "profileImage=:image, "; | ||||
|             query += "profileAboutText=:abouttext,"; | ||||
|  | @ -693,7 +692,6 @@ namespace OpenSim.Data.SQLite | |||
|                 { | ||||
|                     cmd.CommandText = query; | ||||
|                     cmd.Parameters.AddWithValue(":profileURL", props.WebUrl); | ||||
|                     cmd.Parameters.AddWithValue(":profilePartner", props.PartnerId.ToString()); | ||||
|                     cmd.Parameters.AddWithValue(":image", props.ImageId.ToString()); | ||||
|                     cmd.Parameters.AddWithValue(":abouttext", props.AboutText); | ||||
|                     cmd.Parameters.AddWithValue(":firstlifeimage", props.FirstLifeImageId.ToString()); | ||||
|  | @ -749,6 +747,89 @@ namespace OpenSim.Data.SQLite | |||
|             } | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         public bool UpdateUserPreferences(ref UserPreferences pref, ref string result) | ||||
|         {            | ||||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "UPDATE usersettings SET "; | ||||
|             query += "imviaemail=:ImViaEmail, "; | ||||
|             query += "visible=:Visible "; | ||||
|             query += "WHERE useruuid=:uuid"; | ||||
|              | ||||
|             try | ||||
|             { | ||||
|                 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) | ||||
|                 { | ||||
|                     cmd.CommandText = query; | ||||
|                     cmd.Parameters.AddWithValue(":ImViaEmail", pref.IMViaEmail); | ||||
|                     cmd.Parameters.AddWithValue(":Visible", pref.Visible); | ||||
|                     cmd.Parameters.AddWithValue(":uuid", pref.UserId.ToString()); | ||||
|                          | ||||
|                     cmd.ExecuteNonQuery(); | ||||
|                 } | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                   ": AgentInterestsUpdate exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|                 return false; | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         public bool GetUserPreferences(ref UserPreferences pref, ref string result) | ||||
|         { | ||||
|             IDataReader reader = null; | ||||
|             string query = string.Empty; | ||||
|              | ||||
|             query += "SELECT imviaemail,visible,email FROM "; | ||||
|             query += "usersettings WHERE "; | ||||
|             query += "useruuid = :Id"; | ||||
|              | ||||
|             OSDArray data = new OSDArray(); | ||||
|              | ||||
|             try | ||||
|             { | ||||
|                 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) | ||||
|                 { | ||||
|                     cmd.CommandText = query; | ||||
|                     cmd.Parameters.AddWithValue("?Id", pref.UserId.ToString()); | ||||
|                          | ||||
|                     using (reader = cmd.ExecuteReader(CommandBehavior.SingleRow)) | ||||
|                     { | ||||
|                         if(reader.Read()) | ||||
|                         { | ||||
|                             bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail); | ||||
|                             bool.TryParse((string)reader["visible"], out pref.Visible); | ||||
|                             pref.EMail = (string)reader["email"]; | ||||
|                          } | ||||
|                          else | ||||
|                          { | ||||
|                             query = "INSERT INTO usersettings VALUES "; | ||||
|                             query += "(:Id,'false','false', '')"; | ||||
|                              | ||||
|                             using (SqliteCommand put = (SqliteCommand)m_connection.CreateCommand()) | ||||
|                             { | ||||
|                                 put.Parameters.AddWithValue(":Id", pref.UserId.ToString()); | ||||
|                                 put.ExecuteNonQuery(); | ||||
|                                      | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 m_log.DebugFormat("[PROFILES_DATA]" + | ||||
|                                   ": Get preferences exception {0}", e.Message); | ||||
|                 result = e.Message; | ||||
|                 return false; | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         public bool GetUserAppData(ref UserAppData props, ref string result) | ||||
|         { | ||||
|             IDataReader reader = null; | ||||
|  |  | |||
|  | @ -91,6 +91,14 @@ namespace OpenSim.Framework | |||
|         public string Notes; | ||||
|     } | ||||
| 
 | ||||
|     public class UserPreferences | ||||
|     { | ||||
|         public UUID UserId; | ||||
|         public bool IMViaEmail = false; | ||||
|         public bool Visible = false; | ||||
|         public string EMail = string.Empty; | ||||
|     } | ||||
|      | ||||
|     public class UserAccountProperties | ||||
|     { | ||||
|         public string EmailAddress = string.Empty; | ||||
|  |  | |||
|  | @ -498,24 +498,28 @@ namespace OpenSim.Region.ClientStack.Linden | |||
| 
 | ||||
|             if (inventoryType == "sound") | ||||
|             { | ||||
|                 inType = 1; | ||||
|                 assType = 1; | ||||
|                 inType = (sbyte)InventoryType.Sound; | ||||
|                 assType = (sbyte)AssetType.Sound; | ||||
|             } | ||||
|             else if (inventoryType == "snapshot") | ||||
|             { | ||||
|                 inType = (sbyte)InventoryType.Snapshot; | ||||
|             } | ||||
|             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; | ||||
|                 } | ||||
|             } | ||||
|  |  | |||
|  | @ -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 | ||||
|         /// <summary> | ||||
|         /// Updates the user preferences. | ||||
|         /// </summary> | ||||
|         /// <param name='imViaEmail'> | ||||
|         /// Im via email. | ||||
|         /// </param> | ||||
|         /// <param name='visible'> | ||||
|         /// Visible. | ||||
|         /// </param> | ||||
|         /// <param name='remoteClient'> | ||||
|         /// Remote client. | ||||
|         /// </param> | ||||
|         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;    | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Users the preferences request. | ||||
|         /// </summary> | ||||
|         /// <param name='remoteClient'> | ||||
|         /// Remote client. | ||||
|         /// </param> | ||||
|         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 | ||||
|         /// <summary> | ||||
|         /// Update the avatars interests . | ||||
|  |  | |||
|  | @ -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); | ||||
|  |  | |||
|  | @ -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; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// decompresses a gzipped OSD object | ||||
|         /// </summary> | ||||
|  | @ -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(); | ||||
|  |  | |||
|  | @ -104,6 +104,8 @@ namespace OpenSim.Server.Handlers.Profiles | |||
|             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); | ||||
|  |  | |||
|  | @ -381,6 +381,59 @@ namespace OpenSim.Server.Handlers | |||
|         } | ||||
|         #endregion Interests | ||||
| 
 | ||||
|         #region User Preferences | ||||
|         public bool UserPreferencesRequest(OSDMap json, ref JsonRpcResponse response) | ||||
|         { | ||||
|             if(!json.ContainsKey("params")) | ||||
|             { | ||||
|                 response.Error.Code = ErrorCode.ParseError; | ||||
|                 m_log.DebugFormat ("User Preferences Request"); | ||||
|                 return false; | ||||
|             } | ||||
| 
 | ||||
|             string result = string.Empty; | ||||
|             UserPreferences prefs = new UserPreferences(); | ||||
|             object Prefs = (object)prefs; | ||||
|             OSD.DeserializeMembers(ref Prefs, (OSDMap)json["params"]); | ||||
|             if(Service.UserPreferencesRequest(ref prefs, ref result)) | ||||
|             { | ||||
|                 response.Result = OSD.SerializeMembers(prefs); | ||||
|                 return true; | ||||
|             } | ||||
|              | ||||
|             response.Error.Code = ErrorCode.InternalError; | ||||
|             response.Error.Message = string.Format("{0}", result); | ||||
|             m_log.InfoFormat("[PROFILES]: User preferences request error - {0}", response.Error.Message); | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         public bool UserPreferenecesUpdate(OSDMap json, ref JsonRpcResponse response) | ||||
|         { | ||||
|             if(!json.ContainsKey("params")) | ||||
|             { | ||||
|                 response.Error.Code = ErrorCode.ParseError; | ||||
|                 response.Error.Message = "no parameters supplied"; | ||||
|                 m_log.DebugFormat ("User Preferences Update Request"); | ||||
|                 return false; | ||||
|             } | ||||
|              | ||||
|             string result = string.Empty; | ||||
|             UserPreferences prefs = new UserPreferences(); | ||||
|             object Prefs = (object)prefs; | ||||
|             OSD.DeserializeMembers(ref Prefs, (OSDMap)json["params"]); | ||||
|             if(Service.UserPreferencesUpdate(ref prefs, ref result)) | ||||
|             { | ||||
|                 response.Result = OSD.SerializeMembers(prefs); | ||||
|                 return true; | ||||
|             } | ||||
|              | ||||
|             response.Error.Code = ErrorCode.InternalError; | ||||
|             response.Error.Message = string.Format("{0}", result); | ||||
|             m_log.InfoFormat("[PROFILES]: User preferences update error - {0}", response.Error.Message); | ||||
|             return false; | ||||
|         } | ||||
|         #endregion User Preferences | ||||
| 
 | ||||
|         #region Utility | ||||
|         public bool AvatarImageAssetsRequest(OSDMap json, ref JsonRpcResponse response) | ||||
|         { | ||||
|  |  | |||
|  | @ -58,6 +58,11 @@ namespace OpenSim.Services.Interfaces | |||
|         bool AvatarPropertiesUpdate(ref UserProfileProperties prop, ref string result); | ||||
|         #endregion Profile Properties | ||||
| 
 | ||||
|         #region User Preferences | ||||
|         bool UserPreferencesRequest(ref UserPreferences pref, ref string result); | ||||
|         bool UserPreferencesUpdate(ref UserPreferences pref, ref string result); | ||||
|         #endregion User Preferences | ||||
|          | ||||
|         #region Interests | ||||
|         bool AvatarInterestsUpdate(UserProfileProperties prop, ref string result); | ||||
|         #endregion Interests | ||||
|  |  | |||
|  | @ -163,6 +163,18 @@ namespace OpenSim.Services.ProfilesService | |||
|         } | ||||
|         #endregion Interests | ||||
| 
 | ||||
|         #region User Preferences | ||||
|         public bool UserPreferencesUpdate(ref UserPreferences pref, ref string result) | ||||
|         { | ||||
|             return ProfilesData.UpdateUserPreferences(ref pref, ref result); | ||||
|         } | ||||
| 
 | ||||
|         public bool UserPreferencesRequest(ref UserPreferences pref, ref string result) | ||||
|         { | ||||
|             return ProfilesData.GetUserPreferences(ref pref, ref result); | ||||
|         } | ||||
|         #endregion User Preferences | ||||
| 
 | ||||
|         #region Utility | ||||
|         public OSD AvatarImageAssetsRequest(UUID avatarId) | ||||
|         { | ||||
|  |  | |||
|  | @ -585,7 +585,6 @@ | |||
|       <Reference name="OpenSim.Framework.Console"/> | ||||
|       <Reference name="OpenSim.Region.Physics.Manager"/> | ||||
|       <Reference name="log4net" path="../../../../bin/"/> | ||||
|       <Reference name="zlib.net" path="../../../../bin/"/> | ||||
| 
 | ||||
|       <Files> | ||||
|         <Match pattern="*.cs" recurse="true"/> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Diva Canto
						Diva Canto