dovecot-2.2: doveadm-server: Include client's IP address in logs.
dovecot at dovecot.org
dovecot at dovecot.org
Tue Aug 6 16:54:46 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/6c4917396b0d
changeset: 16671:6c4917396b0d
user: Timo Sirainen <tss at iki.fi>
date: Tue Aug 06 16:54:33 2013 +0300
description:
doveadm-server: Include client's IP address in logs.
diffstat:
src/doveadm/client-connection.c | 5 +++++
src/doveadm/doveadm-mail.c | 17 +++++++++++++----
src/doveadm/doveadm-mail.h | 1 +
3 files changed, 19 insertions(+), 4 deletions(-)
diffs (83 lines):
diff -r 0cf837972a32 -r 6c4917396b0d src/doveadm/client-connection.c
--- a/src/doveadm/client-connection.c Tue Aug 06 16:32:03 2013 +0300
+++ b/src/doveadm/client-connection.c Tue Aug 06 16:54:33 2013 +0300
@@ -397,6 +397,7 @@
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 @@
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;
diff -r 0cf837972a32 -r 6c4917396b0d src/doveadm/doveadm-mail.c
--- a/src/doveadm/doveadm-mail.c Tue Aug 06 16:32:03 2013 +0300
+++ b/src/doveadm/doveadm-mail.c Tue Aug 06 16:54:33 2013 +0300
@@ -270,10 +270,14 @@
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 @@
{
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 @@
{
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 @@
}
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;
diff -r 0cf837972a32 -r 6c4917396b0d src/doveadm/doveadm-mail.h
--- a/src/doveadm/doveadm-mail.h Tue Aug 06 16:32:03 2013 +0300
+++ b/src/doveadm/doveadm-mail.h Tue Aug 06 16:54:33 2013 +0300
@@ -54,6 +54,7 @@
/* 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;
More information about the dovecot-cvs
mailing list