diff --git a/src/server/serve.c b/src/server/serve.c index 3a86c3a..b7b8e44 100644 --- a/src/server/serve.c +++ b/src/server/serve.c @@ -332,6 +332,8 @@ int server_count_clients( struct server *params ) { NULLCHECK( params ); int i, count = 0; + + cleanup_client_threads( params->nbd_client, params->max_nbd_clients ); for ( i = 0 ; i < params->max_nbd_clients ; i++ ) { if ( params->nbd_client[i].thread != 0 ) { diff --git a/tests/acceptance/test_serve_mode.rb b/tests/acceptance/test_serve_mode.rb index 6c3e3f6..5bc3eb5 100644 --- a/tests/acceptance/test_serve_mode.rb +++ b/tests/acceptance/test_serve_mode.rb @@ -207,4 +207,14 @@ class TestServeMode < Test::Unit::TestCase 'TCP keepalive count not set to 3') end end + + def test_status_returns_correct_client_count + require 'pp' + connect_to_server do |client| + status = @env.status1 + assert_equal('1', status['num_clients']) + end + status = @env.status1 + assert_equal('0', status['num_clients']) + end end