]> 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 11:07:41 +0000 (13:07 +0200)
src/director/director-connection.c
src/director/director-connection.h
src/director/doveadm-connection.c

index 4283dee273cf2154436ec12e8361a75e33b1f0c4..95c3a86c1929bdf06bcc1f479de4baf0591a398b 100644 (file)
@@ -2584,4 +2584,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 baa0a34f54b174420f76f81f1fb858146beb8611..cc660de20d4ff29db50aad27710c673ac73b2a45 100644 (file)
@@ -189,14 +189,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"
                    "%ld\t%ld", status.last_ping_msecs,
                    status.bytes_read, status.bytes_sent,