]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-dict-extra: dict-client - Retry commands when disconnected from server
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 4 Aug 2025 13:07:33 +0000 (16:07 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 5 Aug 2025 15:30:25 +0000 (15:30 +0000)
Commands were previously retried when sending the command failed, but not
afterwards.

src/lib-dict-extra/dict-client.c

index be0b2e05a7a296188a9b47eb4a0e973af696a546..3adaa7962712fbfc7017d985dcef1d86a0bbfe43 100644 (file)
@@ -663,8 +663,13 @@ static void dict_conn_destroy(struct connection *_conn)
 {
        struct dict_client_connection *conn =
                (struct dict_client_connection *)_conn;
+       const char *error;
 
-       client_dict_disconnect(conn->dict, connection_disconnect_reason(_conn));
+       (void)client_dict_reconnect(conn->dict, t_strdup_printf(
+               "Dict server connection failed: %s "
+               "(%u commands pending)",
+               connection_disconnect_reason(_conn),
+               array_count(&conn->dict->cmds)), &error);
 }
 
 static const struct connection_settings dict_conn_set = {