Mercurial > dovecot > core-2.2
changeset 13139:1b1fc681a277
lmtp: Log the current state in disconnect message.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 30 Jun 2011 08:27:32 +0300 |
parents | 1d78d2a4e8d1 |
children | 36e7ded2ef0b |
files | src/lmtp/client.c src/lmtp/client.h src/lmtp/commands.c |
diffstat | 3 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lmtp/client.c Thu Jun 30 08:00:07 2011 +0300 +++ b/src/lmtp/client.c Thu Jun 30 08:27:32 2011 +0300 @@ -226,6 +226,7 @@ client_io_reset(client); client->state_pool = pool_alloconly_create("client state", 4096); client->state.mail_data_fd = -1; + client->state.name = "banner"; client_read_settings(client); client_raw_user_create(client); client_generate_session_id(client); @@ -290,7 +291,8 @@ client_send_line(client, "%s %s", prefix, reason); else reason = client_get_disconnect_reason(client); - i_info("Disconnect from %s: %s", client_remote_id(client), reason); + i_info("Disconnect from %s: %s (in %s)", client_remote_id(client), + reason, client->state.name); client->disconnected = TRUE; } @@ -325,6 +327,7 @@ client->state.mail_data_fd = -1; client_generate_session_id(client); + client->state.name = "reset"; } void client_send_line(struct client *client, const char *fmt, ...)
--- a/src/lmtp/client.h Thu Jun 30 08:00:07 2011 +0300 +++ b/src/lmtp/client.h Thu Jun 30 08:27:32 2011 +0300 @@ -12,6 +12,7 @@ }; struct client_state { + const char *name; const char *session_id; const char *mail_from; ARRAY_DEFINE(rcpt_to, struct mail_recipient);
--- a/src/lmtp/commands.c Thu Jun 30 08:00:07 2011 +0300 +++ b/src/lmtp/commands.c Thu Jun 30 08:27:32 2011 +0300 @@ -73,6 +73,7 @@ i_free(client->lhlo); client->lhlo = i_strdup(str_c(domain)); + client->state.name = "LHLO"; return 0; } @@ -141,6 +142,7 @@ client->state.mail_from = p_strdup(client->state_pool, addr); p_array_init(&client->state.rcpt_to, client->state_pool, 64); client_send_line(client, "250 2.1.0 OK"); + client->state.name = "MAIL FROM"; return 0; } @@ -385,6 +387,8 @@ const char *error = NULL; int ret = 0; + client->state.name = "RCPT TO"; + if (client->state.mail_from == NULL) { client_send_line(client, "503 5.5.1 MAIL needed first"); return 0; @@ -897,12 +901,14 @@ io_remove(&client->io); if (array_count(&client->state.rcpt_to) == 0) { + client->state.name = "DATA (proxy)"; timeout_remove(&client->to_idle); lmtp_proxy_start(client->proxy, client->dot_input, client->state.added_headers, client_proxy_finish, client); i_stream_unref(&client->dot_input); } else { + client->state.name = "DATA"; client->io = io_add(client->fd_in, IO_READ, client_input_data, client); client_input_data_handle(client);