Mercurial > dovecot > core-2.2
changeset 12669:ce7b1fa63f2f
imapc: Added more debugging output with mail_debug=yes
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 19 Feb 2011 16:42:45 +0200 |
parents | 4363f0b68031 |
children | bd780e7bdba6 |
files | src/lib-storage/index/imapc/imapc-client.c src/lib-storage/index/imapc/imapc-client.h src/lib-storage/index/imapc/imapc-connection.c src/lib-storage/index/imapc/imapc-storage.c |
diffstat | 4 files changed, 45 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-client.c Thu Feb 17 18:02:45 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-client.c Sat Feb 19 16:42:45 2011 +0200 @@ -44,6 +44,7 @@ client = p_new(pool, struct imapc_client, 1); client->pool = pool; + client->set.debug = set->debug; client->set.host = p_strdup(pool, set->host); client->set.port = set->port; client->set.master_user = p_strdup(pool, set->master_user);
--- a/src/lib-storage/index/imapc/imapc-client.h Thu Feb 17 18:02:45 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-client.h Sat Feb 19 16:42:45 2011 +0200 @@ -44,6 +44,8 @@ enum imapc_client_ssl_mode ssl_mode; const char *ssl_ca_dir; + + bool debug; }; struct imapc_command_reply {
--- a/src/lib-storage/index/imapc/imapc-connection.c Thu Feb 17 18:02:45 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-connection.c Sat Feb 19 16:42:45 2011 +0200 @@ -214,6 +214,9 @@ if (conn->fd == -1) return; + if (conn->client->set.debug) + i_debug("imapc(%s): Disconnected", conn->name); + imapc_connection_lfiles_free(conn); imapc_connection_literal_reset(&conn->literal); if (conn->to != NULL) @@ -380,6 +383,11 @@ const char *const *tmp; unsigned int i; + if (conn->client->set.debug) { + i_debug("imapc(%s): Server capabilities: %s", + conn->name, value); + } + conn->capabilities = 0; if (conn->capabilities_list != NULL) p_strsplit_free(default_pool, conn->capabilities_list); @@ -526,6 +534,9 @@ return; } + if (conn->client->set.debug) + i_debug("imapc(%s): Authenticated successfully", conn->name); + timeout_remove(&conn->to); imapc_connection_set_state(conn, IMAPC_CONNECTION_STATE_DONE); } @@ -558,6 +569,16 @@ const struct imapc_client_settings *set = &conn->client->set; const char *cmd; + if (conn->client->set.debug) { + if (set->master_user == NULL) { + i_debug("imapc(%s): Authenticating as %s", + conn->name, set->username); + } else { + i_debug("imapc(%s): Authenticating as %s for user %s", + conn->name, set->master_user, set->username); + } + } + if ((set->master_user == NULL && need_literal(set->username) && need_literal(set->password)) || (conn->capabilities & IMAPC_CAPABILITY_AUTH_PLAIN) == 0) { @@ -912,8 +933,13 @@ { struct imapc_connection *conn = context; - if (ssl_iostream_has_valid_client_cert(conn->ssl_iostream)) + if (ssl_iostream_has_valid_client_cert(conn->ssl_iostream)) { + if (conn->client->set.debug) { + i_debug("imapc(%s): SSL handshake successful", + conn->name); + } return 0; + } if (!ssl_iostream_has_broken_client_cert(conn->ssl_iostream)) { i_error("imapc(%s): SSL certificate not received", conn->name); @@ -940,6 +966,9 @@ ssl_set.verify_remote_cert = TRUE; ssl_set.require_valid_cert = TRUE; + if (conn->client->set.debug) + i_debug("imapc(%s): Starting SSL handshake", conn->name); + source = t_strdup_printf("imapc(%s): ", conn->name); if (io_stream_create_ssl(conn->client->ssl_ctx, source, &ssl_set, &conn->input, &conn->output, @@ -1003,11 +1032,12 @@ static void imapc_connection_connect_next_ip(struct imapc_connection *conn) { + const struct ip_addr *ip; int fd; conn->prev_connect_idx = (conn->prev_connect_idx+1) % conn->ips_count; - fd = net_connect_ip(&conn->ips[conn->prev_connect_idx], - conn->client->set.port, NULL); + ip = &conn->ips[conn->prev_connect_idx]; + fd = net_connect_ip(ip, conn->client->set.port, NULL); if (fd == -1) { imapc_connection_set_state(conn, IMAPC_CONNECTION_STATE_DISCONNECTED); @@ -1020,6 +1050,10 @@ conn->parser = imap_parser_create(conn->input, NULL, (size_t)-1); conn->to = timeout_add(IMAPC_CONNECT_TIMEOUT_MSECS, imapc_connection_timeout, conn); + if (conn->client->set.debug) { + i_debug("imapc(%s): Connecting to %s:%u", conn->name, + net_ip2addr(ip), conn->client->set.port); + } } static void @@ -1052,6 +1086,9 @@ if (conn->fd != -1) return; + if (conn->client->set.debug) + i_debug("imapc(%s): Looking up IP address", conn->name); + memset(&dns_set, 0, sizeof(dns_set)); dns_set.dns_client_socket_path = conn->client->set.dns_client_socket_path;
--- a/src/lib-storage/index/imapc/imapc-storage.c Thu Feb 17 18:02:45 2011 +0200 +++ b/src/lib-storage/index/imapc/imapc-storage.c Sat Feb 19 16:42:45 2011 +0200 @@ -193,6 +193,8 @@ set.dns_client_socket_path = t_strconcat(_storage->user->set->base_dir, "/", DNS_CLIENT_SOCKET_NAME, NULL); + set.debug = _storage->set->mail_debug; + str = t_str_new(128); mail_user_set_get_temp_prefix(str, _storage->user->set); set.temp_path_prefix = str_c(str);