summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Baumbach <bb@sernet.de>2013-07-09 12:32:34 +0200
committerJeremy Allison <jra@samba.org>2013-07-10 01:18:30 +0200
commit577cef82c776759c9f3cad7d33057ac865c40769 (patch)
treed6ff41abd0c693a24a98f5fdb7743bd0f4b5a85a
parentc52e61f7ba215da28cbb7b8e328aea110ad79b11 (diff)
downloadsamba-577cef82c776759c9f3cad7d33057ac865c40769.tar.gz
samba-577cef82c776759c9f3cad7d33057ac865c40769.tar.bz2
samba-577cef82c776759c9f3cad7d33057ac865c40769.zip
s3-smbstatus: display [u|g]id of -1 as "-1" in connection list
In order to avoid displayed uid or gid of "4294967295" instead of "-1", we need to fetch the special case -1. The id can be -1 if we are reading e.g. incomplete session information. Signed-off-by: Björn Baumbach <bb@sernet.de> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Wed Jul 10 01:18:30 CEST 2013 on sn-devel-104
-rw-r--r--source3/utils/status.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/source3/utils/status.c b/source3/utils/status.c
index f4b5f4e2c3..be7c52fac4 100644
--- a/source3/utils/status.c
+++ b/source3/utils/status.c
@@ -283,13 +283,29 @@ static int traverse_sessionid(const char *key, struct sessionid *session,
Ucrit_addPid(session->pid);
- fstr_sprintf(uid_str, "%u", (unsigned int)session->uid);
- fstr_sprintf(gid_str, "%u", (unsigned int)session->gid);
+ fstrcpy(uid_str, "-1");
+
+ if (session->uid != -1) {
+ if (numeric_only) {
+ fstr_sprintf(uid_str, "%u", (unsigned int)session->uid);
+ } else {
+ fstrcpy(uid_str, uidtoname(session->uid));
+ }
+ }
+
+ fstrcpy(gid_str, "-1");
+
+ if (session->gid != -1) {
+ if (numeric_only) {
+ fstr_sprintf(gid_str, "%u", (unsigned int)session->gid);
+ } else {
+ fstrcpy(gid_str, gidtoname(session->gid));
+ }
+ }
d_printf("%-7s %-12s %-12s %-12s (%s)\n",
procid_str_static(&session->pid),
- numeric_only ? uid_str : uidtoname(session->uid),
- numeric_only ? gid_str : gidtoname(session->gid),
+ uid_str, gid_str,
session->remote_machine, session->hostname);
return 0;