From 044a32cef29b06d49ed0f5c76a61ca3b7ef206c9 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sun, 8 Apr 2018 15:31:37 +0200 Subject: [PATCH] lib-smtp: test-smtp-server-errors: Implicitly stop server when all expected client connections are closed. --- src/lib-smtp/test-smtp-server-errors.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib-smtp/test-smtp-server-errors.c b/src/lib-smtp/test-smtp-server-errors.c index e337e50699..6e3a707e15 100644 --- a/src/lib-smtp/test-smtp-server-errors.c +++ b/src/lib-smtp/test-smtp-server-errors.c @@ -55,6 +55,7 @@ static struct smtp_server *smtp_server = NULL; static struct io *io_listen; static int fd_listen = -1; static struct smtp_server_callbacks server_callbacks; +static unsigned int server_pending; /* client */ static pid_t *client_pids = NULL; @@ -1409,6 +1410,8 @@ static void server_connection_destroy(void *context) if (debug) i_debug("Connection destroyed"); + if (--server_pending == 0) + io_loop_stop(ioloop); i_free(sconn); } @@ -1574,6 +1577,7 @@ static void test_run_client_server( i_zero(&server_callbacks); + server_pending = client_tests_count; ioloop = io_loop_create(); server_test(server_set); io_loop_destroy(&ioloop);