From fa8f5bafb225624fe4a0df88acf1f4c227632fe0 Mon Sep 17 00:00:00 2001
From: dahlia
Date: Sat, 18 May 2013 01:23:09 -0700
Subject: add prototype code to decode convex hulls from mesh assets. Please do
 not use yet; the interface will be defined in a later commit.

---
 OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 131 +++++++++++++++++++++-----
 1 file changed, 110 insertions(+), 21 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 2d102de..825e622 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -79,6 +79,8 @@ namespace OpenSim.Region.Physics.Meshing
 
         private float minSizeForComplexMesh = 0.2f; // prims with all dimensions smaller than this will have a bounding box mesh
 
+        private List<List<Vector3>> mConvexHulls = null;
+
         private Dictionary<ulong, Mesh> m_uniqueMeshes = new Dictionary<ulong, Mesh>();
 
         public Meshmerizer(IConfigSource config)
@@ -363,6 +365,57 @@ namespace OpenSim.Region.Physics.Meshing
                 else if (map.ContainsKey("high_lod"))
                     physicsParms = (OSDMap)map["high_lod"]; // if all else fails, use highest LOD display mesh and hope it works :)
 
+                if (map.ContainsKey("physics_convex"))
+                { // pull this out also in case physics engine can use it
+                    try
+                    {
+                        OSDMap convexBlock = (OSDMap)map["physics_convex"];
+                        if (convexBlock.ContainsKey("HullList"))
+                        {
+                            byte[] hullList = convexBlock["HullList"].AsBinary();
+                            Vector3 min = new Vector3(-0.5f, -0.5f, -0.5f);
+                            if (convexBlock.ContainsKey("Min")) min = convexBlock["Min"].AsVector3();
+                            Vector3 max = new Vector3(0.5f, 0.5f, 0.5f);
+                            if (convexBlock.ContainsKey("Max")) max = convexBlock["Max"].AsVector3();
+
+                            // decompress and decode hull points
+                            byte[] posBytes = DecompressOsd(convexBlock["Positions"].AsBinary()).AsBinary();
+                            
+                            List<List<Vector3>> hulls = new List<List<Vector3>>();
+                            int posNdx = 0;
+
+                            foreach (byte cnt in hullList)
+                            {
+                                int count = cnt == 0 ? 256 : cnt;
+                                List<Vector3> hull = new List<Vector3>();
+                                
+                                for (int i = 0; i < cnt; i++)
+                                {
+                                    ushort uX = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
+                                    ushort uY = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
+                                    ushort uZ = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
+
+                                    Vector3 pos = new Vector3(
+                                        Utils.UInt16ToFloat(uX, min.X, max.X) * size.X,
+                                        Utils.UInt16ToFloat(uY, min.Y, max.Y) * size.Y,
+                                        Utils.UInt16ToFloat(uZ, min.Z, max.Z) * size.Z
+                                    );
+
+                                    hull.Add(pos);
+                                }
+
+                                hulls.Add(hull);
+                            }
+
+                            mConvexHulls = hulls;
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        m_log.WarnFormat("[MESH]: exception decoding convex block: {0}", e.Message);
+                    }
+                }
+
                 if (physicsParms == null)
                 {
                     m_log.WarnFormat("[MESH]: No recognized physics mesh found in mesh asset for {0}", primName);
@@ -381,27 +434,7 @@ namespace OpenSim.Region.Physics.Meshing
 //                        byte[] decompressed = new byte[physSize * 5];
                 try
                 {
-                    using (MemoryStream inMs = new MemoryStream(meshBytes))
-                    {
-                        using (MemoryStream outMs = new MemoryStream())
-                        {
-                            using (ZOutputStream zOut = new ZOutputStream(outMs))
-                            {
-                                byte[] readBuffer = new byte[2048];
-                                int readLen = 0;
-                                while ((readLen = inMs.Read(readBuffer, 0, readBuffer.Length)) > 0)
-                                {
-                                    zOut.Write(readBuffer, 0, readLen);
-                                }
-                                zOut.Flush();
-                                outMs.Seek(0, SeekOrigin.Begin);
-
-                                byte[] decompressedBuf = outMs.GetBuffer();
-
-                                decodedMeshOsd = OSDParser.DeserializeLLSDBinary(decompressedBuf);
-                            }
-                        }
-                    }
+                    decodedMeshOsd = DecompressOsd(meshBytes);
                 }
                 catch (Exception e)
                 {
@@ -428,6 +461,41 @@ namespace OpenSim.Region.Physics.Meshing
             return true;
         }
 
+
+        /// <summary>
+        /// decompresses a gzipped OSD object
+        /// </summary>
+        /// <param name="decodedOsd"></param> the OSD object
+        /// <param name="meshBytes"></param>
+        /// <returns></returns>
+        private static OSD DecompressOsd(byte[] meshBytes)
+        {
+            OSD decodedOsd = null;
+
+            using (MemoryStream inMs = new MemoryStream(meshBytes))
+            {
+                using (MemoryStream outMs = new MemoryStream())
+                {
+                    using (ZOutputStream zOut = new ZOutputStream(outMs))
+                    {
+                        byte[] readBuffer = new byte[2048];
+                        int readLen = 0;
+                        while ((readLen = inMs.Read(readBuffer, 0, readBuffer.Length)) > 0)
+                        {
+                            zOut.Write(readBuffer, 0, readLen);
+                        }
+                        zOut.Flush();
+                        outMs.Seek(0, SeekOrigin.Begin);
+
+                        byte[] decompressedBuf = outMs.GetBuffer();
+
+                        decodedOsd = OSDParser.DeserializeLLSDBinary(decompressedBuf);
+                    }
+                }
+            }
+            return decodedOsd;
+        }
+
         /// <summary>
         /// Generate the co-ords and faces necessary to construct a mesh from the sculpt data the accompanies a prim.
         /// </summary>
@@ -704,6 +772,27 @@ namespace OpenSim.Region.Physics.Meshing
             return true;
         }
 
+        /// <summary>
+        /// temporary prototype code - please do not use until the interface has been finalized!
+        /// </summary>
+        /// <param name="size">value to scale the hull points by</param>
+        /// <returns>a list of hulls if they exist and have been successfully decoded, otherwise null</returns>
+        public List<List<Vector3>> GetConvexHulls(Vector3 size)
+        {
+            if (mConvexHulls == null)
+                return null;
+
+            List<List<Vector3>> hulls = new List<List<Vector3>>();
+            foreach (var hull in mConvexHulls)
+            {
+                List<Vector3> verts = new List<Vector3>();
+                foreach (var vert in hull)
+                    verts.Add(vert * size);
+            }
+
+            return hulls;
+        }
+
         public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod)
         {
             return CreateMesh(primName, primShape, size, lod, false, true);
-- 
cgit v1.1


From 477bee6468f35ca9264fc8f752a9124e32503901 Mon Sep 17 00:00:00 2001
From: dahlia
Date: Sat, 18 May 2013 11:15:05 -0700
Subject: remove duplicate hull scaling

---
 OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 825e622..a57146c 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -396,9 +396,9 @@ namespace OpenSim.Region.Physics.Meshing
                                     ushort uZ = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
 
                                     Vector3 pos = new Vector3(
-                                        Utils.UInt16ToFloat(uX, min.X, max.X) * size.X,
-                                        Utils.UInt16ToFloat(uY, min.Y, max.Y) * size.Y,
-                                        Utils.UInt16ToFloat(uZ, min.Z, max.Z) * size.Z
+                                        Utils.UInt16ToFloat(uX, min.X, max.X),
+                                        Utils.UInt16ToFloat(uY, min.Y, max.Y),
+                                        Utils.UInt16ToFloat(uZ, min.Z, max.Z)
                                     );
 
                                     hull.Add(pos);
-- 
cgit v1.1


From e65d1e459eb875cb2d0d5f9aa6042c640daa19fd Mon Sep 17 00:00:00 2001
From: dahlia
Date: Sat, 18 May 2013 13:11:22 -0700
Subject: fix error in hull point indexing

---
 OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index a57146c..79edc12 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -389,7 +389,7 @@ namespace OpenSim.Region.Physics.Meshing
                                 int count = cnt == 0 ? 256 : cnt;
                                 List<Vector3> hull = new List<Vector3>();
                                 
-                                for (int i = 0; i < cnt; i++)
+                                for (int i = 0; i < count; i++)
                                 {
                                     ushort uX = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
                                     ushort uY = Utils.BytesToUInt16(posBytes, posNdx); posNdx += 2;
-- 
cgit v1.1


From 6ae426c96ba0bfdad9e884364f5b6be5b4cd61a9 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 17:25:06 +0100
Subject: Lock m_UserCache whilst iterating over it in
 UserManagementModule.GetUserData() to avoid concurrency exceptions

---
 .../Framework/UserManagement/UserManagementModule.cs        | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 6847e57..d99c8eb 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -246,10 +246,15 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             }
 
             // search the local cache
-            foreach (UserData data in m_UserCache.Values)
-                if (users.Find(delegate(UserData d) { return d.Id == data.Id; }) == null &&
-                    (data.FirstName.ToLower().StartsWith(query.ToLower()) || data.LastName.ToLower().StartsWith(query.ToLower())))
-                    users.Add(data);
+            lock (m_UserCache)
+            {
+                foreach (UserData data in m_UserCache.Values)
+                {
+                    if (users.Find(delegate(UserData d) { return d.Id == data.Id; }) == null &&
+                        (data.FirstName.ToLower().StartsWith(query.ToLower()) || data.LastName.ToLower().StartsWith(query.ToLower())))
+                        users.Add(data);
+                }
+            }
 
             AddAdditionalUsers(query, users);
 
-- 
cgit v1.1


From c47de9878dd8af19fa9b4322a8a49646712ebf9b Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 17:45:15 +0100
Subject: Log when "Unknown User" is sent to a user because the UMM had no
 binding for that UUID and when a binding replaces a previous "Unknown User"
 entry.

This is a temporary measure to hunt down issues where some but not all users see others as "Unknown user" in text chat, etc.
http://opensimulator.org/mantis/view.php?id=6625
---
 .../UserManagement/UserManagementModule.cs         | 49 ++++++++++++++--------
 1 file changed, 32 insertions(+), 17 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index d99c8eb..06f1712 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -157,13 +157,16 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             }
             else
             {
-                string[] names = GetUserNames(uuid);
+                string[] names;
+                bool foundRealName = TryGetUserNames(uuid, out names);
+
                 if (names.Length == 2)
                 {
-                    //m_log.DebugFormat("[XXX] HandleUUIDNameRequest {0} is {1} {2}", uuid, names[0], names[1]);
+                    if (!foundRealName)
+                        m_log.DebugFormat("[USER MANAGEMENT MODULE]: Sending {0} {1} for {2} to {3} since no bound name found", names[0], names[1], uuid, remote_client.Name);
+
                     remote_client.SendNameReply(uuid, names[0], names[1]);
                 }
-
             }
         }
 
