]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-dict: Add .set_hide_log_values() to dict vfuncs
authorMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 1 Dec 2022 10:03:26 +0000 (11:03 +0100)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Mon, 12 Dec 2022 13:26:12 +0000 (14:26 +0100)
This is used to set hide_log_values in dict op settings.

src/lib-dict/dict-private.h
src/lib-dict/dict.c
src/lib-dict/dict.h

index e5ec5e3d64f36f68af0a264aead108300300ed3c..735417558bd734c6c4dc684bcb2b652557e9314d 100644 (file)
@@ -48,6 +48,8 @@ struct dict_vfuncs {
        bool (*switch_ioloop)(struct dict *dict);
        void (*set_timestamp)(struct dict_transaction_context *ctx,
                              const struct timespec *ts);
+       void (*set_hide_log_values)(struct dict_transaction_context *ctx,
+                                   bool hide_log_values);
 };
 
 struct dict_commit_callback_ctx;
@@ -55,6 +57,8 @@ struct dict_commit_callback_ctx;
 struct dict_op_settings_private {
        char *username;
        char *home_dir;
+
+       bool hide_log_values;
 };
 
 struct dict {
index cdaec09ee09fe841ef402bf8c61f653c71e5f9da..bda34ae75243a0020d052cc8ef01112139e81d82 100644 (file)
@@ -507,6 +507,15 @@ void dict_transaction_no_slowness_warning(struct dict_transaction_context *ctx)
        ctx->no_slowness_warning = TRUE;
 }
 
+void dict_transaction_set_hide_log_values(struct dict_transaction_context *ctx,
+                                         bool hide_log_values)
+{
+       /* Apply hide_log_values to the current transactions dict op settings */
+       ctx->set.hide_log_values = hide_log_values;
+       if (ctx->dict->v.set_hide_log_values != NULL)
+               ctx->dict->v.set_hide_log_values(ctx, hide_log_values);
+}
+
 void dict_transaction_set_timestamp(struct dict_transaction_context *ctx,
                                    const struct timespec *ts)
 {
@@ -750,6 +759,7 @@ void dict_op_settings_dup(const struct dict_op_settings *source,
        i_zero(dest_r);
        dest_r->username = i_strdup(source->username);
        dest_r->home_dir = i_strdup(source->home_dir);
+       dest_r->hide_log_values = source->hide_log_values;
 }
 
 void dict_op_settings_private_free(struct dict_op_settings_private *set)
index 8e4b39e51f362b19f7e0aad21610333abc23773c..8cac9c739303e27ed21bea233232983c99973ddd 100644 (file)
@@ -41,6 +41,9 @@ struct dict_op_settings {
        const char *username;
        /* home directory for the user, if known */
        const char *home_dir;
+
+       /* Hide values when logging about this transaction. */
+       bool hide_log_values;
 };
 
 struct dict_lookup_result {
@@ -157,6 +160,11 @@ void dict_transaction_no_slowness_warning(struct dict_transaction_context *ctx);
    dict-sql with Cassandra backend does anything with this. */
 void dict_transaction_set_timestamp(struct dict_transaction_context *ctx,
                                    const struct timespec *ts);
+
+/* Set hide_log_values for the transaction. Currently only
+   dict-sql with Cassandra backend does anything with this. */
+void dict_transaction_set_hide_log_values(struct dict_transaction_context *ctx,
+                                         bool hide_log_values);
 /* Commit the transaction. Returns 1 if ok, 0 if dict_atomic_inc() was used
    on a nonexistent key, -1 if failed. */
 int dict_transaction_commit(struct dict_transaction_context **ctx,