changeset 22680:21e9717ba702

director: DIRECTOR-LIST - Show number of USERs sent/received in "handshaking" state
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 26 Nov 2017 12:19:36 +0200
parents 496ac7e7563f
children 592564b39e03
files src/director/director-connection.c src/director/director-connection.h src/director/doveadm-connection.c
diffstat 3 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-connection.c	Sun Nov 26 12:13:35 2017 +0200
+++ b/src/director/director-connection.c	Sun Nov 26 12:19:36 2017 +0200
@@ -2584,4 +2584,6 @@
 	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;
 }
--- a/src/director/director-connection.h	Sun Nov 26 12:13:35 2017 +0200
+++ b/src/director/director-connection.h	Sun Nov 26 12:19:36 2017 +0200
@@ -6,6 +6,9 @@
 	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;
--- a/src/director/doveadm-connection.c	Sun Nov 26 12:13:35 2017 +0200
+++ b/src/director/doveadm-connection.c	Sun Nov 26 12:19:36 2017 +0200
@@ -189,14 +189,18 @@
 {
 	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,