From 39b6eb9c962bc2e956b0d33cc62d367ed6fd9f29 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Sat, 22 Jun 2019 09:30:39 +0200
Subject: [PATCH] lib-sieve: sieve-runtime - Add event support to runtime
 environment.

---
 src/lib-sieve/sieve-interpreter.c | 9 +++++++++
 src/lib-sieve/sieve-runtime.h     | 1 +
 2 files changed, 10 insertions(+)

diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c
index 3fbb6f3e4..ffe15a647 100644
--- a/src/lib-sieve/sieve-interpreter.c
+++ b/src/lib-sieve/sieve-interpreter.c
@@ -122,6 +122,14 @@ _sieve_interpreter_create(struct sieve_binary *sbin,
 	interp->runenv.sblock = sblock;
 	sieve_binary_ref(sbin);
 
+	interp->runenv.event = event_create(eenv->event);
+	event_add_str(interp->runenv.event, "sieve_script_name",
+		      sieve_binary_script_name(sbin));
+	event_add_str(interp->runenv.event, "sieve_script_location",
+		      sieve_binary_script_location(sbin));
+	event_add_str(interp->runenv.event, "sieve_binary_path",
+		      sieve_binary_path(sbin));
+
 	svinst = sieve_binary_svinst(sbin);
 
 	if (senv->trace_log != NULL) {
@@ -295,6 +303,7 @@ void sieve_interpreter_free(struct sieve_interpreter **_interp)
 	sieve_binary_debug_reader_deinit(&interp->dreader);
 	sieve_binary_unref(&renv->sbin);
 	sieve_error_handler_unref(&renv->ehandler);
+	event_unref(&renv->event);
 
 	pool_unref(&interp->pool);
 	*_interp = NULL;
diff --git a/src/lib-sieve/sieve-runtime.h b/src/lib-sieve/sieve-runtime.h
index 8efe23d7c..fa5060299 100644
--- a/src/lib-sieve/sieve-runtime.h
+++ b/src/lib-sieve/sieve-runtime.h
@@ -10,6 +10,7 @@
 
 struct sieve_runtime_env {
 	const struct sieve_execute_env *exec_env;
+	struct event *event;
 
 	/* Interpreter */
 	struct sieve_interpreter *interp;
-- 
GitLab