@@ -277,17 +280,24 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             }
         }
 
-        private string[] GetUserNames(UUID uuid)
+        /// <summary>
+        /// Try to get the names bound to the given uuid.
+        /// </summary>
+        /// <returns>True if the name was found, false if not.</returns>
+        /// <param name='uuid'></param>
+        /// <param name='names'>The array of names if found.  If not found, then names[0] = "Unknown" and names[1] = "User"</param>
+        private bool TryGetUserNames(UUID uuid, out string[] names)
         {
-            string[] returnstring = new string[2];
+            names = new string[2];
 
             lock (m_UserCache)
             {
                 if (m_UserCache.ContainsKey(uuid))
                 {
-                    returnstring[0] = m_UserCache[uuid].FirstName;
-                    returnstring[1] = m_UserCache[uuid].LastName;
-                    return returnstring;
+                    names[0] = m_UserCache[uuid].FirstName;
+                    names[1] = m_UserCache[uuid].LastName;
+
+                    return true;
                 }
             }
 
@@ -295,8 +305,8 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
 
             if (account != null)
             {
-                returnstring[0] = account.FirstName;
-                returnstring[1] = account.LastName;
+                names[0] = account.FirstName;
+                names[1] = account.LastName;
 
                 UserData user = new UserData();
                 user.FirstName = account.FirstName;
@@ -304,14 +314,16 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
 
                 lock (m_UserCache)
                     m_UserCache[uuid] = user;
+
+                return true;
             }
             else
             {
-                returnstring[0] = "Unknown";
-                returnstring[1] = "User";
-            }
+                names[0] = "Unknown";
+                names[1] = "User";
 
-            return returnstring;
+                return false;
+            }
         }
 
         #region IUserManagement
