return t_strdup_printf("disconnected while finishing login, "
"waited %u secs", auth_secs);
}
- if (client->auth_try_aborted && client->auth_attempts == 1)
- return "aborted authentication";
+ if (client->auth_aborted_by_client && client->auth_attempts == 1)
+ return "auth aborted by client";
if (client->auth_process_comm_fail)
return "auth process communication failure";
bool authenticating:1;
/* SASL authentication is waiting for client to send a continuation */
bool auth_client_continue_pending:1;
- bool auth_try_aborted:1;
+ /* Client asked for SASL authentication to be aborted by sending
+ "*" line. */
+ bool auth_aborted_by_client:1;
bool auth_initializing:1;
bool auth_process_comm_fail:1;
bool auth_anonymous:1;
const char *client_get_extra_disconnect_reason(struct client *client);
void client_auth_respond(struct client *client, const char *response);
+/* Called when client asks for SASL authentication to be aborted by sending
+ "*" line. */
void client_auth_abort(struct client *client);
bool client_is_tls_enabled(struct client *client);
void client_auth_fail(struct client *client, const char *text);
i_assert(auth_client_is_connected(auth_client));
client->auth_attempts++;
- client->auth_try_aborted = FALSE;
+ client->auth_aborted_by_client = FALSE;
client->authenticating = TRUE;
client->master_auth_id = 0;
if (client->auth_first_started == 0)
void sasl_server_auth_abort(struct client *client)
{
- client->auth_try_aborted = TRUE;
+ client->auth_aborted_by_client = TRUE;
if (client->anvil_query != NULL) {
anvil_client_query_abort(anvil, &client->anvil_query);
i_free(client->anvil_request);
sasl_server_callback_t *callback);
void sasl_server_auth_failed(struct client *client, const char *reason,
const char *code) ATTR_NULL(3);
+/* Called when client asks for SASL authentication to be aborted by sending
+ "*" line. */
void sasl_server_auth_abort(struct client *client);
#endif