]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: DIRECTOR-LIST - Show number of USERs sent/received in "handshaking" state
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 26 Nov 2017 10:19:36 +0000 (12:19 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 26 Nov 2017 10:38:48 +0000 (12:38 +0200)
src/director/director-connection.c
src/director/director-connection.h
src/director/doveadm-connection.c

index 8e4f00982c4af225b26209f5039bdff8084844ce..63493282a3518393bf26a25de3fca3311fb823c3 100644 (file)
@@ -2576,4 +2576,6 @@ void director_connection_get_status(struct director_connection *conn,
        status_r->last_input = conn->last_input;
        status_r->last_output = conn->last_output;
        status_r->last_ping_msecs = conn->last_ping_msecs;
+       status_r->handshake_users_sent = conn->handshake_users_sent;
+       status_r->handshake_users_received = conn->handshake_users_received;
 }
index 35a14b55436027824e8bb8872742aa8660bbc7d5..2b8bf0fa5cc3ba14d019d7374a4d1151e9175764 100644 (file)
@@ -6,6 +6,9 @@ struct director_connection_status {
        size_t bytes_buffered, peak_bytes_buffered;
        struct timeval last_input, last_output;
        unsigned int last_ping_msecs;
+
+       unsigned int handshake_users_received;
+       unsigned int handshake_users_sent;
 };
 
 struct director_host;
index 65c23aff7275e02ca9ed69d67142bd79d2193679..fc3d15648c94add8d48fc934930341f0fa6b2685 100644 (file)
@@ -188,14 +188,18 @@ doveadm_director_connection_append_status(struct director_connection *conn,
 {
        struct director_connection_status status;
 
-       if (!director_connection_is_handshaked(conn))
-               str_append(str, "handshaking");
-       else if (director_connection_is_synced(conn))
+       director_connection_get_status(conn, &status);
+       if (!director_connection_is_handshaked(conn)) {
+               str_append(str, "handshaking - ");
+               if (director_connection_is_incoming(conn))
+                       str_printfa(str, "%u USERs received", status.handshake_users_received);
+               else
+                       str_printfa(str, "%u USERs sent", status.handshake_users_sent);
+       } else if (director_connection_is_synced(conn))
                str_append(str, "synced");
        else
                str_append(str, "syncing");
 
-       director_connection_get_status(conn, &status);
        str_printfa(str, "\t%u\t%"PRIuUOFF_T"\t%"PRIuUOFF_T"\t%zu\t%zu\t"
                    "%"PRIdTIME_T"\t%"PRIdTIME_T, status.last_ping_msecs,
                    status.bytes_read, status.bytes_sent,