@@ -347,15 +359,17 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
 
         public string GetUserName(UUID uuid)
         {
-            string[] names = GetUserNames(uuid);
+            string[] names;
+            TryGetUserNames(uuid, out names);
+
             if (names.Length == 2)
             {
                 string firstname = names[0];
                 string lastname = names[1];
 
                 return firstname + " " + lastname;
-
             }
+
             return "(hippos)";
         }
 
@@ -471,12 +485,13 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
                         //ignore updates without creator data
                         return;
                     }
+
                     //try update unknown users
                     //and creator's home URL's
                     if ((oldUser.FirstName == "Unknown" && !creatorData.Contains ("Unknown")) || (oldUser.HomeURL != null && !creatorData.StartsWith (oldUser.HomeURL)))
                     {
                         m_UserCache.Remove (id);
-//                      m_log.DebugFormat("[USER MANAGEMENT MODULE]: Re-adding user with id {0}, creatorData [{1}] and old HomeURL {2}", id, creatorData,oldUser.HomeURL);
+                        m_log.DebugFormat("[USER MANAGEMENT MODULE]: Re-adding user with id {0}, creatorData [{1}] and old HomeURL {2}", id, creatorData, oldUser.HomeURL);
                     }
                     else
                     {
-- 
cgit v1.1


From 6edecd5d94949873411b0625928b4f0ad0e01f9a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 18:00:41 +0100
Subject: Add "show name" console command to make it possible to show a single
 binding of a UUID to a name.

---
 .../UserManagement/UserManagementModule.cs         | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 06f1712..48ec12f 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -568,6 +568,13 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
         protected void RegisterConsoleCmds()
         {
             MainConsole.Instance.Commands.AddCommand("Users", true,
+                "show name",
+                "show name <uuid>",
+                "Show the bindings between a single user UUID and a user name",
+                String.Empty,
+                HandleShowUser);
+
+            MainConsole.Instance.Commands.AddCommand("Users", true,
                 "show names",
                 "show names",
                 "Show the bindings between user UUIDs and user names",
@@ -575,6 +582,33 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
                 HandleShowUsers);
         }
 
+        private void HandleShowUser(string module, string[] cmd)
+        {
+            if (cmd.Length < 3)
+            {
+                MainConsole.Instance.OutputFormat("Usage: show name <uuid>");
+                return;
+            }
+
+            UUID userId;
+            if (!ConsoleUtil.TryParseConsoleUuid(MainConsole.Instance, cmd[2], out userId))
+                return;
+
+            string[] names;
+            if (!TryGetUserNames(userId, out names))
+            {
+                MainConsole.Instance.OutputFormat("No name known for user with id {0}", userId);
+                return;
+            }
+
+            ConsoleDisplayTable cdt = new ConsoleDisplayTable();
+            cdt.AddColumn("UUID", 36);
+            cdt.AddColumn("Name", 60);
+            cdt.AddRow(userId, string.Join(" ", names));
+
+            MainConsole.Instance.Output(cdt.ToString());
+        }
+
         private void HandleShowUsers(string module, string[] cmd)
         {
             lock (m_UserCache)
-- 
cgit v1.1


From 5c8d38d6cf00ea8e53ff52ac5eafde40ee94b68e Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 18:10:42 +0100
Subject: minor: Change "show names" command to use consistent console display
 table

---
 .../UserManagement/UserManagementModule.cs         | 24 ++++++++--------------
 1 file changed, 9 insertions(+), 15 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 48ec12f..d75a85f 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -603,7 +603,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
 
             ConsoleDisplayTable cdt = new ConsoleDisplayTable();
             cdt.AddColumn("UUID", 36);
-            cdt.AddColumn("Name", 60);
+            cdt.AddColumn("Name", 30);
             cdt.AddRow(userId, string.Join(" ", names));
 
             MainConsole.Instance.Output(cdt.ToString());
@@ -611,24 +611,18 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
 
         private void HandleShowUsers(string module, string[] cmd)
         {
+            ConsoleDisplayTable cdt = new ConsoleDisplayTable();
+            cdt.AddColumn("UUID", 36);
+            cdt.AddColumn("Name", 30);
+            cdt.AddColumn("HomeURL", 40);
+
             lock (m_UserCache)
             {
-                if (m_UserCache.Count == 0)
-                {
-                    MainConsole.Instance.Output("No users found");
-                    return;
-                }
-    
-                MainConsole.Instance.Output("UUID                                 User Name");
-                MainConsole.Instance.Output("-----------------------------------------------------------------------------");
                 foreach (KeyValuePair<UUID, UserData> kvp in m_UserCache)
-                {
-                    MainConsole.Instance.Output(String.Format("{0} {1} {2} ({3})",
-                           kvp.Key, kvp.Value.FirstName, kvp.Value.LastName, kvp.Value.HomeURL));
-                }
-    
-                return;
+                    cdt.AddRow(kvp.Key, string.Format("{0} {1}", kvp.Value.FirstName, kvp.Value.LastName), kvp.Value.HomeURL);
             }
+
+            MainConsole.Instance.Output(cdt.ToString());
         }
     }
 }
