From a6c175ed1d8b105394ae2896754963b619d7582a Mon Sep 17 00:00:00 2001 From: nick Date: Mon, 23 Sep 2013 13:37:13 +0100 Subject: [PATCH] serve: Allow number of clients currently being used to be counted --- src/serve.c | 14 ++++++++++++++ src/serve.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/serve.c b/src/serve.c index 0d52571..bf99766 100644 --- a/src/serve.c +++ b/src/serve.c @@ -326,6 +326,20 @@ int cleanup_and_find_client_slot(struct server* params) return slot; } +int server_count_clients( struct server *params ) +{ + NULLCHECK( params ); + int i, count = 0; + + for ( i = 0 ; i < params->max_nbd_clients ; i++ ) { + if ( params->nbd_client[i].thread != 0 ) { + count++; + } + } + + return count; +} + /** Check whether the address client_address is allowed or not according * to the current acl. If params->acl is NULL, the result will be 1, diff --git a/src/serve.h b/src/serve.h index 48e41b2..4a22d7a 100644 --- a/src/serve.h +++ b/src/serve.h @@ -137,6 +137,9 @@ void server_close_clients( struct server *serve ); void server_join_clients( struct server *serve ); void server_allow_new_clients( struct server *serve ); +/* Returns a count (ish) of the number of currently-running client threads */ +int server_count_clients( struct server *params ); + void server_unlink( struct server * serve ); int do_serve( struct server *, struct self_pipe * );