}
static void auth_connected(struct auth_client *client,
- bool connected, void *context)
+ const char *connect_error, void *context)
{
struct authtest_input *input = context;
const char *mech = dsasl_client_mech_get_name(input->sasl_mech);
string_t *sasl_output_base64;
const char *error;
- if (!connected) {
+ if (connect_error != NULL) {
if (doveadm_is_killed())
return;
- i_fatal("Couldn't connect to auth socket");
+ i_fatal("Couldn't connect to auth socket: %s", connect_error);
}
if (auth_client_find_mech(client, mech) == NULL)
i_fatal("SASL mechanism '%s' not supported by server", mech);
timeout_remove(&conn->to);
if (conn->client->connect_notify_callback != NULL) {
- conn->client->connect_notify_callback(conn->client, TRUE,
+ conn->client->connect_notify_callback(conn->client, NULL,
conn->client->connect_notify_context);
}
}
auth_client_connection_remove_requests(conn, reason);
if (conn->client->connect_notify_callback != NULL) {
- conn->client->connect_notify_callback(conn->client, FALSE,
+ conn->client->connect_notify_callback(conn->client, reason,
conn->client->connect_notify_context);
}
}
const buffer_t **data_r,
const char **error_r);
+/* Called when auth connection is ready after handshake (error == NULL), or if
+ connection or handshaked failed (error != NULL). */
typedef void auth_connect_notify_callback_t(struct auth_client *client,
- bool connected, void *context);
+ const char *error, void *context);
/* Create new authentication client. */
struct auth_client *
static void
test_client_auth_connected(struct auth_client *client ATTR_UNUSED,
- bool connected, void *context)
+ const char *error, void *context)
{
struct login_test *login_test = context;
if (to_client_progress != NULL)
timeout_reset(to_client_progress);
- if (login_test->status == 0 && !connected) {
+ if (login_test->status == 0 && error != NULL) {
i_assert(login_test->error == NULL);
login_test->error = i_strdup("Connection failed");
login_test->status = -1;
};
static void auth_connect_notify(struct auth_client *client ATTR_UNUSED,
- bool connected, void *context ATTR_UNUSED)
+ const char *error, void *context ATTR_UNUSED)
{
- if (connected) {
+ if (error == NULL) {
auth_connected_once = TRUE;
clients_notify_auth_connected();
} else if (shutting_down)