diff --git a/src/server/connections.c b/src/server/connections.c index 2f550444207115a4969c88b1d8a2ee60e32c6bc3..30d3fe192ff0cd6f2534e6ba1820cbda58e7be65 100644 --- a/src/server/connections.c +++ b/src/server/connections.c @@ -57,7 +57,7 @@ BUGDECL; -void +static void logout_client(Connection *cp) { Connection *real_active_connection; @@ -111,6 +111,32 @@ logout_client(Connection *cp) kill_client(cp); /* Free the Connection */ } +/* + * This function is part of the shutdown tidy-up sequence. + */ +void +logout_all_clients(void) +{ + Session_no sess = 0; + Connection *conn; + + while ( (sess = traverse_connections (sess)) != 0) + { + conn = get_conn_by_number (sess); + + if ( conn == NULL ) + restart_kom("logout_all_clients(): cant get session %d.\n", + sess); + else + logout_client (conn); + } + + if ( traverse_connections (0) != 0) + restart_kom("logout_all_clients(): traverse_connections(0) == %d.\n", + traverse_connections(0)); +} + +