[PATCH 2/2] winbindd: Add the client status in the clients list output

Pierre Carrier work at gcarrier.fr
Sun Aug 22 17:53:40 MDT 2010


From: Pierre Carrier <geoffroy.carrier at gmail.com>

Hello list,

Considered relevant by a customer.
As I suppose one doesn't send SIGUSR2 very often, I didn't bother adding another DEBUGLEVEL.

-- 
Pierre
---
 source3/winbindd/winbindd.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index 47e09aa..e1c8bad 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -34,6 +34,7 @@
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
 
+static inline bool client_is_idle(struct winbindd_cli_state *state);
 static void remove_client(struct winbindd_cli_state *state);
 
 static bool opt_nocache = False;
@@ -93,8 +94,9 @@ static void winbindd_status(void)
 	if (DEBUGLEVEL >= 2 && winbindd_num_clients()) {
 		DEBUG(2, ("\tclient list:\n"));
 		for(tmp = winbindd_client_list(); tmp; tmp = tmp->next) {
-			DEBUGADD(2, ("\t\tpid %lu, sock %d\n",
-				  (unsigned long)tmp->pid, tmp->sock));
+			DEBUGADD(2, ("\t\tpid %lu, sock %d (%s)\n",
+				  (unsigned long)tmp->pid, tmp->sock),
+				  client_is_idle(tmp) ? "idle" : "active");
 		}
 	}
 }
@@ -862,6 +864,13 @@ static void remove_client(struct winbindd_cli_state *state)
 	TALLOC_FREE(state);
 }
 
+/* Is a client idle? */
+
+static inline bool client_is_idle(struct winbindd_cli_state *state) {
+  return (state->response == NULL &&
+    !state->pwent_state && !state->grent_state);
+}
+
 /* Shutdown client connection which has been idle for the longest time */
 
 static bool remove_idle_client(void)
@@ -871,8 +880,7 @@ static bool remove_idle_client(void)
 	int nidle = 0;
 
 	for (state = winbindd_client_list(); state; state = state->next) {
-		if (state->response == NULL &&
-		    !state->pwent_state && !state->grent_state) {
+		if (client_is_idle(state)) {
 			nidle++;
 			if (!last_access || state->last_access < last_access) {
 				last_access = state->last_access;
-- 
1.7.1.1



More information about the samba-technical mailing list