diff --git a/src/lib-sieve/ext-envelope.c b/src/lib-sieve/ext-envelope.c index 1dbe5e80e648969b21782673351f175fc9b5df0a..e81cdbc74e59dfed0697c80f781bef566c85b3ad 100644 --- a/src/lib-sieve/ext-envelope.c +++ b/src/lib-sieve/ext-envelope.c @@ -449,7 +449,7 @@ static int ext_envelope_operation_execute sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS, "envelope test"); /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all requested headers to match */ envp_item = NULL; diff --git a/src/lib-sieve/mcht-matches.c b/src/lib-sieve/mcht-matches.c index 1a2827eb9e9457c35e9bf6d1671b4a5c70da1ff8..3a1f1652e13fed7a4de81a58f16851e99e74a34f 100644 --- a/src/lib-sieve/mcht-matches.c +++ b/src/lib-sieve/mcht-matches.c @@ -121,7 +121,7 @@ static int mcht_matches_match pvp = val; /* Previous value Pointer */ /* Start match values list if requested */ - if ( (mvalues = sieve_match_values_start(mctx->interp)) != NULL ) { + if ( (mvalues = sieve_match_values_start(mctx->runenv)) != NULL ) { /* Skip ${0} for now; added when match succeeds */ sieve_match_values_add(mvalues, NULL); @@ -425,7 +425,7 @@ static int mcht_matches_match sieve_match_values_set(mvalues, 0, matched); /* Commit new match values */ - sieve_match_values_commit(mctx->interp, &mvalues); + sieve_match_values_commit(mctx->runenv, &mvalues); } return TRUE; } diff --git a/src/lib-sieve/plugins/body/tst-body.c b/src/lib-sieve/plugins/body/tst-body.c index f282529528b71284e38f51f50ed467807515155f..f416f586cdd0c8a308ccbae86b71431edada9c78 100644 --- a/src/lib-sieve/plugins/body/tst-body.c +++ b/src/lib-sieve/plugins/body/tst-body.c @@ -398,12 +398,12 @@ static int ext_body_operation_execute /* Disable match values processing as required by RFC */ - mvalues_active = sieve_match_values_set_enabled(renv->interp, FALSE); + mvalues_active = sieve_match_values_set_enabled(renv, FALSE); /* Iterate through all requested body parts to match */ matched = FALSE; - mctx = sieve_match_begin(renv->interp, &mtch, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mtch, &cmp, NULL, key_list); while ( !matched && body_parts->content != NULL ) { if ( (mret=sieve_match_value(mctx, body_parts->content, body_parts->size)) < 0) @@ -425,7 +425,7 @@ static int ext_body_operation_execute /* Restore match values processing */ - (void)sieve_match_values_set_enabled(renv->interp, mvalues_active); + (void)sieve_match_values_set_enabled(renv, mvalues_active); /* Set test result */ diff --git a/src/lib-sieve/plugins/date/tst-date.c b/src/lib-sieve/plugins/date/tst-date.c index aa99017f4cf884ccb8234f4e592fe47af69328c8..541cbabaab39cdbab422aee402a3d5b14fef5d9c 100644 --- a/src/lib-sieve/plugins/date/tst-date.c +++ b/src/lib-sieve/plugins/date/tst-date.c @@ -518,7 +518,7 @@ static int tst_date_operation_execute } /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); if ( got_date && part_value != NULL ) { /* Match value */ diff --git a/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c b/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c index 9037bff7a8081314d3a008cd6f676b42db260637..e302178969962363a7c3b9608c238614e16c989b 100644 --- a/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c +++ b/src/lib-sieve/plugins/enotify/tst-notify-method-capability.c @@ -228,7 +228,7 @@ static int tst_notifymc_operation_execute (renv, 0 /* FIXME */, notify_uri, str_c(notify_capability)); if ( cap_value != NULL ) { - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); if ( (mret=sieve_match_value(mctx, cap_value, strlen(cap_value))) < 0 ) result = FALSE; diff --git a/src/lib-sieve/plugins/environment/tst-environment.c b/src/lib-sieve/plugins/environment/tst-environment.c index 28bd55e53b756c2206b38b91bd8dd52106afd7d9..54e1fb49b7b75c5cdf549c77c484c58f2ba4028d 100644 --- a/src/lib-sieve/plugins/environment/tst-environment.c +++ b/src/lib-sieve/plugins/environment/tst-environment.c @@ -201,7 +201,7 @@ static int tst_environment_operation_execute (this_ext, str_c(name), renv->scriptenv); if ( env_item != NULL ) { - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); if ( (mret=sieve_match_value(mctx, strlen(env_item) == 0 ? NULL : env_item, strlen(env_item))) < 0 ) { diff --git a/src/lib-sieve/plugins/imap4flags/tst-hasflag.c b/src/lib-sieve/plugins/imap4flags/tst-hasflag.c index aa18d90c069d510dc1e7759747ade0a6920867fb..fd370e91356b2e87c9d2fcabc22b2451ce1bd7c0 100644 --- a/src/lib-sieve/plugins/imap4flags/tst-hasflag.c +++ b/src/lib-sieve/plugins/imap4flags/tst-hasflag.c @@ -261,7 +261,7 @@ static int tst_hasflag_operation_execute matched = FALSE; mctx = sieve_match_begin - (renv->interp, &mtch, &cmp, &_flag_extractor, flag_list); + (renv, &mtch, &cmp, &_flag_extractor, flag_list); matched = FALSE; diff --git a/src/lib-sieve/plugins/notify/cmd-denotify.c b/src/lib-sieve/plugins/notify/cmd-denotify.c index 36b2dcc33246ae24cffca1426e667a14520f8f29..82c1baa0eaba4d077fbe3e60ea73c0982c1801fd 100644 --- a/src/lib-sieve/plugins/notify/cmd-denotify.c +++ b/src/lib-sieve/plugins/notify/cmd-denotify.c @@ -339,7 +339,7 @@ static int cmd_denotify_operation_execute if ( match_key != NULL ) { /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, match_key); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, match_key); /* Iterate through all actions */ rictx = sieve_result_iterate_init(renv->result); diff --git a/src/lib-sieve/plugins/regex/mcht-regex.c b/src/lib-sieve/plugins/regex/mcht-regex.c index 5dd4969d76874cd35041b9b1e3afb8f2b2d57a45..2fda6940ab98676357aa37261021a4bf236733af 100644 --- a/src/lib-sieve/plugins/regex/mcht-regex.c +++ b/src/lib-sieve/plugins/regex/mcht-regex.c @@ -189,7 +189,7 @@ static void mcht_regex_match_init ctx->value_index = -1; /* Create storage for match values if match values are requested */ - if ( sieve_match_values_are_enabled(mctx->interp) ) { + if ( sieve_match_values_are_enabled(mctx->runenv) ) { ctx->pmatch = p_new(pool, regmatch_t, MCHT_REGEX_MAX_SUBSTITUTIONS); ctx->nmatch = MCHT_REGEX_MAX_SUBSTITUTIONS; } else { @@ -274,7 +274,7 @@ static int mcht_regex_match string_t *subst = t_str_new(32); /* Start new list of match values */ - mvalues = sieve_match_values_start(mctx->interp); + mvalues = sieve_match_values_start(mctx->runenv); i_assert( mvalues != NULL ); @@ -296,7 +296,7 @@ static int mcht_regex_match } /* Substitute the new match values */ - sieve_match_values_commit(mctx->interp, &mvalues); + sieve_match_values_commit(mctx->runenv, &mvalues); } return TRUE; diff --git a/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c b/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c index f13fe943ee176ebd67c3493141b8b17f6b6beafa..c195eb52fb4dfdd139ef370f4d15d04377319bd3 100644 --- a/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c +++ b/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c @@ -283,7 +283,7 @@ static int tst_spamvirustest_operation_execute (renv, SIEVE_TRLVL_TESTS, "%s test", sieve_operation_mnemonic(op)); /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_value); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_value); /* Perform match */ diff --git a/src/lib-sieve/plugins/variables/ext-variables-common.c b/src/lib-sieve/plugins/variables/ext-variables-common.c index 50b4b9dda63f57f27d4c2677a4b5d7e52e9e8f4e..b1843124bfe5c448a4a869e820a8309b2f3e8945 100644 --- a/src/lib-sieve/plugins/variables/ext-variables-common.c +++ b/src/lib-sieve/plugins/variables/ext-variables-common.c @@ -723,7 +723,7 @@ bool ext_variables_interpreter_load (ext, renv->interp, scpbin); /* Enable support for match values */ - (void) sieve_match_values_set_enabled(renv->interp, TRUE); + (void) sieve_match_values_set_enabled(renv, TRUE); return TRUE; } diff --git a/src/lib-sieve/plugins/variables/ext-variables-operands.c b/src/lib-sieve/plugins/variables/ext-variables-operands.c index 602fb99aba881d83959d443317b8b0edbf971c7d..11ef017317fb658d08d794958a9141ef0adc1147 100644 --- a/src/lib-sieve/plugins/variables/ext-variables-operands.c +++ b/src/lib-sieve/plugins/variables/ext-variables-operands.c @@ -246,7 +246,7 @@ static bool opr_match_value_read * actually read the argument. */ if ( str != NULL ) { - sieve_match_values_get(renv->interp, index, str); + sieve_match_values_get(renv, index, str); if ( *str == NULL ) *str = t_str_new(0); diff --git a/src/lib-sieve/plugins/variables/tst-string.c b/src/lib-sieve/plugins/variables/tst-string.c index fc05636ac60719a709e59ca82e8837a9b71abba5..9e8977febaaba72e7d7496d6dd2b41e00f10ee06 100644 --- a/src/lib-sieve/plugins/variables/tst-string.c +++ b/src/lib-sieve/plugins/variables/tst-string.c @@ -205,7 +205,7 @@ static int tst_string_operation_execute sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS, "string test"); - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all requested strings to match */ src_item = NULL; diff --git a/src/lib-sieve/sieve-match-types.c b/src/lib-sieve/sieve-match-types.c index 96d039278fc823adc6e70e61c4f3bf5c3b157ff0..cc5bd307dafa616b2c08ebf3ab8d43ffb1151e3d 100644 --- a/src/lib-sieve/sieve-match-types.c +++ b/src/lib-sieve/sieve-match-types.c @@ -185,10 +185,10 @@ static inline struct mtch_interpreter_context *get_interpreter_context */ bool sieve_match_values_set_enabled -(struct sieve_interpreter *interp, bool enable) +(const struct sieve_runtime_env *renv, bool enable) { struct mtch_interpreter_context *ctx = - get_interpreter_context(interp, enable); + get_interpreter_context(renv->interp, enable); if ( ctx != NULL ) { bool previous = ctx->match_values_enabled; @@ -201,19 +201,19 @@ bool sieve_match_values_set_enabled } bool sieve_match_values_are_enabled -(struct sieve_interpreter *interp) +(const struct sieve_runtime_env *renv) { struct mtch_interpreter_context *ctx = - get_interpreter_context(interp, FALSE); + get_interpreter_context(renv->interp, FALSE); return ( ctx == NULL ? FALSE : ctx->match_values_enabled ); } struct sieve_match_values *sieve_match_values_start -(struct sieve_interpreter *interp) +(const struct sieve_runtime_env *renv) { struct mtch_interpreter_context *ctx = - get_interpreter_context(interp, FALSE); + get_interpreter_context(renv->interp, FALSE); struct sieve_match_values *match_values; if ( ctx == NULL || !ctx->match_values_enabled ) @@ -294,13 +294,13 @@ void sieve_match_values_skip } void sieve_match_values_commit -(struct sieve_interpreter *interp, struct sieve_match_values **mvalues) +(const struct sieve_runtime_env *renv, struct sieve_match_values **mvalues) { struct mtch_interpreter_context *ctx; if ( (*mvalues) == NULL ) return; - ctx = get_interpreter_context(interp, FALSE); + ctx = get_interpreter_context(renv->interp, FALSE); if ( ctx == NULL || !ctx->match_values_enabled ) return; @@ -323,10 +323,10 @@ void sieve_match_values_abort } void sieve_match_values_get -(struct sieve_interpreter *interp, unsigned int index, string_t **value_r) +(const struct sieve_runtime_env *renv, unsigned int index, string_t **value_r) { struct mtch_interpreter_context *ctx = - get_interpreter_context(interp, FALSE); + get_interpreter_context(renv->interp, FALSE); struct sieve_match_values *mvalues; if ( ctx == NULL || ctx->match_values == NULL ) { diff --git a/src/lib-sieve/sieve-match-types.h b/src/lib-sieve/sieve-match-types.h index b96fa7aaafbf30b54468b91850130d4b2a502cb1..dd040fb5677bb3b49b96128ecd04241f22cf3a7e 100644 --- a/src/lib-sieve/sieve-match-types.h +++ b/src/lib-sieve/sieve-match-types.h @@ -134,12 +134,12 @@ void sieve_match_type_register struct sieve_match_values; bool sieve_match_values_set_enabled - (struct sieve_interpreter *interp, bool enable); + (const struct sieve_runtime_env *renv, bool enable); bool sieve_match_values_are_enabled - (struct sieve_interpreter *interp); + (const struct sieve_runtime_env *renv); struct sieve_match_values *sieve_match_values_start - (struct sieve_interpreter *interp); + (const struct sieve_runtime_env *renv); void sieve_match_values_set (struct sieve_match_values *mvalues, unsigned int index, string_t *value); void sieve_match_values_add @@ -150,12 +150,12 @@ void sieve_match_values_skip (struct sieve_match_values *mvalues, int num); void sieve_match_values_commit - (struct sieve_interpreter *interp, struct sieve_match_values **mvalues); + (const struct sieve_runtime_env *renv, struct sieve_match_values **mvalues); void sieve_match_values_abort (struct sieve_match_values **mvalues); void sieve_match_values_get - (struct sieve_interpreter *interp, unsigned int index, string_t **value_r); + (const struct sieve_runtime_env *renv, unsigned int index, string_t **value_r); /* * Match type tagged argument diff --git a/src/lib-sieve/sieve-match.c b/src/lib-sieve/sieve-match.c index 7797fb192931d01c8ccf9d4385017059d8429ec8..43364f549bd063d485308d8d25e07ca2a77734e2 100644 --- a/src/lib-sieve/sieve-match.c +++ b/src/lib-sieve/sieve-match.c @@ -24,7 +24,7 @@ */ struct sieve_match_context *sieve_match_begin -(struct sieve_interpreter *interp, const struct sieve_match_type *mcht, +(const struct sieve_runtime_env *renv, const struct sieve_match_type *mcht, const struct sieve_comparator *cmp, const struct sieve_match_key_extractor *kextract, struct sieve_coded_stringlist *key_list) @@ -36,7 +36,7 @@ struct sieve_match_context *sieve_match_begin mctx = p_new(pool, struct sieve_match_context, 1); mctx->pool = pool; - mctx->interp = interp; + mctx->runenv = renv; mctx->match_type = mcht; mctx->comparator = cmp; mctx->kextract = kextract; diff --git a/src/lib-sieve/sieve-match.h b/src/lib-sieve/sieve-match.h index 89d13c6aa1cef1d65900ac3cdf8cf7803a0c675b..cd79c9a00fbba1fda4f8a828ab0b9c1c72fa057c 100644 --- a/src/lib-sieve/sieve-match.h +++ b/src/lib-sieve/sieve-match.h @@ -18,7 +18,7 @@ struct sieve_match_key_extractor { struct sieve_match_context { pool_t pool; - struct sieve_interpreter *interp; + const struct sieve_runtime_env *runenv; const struct sieve_match_type *match_type; const struct sieve_comparator *comparator; const struct sieve_match_key_extractor *kextract; @@ -34,7 +34,8 @@ struct sieve_match_context { */ struct sieve_match_context *sieve_match_begin - (struct sieve_interpreter *interp, const struct sieve_match_type *mtch, + (const struct sieve_runtime_env *renv, + const struct sieve_match_type *mtch, const struct sieve_comparator *cmp, const struct sieve_match_key_extractor *kextract, struct sieve_coded_stringlist *key_list); diff --git a/src/lib-sieve/tst-address.c b/src/lib-sieve/tst-address.c index daede9ae0d1b10ada6f4b03106c10ce23d349d74..bdecded82a4dd77dbe43ddd46f4ca8081f9a7662 100644 --- a/src/lib-sieve/tst-address.c +++ b/src/lib-sieve/tst-address.c @@ -255,7 +255,7 @@ static int tst_address_operation_execute sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS, "address test"); /* Initialize match context */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all requested headers to match */ hdr_item = NULL; diff --git a/src/lib-sieve/tst-header.c b/src/lib-sieve/tst-header.c index 4e25b3d8bfab9aa42ac0ffc367529cbefe734a5c..438b2e42eb2adf0f329b35dbd0f558ec44adaba9 100644 --- a/src/lib-sieve/tst-header.c +++ b/src/lib-sieve/tst-header.c @@ -210,7 +210,7 @@ static int tst_header_operation_execute sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS, "header test"); /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all requested headers to match */ hdr_item = NULL; diff --git a/src/testsuite/tst-test-error.c b/src/testsuite/tst-test-error.c index 9dcbac7fc42efdf19c4f8e7d774ee28457ba5f02..2e064f6b1ca31270aa9ef440e52ff80c2ed8224a 100644 --- a/src/testsuite/tst-test-error.c +++ b/src/testsuite/tst-test-error.c @@ -259,7 +259,7 @@ static int tst_test_error_operation_execute testsuite_log_get_error_init(); /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all errors to match */ error = NULL; diff --git a/src/testsuite/tst-test-result.c b/src/testsuite/tst-test-result.c index d6cccc071ea03a5a8adbf2de7844c677afdd7531..d684acc9c9b8577ad94e1777b896d31ac4f627aa 100644 --- a/src/testsuite/tst-test-result.c +++ b/src/testsuite/tst-test-result.c @@ -266,7 +266,7 @@ static int tst_test_result_operation_execute rictx = testsuite_result_iterate_init(); /* Initialize match */ - mctx = sieve_match_begin(renv->interp, &mcht, &cmp, NULL, key_list); + mctx = sieve_match_begin(renv, &mcht, &cmp, NULL, key_list); /* Iterate through all errors to match */ matched = FALSE;