]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: cassandra - Retain last connection error
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 29 Jun 2023 10:34:42 +0000 (13:34 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 5 Jul 2023 07:21:08 +0000 (10:21 +0300)
src/lib-sql/driver-cassandra.c

index e901b0ba015326edf4942a7cfe615484a0f32829..fe15a49f409bd95e13153b6bf2cdaea720c21f7f 100644 (file)
@@ -545,8 +545,16 @@ static void connect_callback(CassFuture *future, void *context)
        struct cassandra_db *db = context;
 
        if (cass_future_error_code(future) != CASS_OK) {
+               const char *message;
+               size_t size;
+               string_t *str;
                driver_cassandra_log_error(db, future,
                                           "Couldn't connect to Cassandra");
+               cass_future_error_message(future, &message, &size);
+               i_free(db->api.last_connect_error);
+               str = str_new(default_pool, size);
+               str_append_data(str, message, size);
+               db->api.last_connect_error = str_free_without_data(&str);
                driver_cassandra_close(db, "Couldn't connect to Cassandra");
                return;
        }