From f74a5b6961b25d8f3e708be90b3a71bd08ad6b5d Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Mon, 2 Sep 2024 01:22:43 +0200
Subject: [PATCH] lib-sieve: sieve-storage - Add event_parent parameter to
 sieve_storage_create_event()

---
 src/lib-sieve/sieve-storage.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 43b59b8b3..76dbb9f10 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -123,11 +123,13 @@ bool sieve_storage_class_exists(struct sieve_instance *svinst,
 
 static struct event *
 sieve_storage_create_event(struct sieve_instance *svinst,
+			   struct event *event_parent,
 			   const struct sieve_storage *storage_class)
 {
 	struct event *event;
 
-	event = event_create(svinst->event);
+	event = event_create(event_parent == NULL ?
+			     svinst->event : event_parent);
 	event_add_category(event, &event_category_sieve_storage);
 	event_add_str(event, "driver", storage_class->driver_name);
 	event_set_append_log_prefix(
@@ -296,8 +298,8 @@ int sieve_storage_alloc(struct sieve_instance *svinst, struct event *event,
 		storage->event = event;
 		event_ref(storage->event);
 	} else {
-		storage->event =
-			sieve_storage_create_event(svinst, storage_class);
+		storage->event = sieve_storage_create_event(
+			svinst, svinst->event, storage_class);
 	}
 
 	*storage_r = storage;
@@ -326,7 +328,8 @@ sieve_storage_init(struct sieve_instance *svinst,
 
 	i_assert(storage_class->v.init != NULL);
 
-	event = sieve_storage_create_event(svinst, storage_class);
+	event = sieve_storage_create_event(svinst, svinst->event,
+					   storage_class);
 
 	if ((flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0 &&
 	    !storage_class->allows_synchronization) {
-- 
GitLab