\ No newline at end of file
-- 
cgit v1.1


From 434c3cf83b09fbbf4b3d20b079597a40d63bae2f Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 18:15:22 +0100
Subject: Make "show name" command display HomeURL like "show names"

---
 .../Framework/UserManagement/UserManagementModule.cs      | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index d75a85f..f8f4235 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -595,16 +595,23 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
                 return;
 
             string[] names;
-            if (!TryGetUserNames(userId, out names))
+
+            UserData ud;
+
+            lock (m_UserCache)
             {
-                MainConsole.Instance.OutputFormat("No name known for user with id {0}", userId);
-                return;
+                if (!m_UserCache.TryGetValue(userId, out ud))
+                {
+                    MainConsole.Instance.OutputFormat("No name known for user with id {0}", userId);
+                    return;
+                }
             }
 
             ConsoleDisplayTable cdt = new ConsoleDisplayTable();
             cdt.AddColumn("UUID", 36);
             cdt.AddColumn("Name", 30);
-            cdt.AddRow(userId, string.Join(" ", names));
+            cdt.AddColumn("HomeURL", 40);
+            cdt.AddRow(userId, string.Join(" ", ud.FirstName, ud.LastName), ud.HomeURL);
 
             MainConsole.Instance.Output(cdt.ToString());
         }
