From f675d465b27bfecab59213bd19c6e070a6482f88 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 27 Apr 2013 10:34:13 -0700 Subject: Make method virtual --- OpenSim/Services/UserAccountService/GridUserService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index 43fa04b..8388180 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -73,7 +73,7 @@ namespace OpenSim.Services.UserAccountService return info; } - public GridUserInfo[] GetGridUserInfo(string[] userIDs) + public virtual GridUserInfo[] GetGridUserInfo(string[] userIDs) { List ret = new List(); -- cgit v1.1 From e984bfb4c63718d5176b17f6beea46f4512cf304 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 2 Jul 2013 14:31:39 -0700 Subject: This should have a strong effect on the Unknown User issue mantis #6625 --- OpenSim/Services/UserAccountService/GridUserService.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index 8388180..62b82fe 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -51,7 +51,22 @@ namespace OpenSim.Services.UserAccountService public virtual GridUserInfo GetGridUserInfo(string userID) { - GridUserData d = m_Database.Get(userID); + GridUserData d = null; + if (userID.Length > 36) // it's a UUI + d = m_Database.Get(userID); + else // it's a UUID + { + GridUserData[] ds = m_Database.GetAll(userID); + if (ds == null) + return null; + if (ds.Length > 0) + { + d = ds[0]; + foreach (GridUserData dd in ds) + if (dd.UserID.Length > d.UserID.Length) // find the longest + d = dd; + } + } if (d == null) return null; -- cgit v1.1 From 626940ceb83102a6aa0eebb81e10c86f1feb8eff Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 2 Jul 2013 15:39:10 -0700 Subject: More debug messages --- OpenSim/Services/UserAccountService/GridUserService.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index 62b82fe..af2701d 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -46,7 +46,7 @@ namespace OpenSim.Services.UserAccountService public GridUserService(IConfigSource config) : base(config) { - m_log.Debug("[USER GRID SERVICE]: Starting user grid service"); + m_log.Debug("[GRID USER SERVICE]: Starting user grid service"); } public virtual GridUserInfo GetGridUserInfo(string userID) @@ -58,13 +58,17 @@ namespace OpenSim.Services.UserAccountService { GridUserData[] ds = m_Database.GetAll(userID); if (ds == null) + { + m_log.DebugFormat("[GRID USER SERVICE]: user not found {0}", userID); return null; + } if (ds.Length > 0) { d = ds[0]; foreach (GridUserData dd in ds) if (dd.UserID.Length > d.UserID.Length) // find the longest d = dd; + m_log.DebugFormat("[GRID USER SERVICE]: Found user {0}", d.UserID); } } -- cgit v1.1 From 4d24bf75fd695a12683987d9803018c2ec4cae60 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 2 Jul 2013 16:46:35 -0700 Subject: Deleted debug messages. Fixed a null ref exception on the POST handler of GridUserServerPostHandler.cs --- OpenSim/Services/UserAccountService/GridUserService.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index af2701d..fa9a4a8 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -58,17 +58,14 @@ namespace OpenSim.Services.UserAccountService { GridUserData[] ds = m_Database.GetAll(userID); if (ds == null) - { - m_log.DebugFormat("[GRID USER SERVICE]: user not found {0}", userID); return null; - } + if (ds.Length > 0) { d = ds[0]; foreach (GridUserData dd in ds) if (dd.UserID.Length > d.UserID.Length) // find the longest d = dd; - m_log.DebugFormat("[GRID USER SERVICE]: Found user {0}", d.UserID); } } -- cgit v1.1 From 803e5498b09c241a8bab8e8deeeff3a259766c2d Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 6 Jul 2013 18:27:03 -0700 Subject: A little more debug --- OpenSim/Services/UserAccountService/GridUserService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index fa9a4a8..b1cdd45 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -156,7 +156,7 @@ namespace OpenSim.Services.UserAccountService public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt) { - //m_log.DebugFormat("[Grid User Service]: SetLastPosition for {0}", userID); + m_log.DebugFormat("[GRID USER SERVICE]: SetLastPosition for {0}", userID); GridUserData d = m_Database.Get(userID); if (d == null) { -- cgit v1.1 From 4035badd20c00c766a1262afd7fa730ea6c53e98 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 00:04:12 +0100 Subject: Add experimental "show grid users online" console command to show grid users online from a standalone/robust instance. This is not guaranteed to be accurate since users may be left "online" in certain situations. For example, if a simulator crashes and they never login/logout again. To counter this somewhat, only users continuously online for less than 5 days are shown. --- .../Services/UserAccountService/GridUserService.cs | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index b1cdd45..f9cfa12 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -47,6 +47,45 @@ namespace OpenSim.Services.UserAccountService public GridUserService(IConfigSource config) : base(config) { m_log.Debug("[GRID USER SERVICE]: Starting user grid service"); + + MainConsole.Instance.Commands.AddCommand( + "Users", false, + "show grid users online", + "show grid users online", + "Show number of grid users registered as online.", + "This number may not be accurate as a region may crash or not be cleanly shutdown and leave grid users shown as online\n." + + "For this reason, users online for more than 5 days are not currently counted", + HandleShowGridUsersOnline); + } + + protected void HandleShowGridUsersOnline(string module, string[] cmdparams) + { +// if (cmdparams.Length != 4) +// { +// MainConsole.Instance.Output("Usage: show grid users online"); +// return; +// } + +// int onlineCount; + int onlineRecentlyCount = 0; + + DateTime now = DateTime.UtcNow; + + foreach (GridUserData gu in m_Database.GetAll("")) + { + if (bool.Parse(gu.Data["Online"])) + { +// onlineCount++; + + int unixLoginTime = int.Parse(gu.Data["Login"]); + DateTime loginDateTime = Util.UnixEpoch.AddSeconds(unixLoginTime); + + if ((loginDateTime - now).Days < 5) + onlineRecentlyCount++; + } + } + + MainConsole.Instance.OutputFormat("Users online within last 5 days: {0}", onlineRecentlyCount); } public virtual GridUserInfo GetGridUserInfo(string userID) -- cgit v1.1 From 5f15ee95dc140ba775c4db801a72f6623e408b0f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Sep 2013 00:16:43 +0100 Subject: Fix logic errors in "show grid users online" console command which didn't actually filter out users shown continuously online for more than 5 days Remove confusion in command output. --- OpenSim/Services/UserAccountService/GridUserService.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index f9cfa12..944411f 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -78,14 +78,13 @@ namespace OpenSim.Services.UserAccountService // onlineCount++; int unixLoginTime = int.Parse(gu.Data["Login"]); - DateTime loginDateTime = Util.UnixEpoch.AddSeconds(unixLoginTime); - if ((loginDateTime - now).Days < 5) + if ((now - Util.ToDateTime(unixLoginTime)).Days < 5) onlineRecentlyCount++; } } - MainConsole.Instance.OutputFormat("Users online within last 5 days: {0}", onlineRecentlyCount); + MainConsole.Instance.OutputFormat("Users online: {0}", onlineRecentlyCount); } public virtual GridUserInfo GetGridUserInfo(string userID) -- cgit v1.1 From fb23f78928c72cdaab1e33270f4c732690e10714 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 5 Nov 2013 23:18:09 +0000 Subject: minor: comment out "SetLastPosition" GridUserService debug message for now. --- OpenSim/Services/UserAccountService/GridUserService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/UserAccountService/GridUserService.cs') diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs index 944411f..bef1691 100644 --- a/OpenSim/Services/UserAccountService/GridUserService.cs +++ b/OpenSim/Services/UserAccountService/GridUserService.cs @@ -194,7 +194,8 @@ namespace OpenSim.Services.UserAccountService public bool SetLastPosition(string userID, UUID sessionID, UUID regionID, Vector3 lastPosition, Vector3 lastLookAt) { - m_log.DebugFormat("[GRID USER SERVICE]: SetLastPosition for {0}", userID); +// m_log.DebugFormat("[GRID USER SERVICE]: SetLastPosition for {0}", userID); + GridUserData d = m_Database.Get(userID); if (d == null) { -- cgit v1.1