changeset 21884:9c063576224a

lib-imap-client: Add imapc_client_try_stop
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Fri, 31 Mar 2017 09:59:02 +0300
parents 45e5e6ea89ae
children f77c4615bc7c
files src/lib-imap-client/imapc-client-private.h src/lib-imap-client/imapc-client.c
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap-client/imapc-client-private.h	Thu Mar 30 16:09:06 2017 +0300
+++ b/src/lib-imap-client/imapc-client-private.h	Fri Mar 31 09:59:02 2017 +0300
@@ -50,5 +50,6 @@
 
 void imapc_command_set_mailbox(struct imapc_command *cmd,
 			       struct imapc_client_mailbox *box);
+void imapc_client_try_stop(struct imapc_client *client);
 
 #endif
--- a/src/lib-imap-client/imapc-client.c	Thu Mar 30 16:09:06 2017 +0300
+++ b/src/lib-imap-client/imapc-client.c	Fri Mar 31 09:59:02 2017 +0300
@@ -201,6 +201,15 @@
 		io_loop_stop(client->ioloop);
 }
 
+void imapc_client_try_stop(struct imapc_client *client)
+{
+	struct imapc_client_connection *const *connp;
+	array_foreach(&client->conns, connp)
+		if (imapc_connection_get_state((*connp)->conn) != IMAPC_CONNECTION_STATE_DISCONNECTED)
+			return;
+	imapc_client_stop(client);
+}
+
 bool imapc_client_is_running(struct imapc_client *client)
 {
 	return client->ioloop != NULL;