From c3c1e248ad3ee74834f669dee06ac5a971daa7e5 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Wed, 12 Nov 2003 22:35:50 +0000 Subject: show locked files for -u ; bug 590 (This used to be commit d72d77c42741714f2e32d0e24e706929242f1c62) --- source3/utils/status.c | 51 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 10 deletions(-) (limited to 'source3/utils/status.c') diff --git a/source3/utils/status.c b/source3/utils/status.c index c17e080b6b..54dce1ecf0 100644 --- a/source3/utils/status.c +++ b/source3/utils/status.c @@ -35,10 +35,12 @@ #include "includes.h" -static pstring Ucrit_username = ""; /* added by OH */ -static pid_t Ucrit_pid[100]; /* Ugly !!! */ /* added by OH */ -static int Ucrit_MaxPid=0; /* added by OH */ -static unsigned int Ucrit_IsActive = 0; /* added by OH */ +#define SMB_MAXPIDS 2048 +static pstring Ucrit_username = ""; /* added by OH */ +static pid_t Ucrit_pid[SMB_MAXPIDS]; /* Ugly !!! */ /* added by OH */ +static int Ucrit_MaxPid=0; /* added by OH */ +static unsigned int Ucrit_IsActive = 0; /* added by OH */ + static int verbose, brief; static int shares_only = 0; /* Added by RJS */ static int locks_only = 0; /* Added by RJS */ @@ -49,26 +51,53 @@ static int show_brl; static void Ucrit_addUsername(const char *username) { pstrcpy(Ucrit_username, username); - if(strlen(Ucrit_username) > 0) + + if ( strlen(Ucrit_username) > 0 ) Ucrit_IsActive = 1; } static unsigned int Ucrit_checkUsername(const char *username) { - if ( !Ucrit_IsActive) return 1; - if (strcmp(Ucrit_username,username) ==0) return 1; + if ( !Ucrit_IsActive ) + return 1; + + if ( strcmp(Ucrit_username,username) == 0 ) + return 1; + return 0; } static unsigned int Ucrit_checkPid(pid_t pid) { int i; - if ( !Ucrit_IsActive) return 1; - for (i=0;i= SMB_MAXPIDS ) { + d_printf("ERROR: More than %d pids for user %s!\n", + SMB_MAXPIDS, Ucrit_username); + + return False; + } + + Ucrit_pid[Ucrit_MaxPid++] = pid; + + return True; +} static void print_share_mode(share_mode_entry *e, char *fname) { @@ -526,6 +555,8 @@ static int traverse_sessionid(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, vo return 0; } + Ucrit_addPid( sessionid.pid ); + d_printf("%5d %-12s %-12s %-12s (%s)\n", (int)sessionid.pid, uidtoname(sessionid.uid), gidtoname(sessionid.gid), sessionid.remote_machine, sessionid.hostname); -- cgit