Mercurial > dovecot > core-2.2
changeset 21564:437d6269a5b1
lib-imap-client: invoke state change callback on "authentication success"
author | Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
---|---|
date | Wed, 15 Feb 2017 09:13:05 -0500 |
parents | b1fd9a5366bf |
children | c6ed855ff6c9 |
files | src/lib-imap-client/imapc-client.h src/lib-imap-client/imapc-connection.c |
diffstat | 2 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-imap-client/imapc-client.h Wed Feb 15 09:12:35 2017 -0500 +++ b/src/lib-imap-client/imapc-client.h Wed Feb 15 09:13:05 2017 -0500 @@ -147,6 +147,7 @@ }; enum imapc_state_change_event { + IMAPC_STATE_CHANGE_AUTH_OK, IMAPC_STATE_CHANGE_AUTH_FAILED, };
--- a/src/lib-imap-client/imapc-connection.c Wed Feb 15 09:12:35 2017 -0500 +++ b/src/lib-imap-client/imapc-connection.c Wed Feb 15 09:13:05 2017 -0500 @@ -142,6 +142,19 @@ static void imapc_command_send_more(struct imapc_connection *conn); static void +imapc_auth_ok(struct imapc_connection *conn) +{ + if (conn->client->set.debug) + i_debug("imapc(%s): Authenticated successfully", conn->name); + + if (conn->client->state_change_callback == NULL) + return; + + conn->client->state_change_callback(conn->client->state_change_context, + IMAPC_STATE_CHANGE_AUTH_OK, NULL); +} + +static void imapc_auth_failed(struct imapc_connection *conn, const char *error) { @@ -785,8 +798,7 @@ return; } - if (conn->client->set.debug) - i_debug("imapc(%s): Authenticated successfully", conn->name); + imapc_auth_ok(conn); timeout_remove(&conn->to); imapc_connection_set_state(conn, IMAPC_CONNECTION_STATE_DONE);