# HG changeset patch # User Josef 'Jeff' Sipek # Date 1487167985 18000 # Node ID 437d6269a5b121d861775fd5c20146b68de4dc5c # Parent b1fd9a5366bf77b1f725459280482087d74df47a lib-imap-client: invoke state change callback on "authentication success" diff -r b1fd9a5366bf -r 437d6269a5b1 src/lib-imap-client/imapc-client.h --- 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, }; diff -r b1fd9a5366bf -r 437d6269a5b1 src/lib-imap-client/imapc-connection.c --- 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);