Mercurial > dovecot > core-2.2
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;