[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