-- 
cgit v1.1


From ba6a6b2d4021160a68dec906b3a0b3930e870a51 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 18:18:16 +0100
Subject: Fix compile failure from recent git master 434c3cf

---
 .../Region/CoreModules/Framework/UserManagement/UserManagementModule.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index f8f4235..806f5e5 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -611,7 +611,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             cdt.AddColumn("UUID", 36);
             cdt.AddColumn("Name", 30);
             cdt.AddColumn("HomeURL", 40);
-            cdt.AddRow(userId, string.Join(" ", ud.FirstName, ud.LastName), ud.HomeURL);
+            cdt.AddRow(userId, string.Format("{0} {1}", ud.FirstName, ud.LastName), ud.HomeURL);
 
             MainConsole.Instance.Output(cdt.ToString());
         }
-- 
cgit v1.1


From 06ab16889744ab3f3cef7d698b19408368711194 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 21 May 2013 22:26:15 +0100
Subject: To further help with tracking down the apperance of too much "Unknown
 User" in chatlogs, etc. temporarily change each instance of this in
 OpenSimulator so we can identify where it's coming from

For instance, the "Unknown User" in Util.ParseUniversalUserIdenitifer becaomes "Unknown UserUPUUI (class initials + method initials)
This is to help with http://opensimulator.org/mantis/view.php?id=6625
---
 OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs            | 4 ++--
 OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs          | 2 +-
 .../CoreModules/Framework/UserManagement/UserManagementModule.cs      | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 8056030..4613344 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -371,7 +371,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
             foreach (string fid in outstanding)
             {
                 UUID fromAgentID;
-                string firstname = "Unknown", lastname = "User";
+                string firstname = "Unknown", lastname = "UserFMSFOIN";
                 if (!GetAgentInfo(client.Scene.RegionInfo.ScopeID, fid, out fromAgentID, out firstname, out lastname))
                 {
                     m_log.DebugFormat("[FRIENDS MODULE]: skipping malformed friend {0}", fid);
@@ -397,7 +397,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
 
         protected virtual bool GetAgentInfo(UUID scopeID, string fid, out UUID agentID, out string first, out string last)
         {
-            first = "Unknown"; last = "User";
+            first = "Unknown"; last = "UserFMGAI";
             if (!UUID.TryParse(fid, out agentID))
                 return false;
 
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs
index bf5c0bb..b3e3aa2 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs
@@ -293,7 +293,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
 
         protected override bool GetAgentInfo(UUID scopeID, string fid, out UUID agentID, out string first, out string last)
         {
-            first = "Unknown"; last = "User";
+            first = "Unknown"; last = "UserHGGAI";
             if (base.GetAgentInfo(scopeID, fid, out agentID, out first, out last))
                 return true;
 
diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 806f5e5..a720d7b 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -320,7 +320,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             else
             {
                 names[0] = "Unknown";
-                names[1] = "User";
+                names[1] = "UserUMMTGUN";
 
                 return false;
             }
@@ -536,7 +536,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
                     else
                     {
                         user.FirstName = "Unknown";
-                        user.LastName = "User";
+                        user.LastName = "UserUMMAU";
                     }
 
                     AddUserInternal (user);
-- 
cgit v1.1