]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm-server: Include client's IP address in logs.
authorTimo Sirainen <tss@iki.fi>
Tue, 6 Aug 2013 13:54:33 +0000 (16:54 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 6 Aug 2013 13:54:33 +0000 (16:54 +0300)
src/doveadm/client-connection.c
src/doveadm/doveadm-mail.c
src/doveadm/doveadm-mail.h

index 262c1af9e92cec8b1a35ebfdc7277a6ce77425d2..e740abc53ab5c76084feb711aa3958fbdda79c4a 100644 (file)
@@ -397,6 +397,7 @@ struct client_connection *
 client_connection_create(int fd, int listen_fd, bool ssl)
 {
        struct client_connection *conn;
+       const char *ip;
        pool_t pool;
 
        pool = pool_alloconly_create("doveadm client", 1024*16);
@@ -414,6 +415,10 @@ client_connection_create(int fd, int listen_fd, bool ssl)
        i_stream_set_name(conn->input, net_ip2addr(&conn->remote_ip));
        o_stream_set_name(conn->output, net_ip2addr(&conn->remote_ip));
 
+       ip = net_ip2addr(&conn->remote_ip);
+       if (ip[0] != '\0')
+               i_set_failure_prefix("doveadm(%s): ", ip);
+
        if (client_connection_read_settings(conn) < 0) {
                client_connection_destroy(&conn);
                return NULL;
index ba2dd9bfdb4e2be57cf45ef20f58816e6d0b6168..33f7cbb7857448bae824213ebac6f8190810f1ea 100644 (file)
@@ -270,10 +270,14 @@ doveadm_mail_next_user(struct doveadm_mail_cmd_context *ctx,
                       const struct mail_storage_service_input *input,
                       const char **error_r)
 {
-       const char *error;
+       const char *error, *ip;
        int ret;
 
-       i_set_failure_prefix("doveadm(%s): ", input->username);
+       ip = net_ip2addr(&input->remote_ip);
+       if (ip[0] == '\0')
+               i_set_failure_prefix("doveadm(%s): ", input->username);
+       else
+               i_set_failure_prefix("doveadm(%s,%s): ", ip, input->username);
 
        /* see if we want to execute this command via (another)
           doveadm server */
@@ -321,6 +325,7 @@ int doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx,
 {
        i_assert(input->username != NULL);
 
+       ctx->cur_client_ip = input->remote_ip;
        ctx->cur_username = input->username;
        ctx->storage_service_input = *input;
        ctx->storage_service = mail_storage_service_init(master_service, NULL,
@@ -343,7 +348,7 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[],
 {
        struct mail_storage_service_input input;
        unsigned int user_idx;
-       const char *user, *error;
+       const char *ip, *user, *error;
        int ret;
 
        ctx->service_flags |= MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP;
@@ -396,7 +401,11 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx, char *argv[],
        }
        if (doveadm_verbose)
                printf("\n");
-       i_set_failure_prefix("doveadm: ");
+       ip = net_ip2addr(&ctx->cur_client_ip);
+       if (ip[0] == '\0')
+               i_set_failure_prefix("doveadm: ");
+       else
+               i_set_failure_prefix("doveadm(%s): ", ip);
        if (ret < 0) {
                i_error("Failed to iterate through some users");
                ctx->exit_code = EX_TEMPFAIL;
index ce07bdf1598ba041894b6f94012cba38aec3b72e..9c8a512f1d0e1d9eed297f1b862c7675725bc422 100644 (file)
@@ -54,6 +54,7 @@ struct doveadm_mail_cmd_context {
        /* search args aren't set for all mail commands */
        struct mail_search_args *search_args;
 
+       struct ip_addr cur_client_ip;
        const char *cur_username;
        struct mail_storage_service_user *cur_service_user;
        struct mail_user *cur_mail_user;