]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dict-client: Include reconnection-status in slow dict lookup messages.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 21 Nov 2016 16:46:48 +0000 (18:46 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 21 Nov 2016 20:42:57 +0000 (22:42 +0200)
src/lib-dict/dict-client.c

index 915d88c9b05651442320ff37fabe5af9ecba37c0..1678a5dc685fbb4d965af42fe2ed19d5f089d237 100644 (file)
@@ -38,6 +38,7 @@ struct client_dict_cmd {
        uint64_t start_dict_ioloop_usecs;
        uint64_t start_lock_usecs;
 
+       bool reconnected;
        bool retry_errors;
        bool no_replies;
        bool unfinished;
@@ -592,6 +593,7 @@ static int client_dict_reconnect(struct client_dict *dict, const char *reason,
        ret = 0; error = "";
        array_foreach(&retry_cmds, cmdp) {
                cmd = *cmdp;
+               cmd->reconnected = TRUE;
                /* if it fails again, don't retry anymore */
                cmd->retry_errors = FALSE;
                if (ret < 0) {
@@ -789,6 +791,13 @@ dict_warnings_sec(const struct client_dict_cmd *cmd, int msecs,
 
        str_printfa(str, "%d.%03d secs (%s", msecs/1000, msecs%1000,
                    dict_wait_warnings(cmd));
+       if (cmd->reconnected) {
+               int reconnected_msecs =
+                       timeval_diff_msecs(&ioloop_timeval,
+                               &cmd->dict->conn.conn.connect_started);
+               str_printfa(str, ", reconnected %u.%03u secs ago",
+                           reconnected_msecs/1000, reconnected_msecs%1000);
+       }
        if (str_array_length(extra_args) >= 4 &&
            str_to_time(extra_args[0], &tv_start.tv_sec) == 0 &&
            str_to_uint(extra_args[1], &tv_start_usec) == 0 &&