]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Log errors via imap_client.event when possible
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 17 Aug 2020 09:43:12 +0000 (12:43 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Fri, 21 Aug 2020 08:51:13 +0000 (08:51 +0000)
src/imap/cmd-getmetadata.c
src/imap/cmd-urlfetch.c
src/imap/imap-client-hibernate.c
src/imap/imap-client.c
src/imap/imap-master-client.c
src/imap/main.c

index a24855e86502d17872addc141a27eafd25b8b93d..9693fb4f79e45fea69539c2c65da7b2f03f255b1 100644 (file)
@@ -203,7 +203,8 @@ static void cmd_getmetadata_send_entry(struct imap_getmetadata_context *ctx,
                value_len = strlen(value.value);
        else if (value.value_stream != NULL) {
                if (i_stream_get_size(value.value_stream, TRUE, &value_len) < 0) {
-                       i_error("GETMETADATA %s: i_stream_get_size(%s) failed: %s", entry,
+                       e_error(client->event,
+                               "GETMETADATA %s: i_stream_get_size(%s) failed: %s", entry,
                                i_stream_get_name(value.value_stream),
                                i_stream_get_error(value.value_stream));
                        i_stream_unref(&value.value_stream);
@@ -257,7 +258,7 @@ cmd_getmetadata_stream_continue(struct imap_getmetadata_context *ctx)
        case OSTREAM_SEND_ISTREAM_RESULT_WAIT_OUTPUT:
                return FALSE;
        case OSTREAM_SEND_ISTREAM_RESULT_ERROR_INPUT:
-               i_error("read(%s) failed: %s",
+               e_error(ctx->cmd->client->event, "read(%s) failed: %s",
                        i_stream_get_name(ctx->cur_stream),
                        i_stream_get_error(ctx->cur_stream));
                client_disconnect(ctx->cmd->client,
index 65e50bf1a4ca1f9ab40a7f3e0358f621df7789e0..60e4accf58fbf8bc765d5c68cd98c43f3f07fc18 100644 (file)
@@ -109,7 +109,7 @@ static int cmd_urlfetch_transfer_literal(struct client_command_context *cmd)
        case OSTREAM_SEND_ISTREAM_RESULT_WAIT_OUTPUT:
                return 0;
        case OSTREAM_SEND_ISTREAM_RESULT_ERROR_INPUT:
-               i_error("read(%s) failed: %s (URLFETCH)",
+               e_error(client->event, "read(%s) failed: %s (URLFETCH)",
                        i_stream_get_name(ctx->input),
                        i_stream_get_error(ctx->input));
                client_disconnect(client, "URLFETCH failed");
index e8fea9cc6552f87daef2ade0d4bebb00ad5aa077..f892d47df889ca048a9895673c00b898ff92dbca 100644 (file)
@@ -166,7 +166,7 @@ imap_hibernate_process_send(struct client *client, const buffer_t *state,
                           "/"IMAP_HIBERNATE_SOCKET_NAME, NULL);
        fd = net_connect_unix_with_retries(path, 1000);
        if (fd == -1) {
-               i_error("net_connect_unix(%s) failed: %m", path);
+               e_error(client->event, "net_connect_unix(%s) failed: %m", path);
                return -1;
        }
        net_set_nonblock(fd, FALSE);
@@ -211,7 +211,7 @@ bool imap_client_hibernate(struct client **_client)
        state = buffer_create_dynamic(default_pool, 1024);
        ret = imap_state_export_internal(client, state, &error);
        if (ret < 0) {
-               i_error("Couldn't hibernate imap client: "
+               e_error(client->event, "Couldn't hibernate imap client: "
                        "Couldn't export state: %s (mailbox=%s)", error,
                        client->mailbox == NULL ? "" :
                        mailbox_get_vname(client->mailbox));
@@ -234,7 +234,8 @@ bool imap_client_hibernate(struct client **_client)
        if (ret > 0) {
                if (imap_hibernate_process_send(client, state, fd_notify,
                                                &fd_hibernate, &error) < 0) {
-                       i_error("Couldn't hibernate imap client: %s", error);
+                       e_error(client->event,
+                               "Couldn't hibernate imap client: %s", error);
                        ret = -1;
                }
        }
index 9e43aac0c5236e147f1f64a04d263be0262c366e..0266211553db37bb227c8a21a0e2d81a0c4e08b8 100644 (file)
@@ -301,7 +301,8 @@ const char *client_stats(struct client *client)
        if (var_expand_with_funcs(str, client->set->imap_logout_format,
                                  tab, mail_user_var_expand_func_table,
                                  client->user, &error) < 0) {
-               i_error("Failed to expand imap_logout_format=%s: %s",
+               e_error(client->event,
+                       "Failed to expand imap_logout_format=%s: %s",
                        client->set->imap_logout_format, error);
        }
        return str_c(str);
index 9b2e2df67983be960ce46c00501e0c34e7d5c768..5157f185e91a85faa0f1ab124ecf3d4a4b539484 100644 (file)
@@ -234,7 +234,8 @@ imap_master_client_input_args(struct connection *conn, const char *const *args,
        client->imap_client_created = TRUE;
 
        if (client_create_finish(imap_client, &error) < 0) {
-               i_error("imap-master(%s): %s", input.username, error);
+               e_error(imap_client->event, "imap-master(%s): %s",
+                       input.username, error);
                client_destroy(imap_client, error);
                return -1;
        }
@@ -248,7 +249,8 @@ imap_master_client_input_args(struct connection *conn, const char *const *args,
            !i_stream_add_data(imap_client->input,
                               master_input.client_input->data,
                               master_input.client_input->used)) {
-               i_error("imap-master: Couldn't add %zu bytes to client's input stream",
+               e_error(imap_client->event,
+                       "imap-master: Couldn't add %zu bytes to client's input stream",
                        master_input.client_input->used);
                client_destroy(imap_client, "Client initialization failed");
                return -1;
@@ -271,7 +273,8 @@ imap_master_client_input_args(struct connection *conn, const char *const *args,
        ret = imap_state_import_internal(imap_client, master_input.state->data,
                                         master_input.state->used, &error);
        if (ret <= 0) {
-               i_error("imap-master: Failed to import client state: %s", error);
+               e_error(imap_client->event,
+                       "imap-master: Failed to import client state: %s", error);
                client_destroy(imap_client, "Client state initialization failed");
                return -1;
        }
index 4cf4062463e02a62785b34463e952676953a781f..776ad53b1f6e6c06f9d1950befa7e426eddc6423 100644 (file)
@@ -385,9 +385,10 @@ login_client_connected(const struct master_login_client *login_client,
                if (write_full(login_client->fd, MSG_BYE_INTERNAL_ERROR,
                               strlen(MSG_BYE_INTERNAL_ERROR)) < 0)
                        if (errno != EAGAIN && errno != EPIPE)
-                               i_error("write_full(client) failed: %m");
+                               e_error(client->event,
+                                       "write_full(client) failed: %m");
 
-               i_error("%s", error);
+               e_error(client->event, "%s", error);
                client_destroy(client, error);
                return;
        }