diff --git a/src/lib-sieve/sieve-interpreter.c b/src/lib-sieve/sieve-interpreter.c index 3fbb6f3e44cd055fb46f93bcaff116afa9ff2b6f..ffe15a6474e7d16d5fb7d543cbda1a02dd48e9c6 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 8efe23d7c6ed0327a009f6d23d8c3dfae1b53680..fa5060299ed97bf4a11c3b6f009359fd6701b010 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;