]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Add last connection error to sql_connection_finished event
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 29 Jun 2023 10:34:20 +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/sql-api-private.h
src/lib-sql/sql-api.c

index cbcc2a5a44908b1ec9cc71c0af7de2bc713ab3b1..e431ca166dc66e3bd403d5cb2d34c4213c9430ab 100644 (file)
@@ -156,6 +156,8 @@ struct sql_db {
        unsigned int connect_delay;
        unsigned int connect_failure_count;
        struct timeout *to_reconnect;
+       /* last connection error */
+       char *last_connect_error;
 
        uint64_t succeeded_queries;
        uint64_t failed_queries;
index e54527cb9e5a0c60bbdc954be120bebe03ae2c25..90542b46765d4cd294b1fa7911dfa89f16bcfd5d 100644 (file)
@@ -815,11 +815,14 @@ void sql_transaction_add_query(struct sql_transaction_context *ctx, pool_t pool,
 void sql_connection_log_finished(struct sql_db *db)
 {
        struct event_passthrough *e = event_create_passthrough(db->event)->
-               set_name(SQL_CONNECTION_FINISHED);
+               set_name(SQL_CONNECTION_FINISHED)->
+               add_str("name", db->name)->
+               add_str("error", db->last_connect_error);
        e_debug(e->event(),
                "Connection finished (queries=%"PRIu64", slow queries=%"PRIu64")",
                db->succeeded_queries + db->failed_queries,
                db->slow_queries);
+       i_free(db->last_connect_error);
 }
 
 struct event_passthrough *