Skip to content

Commit

Permalink
lib-sieve: imap4flags extension: Added API for runtime initialization…
Browse files Browse the repository at this point in the history
… of derived extensions.

This is needed to register the implicit side effect for the internal flag variable.
  • Loading branch information
stephanbosch committed Sep 7, 2017
1 parent 736f94e commit e5ea21f
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
8 changes: 0 additions & 8 deletions src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.h
Expand Up @@ -11,14 +11,6 @@

#include "sieve-ext-imap4flags.h"

/*
* Extension
*/

extern const struct sieve_extension_def imap4flags_extension;
extern const struct sieve_interpreter_extension
imap4flags_interpreter_extension;

/*
* Side effect
*/
Expand Down
11 changes: 8 additions & 3 deletions src/lib-sieve/plugins/imap4flags/ext-imap4flags.c
Expand Up @@ -76,13 +76,18 @@ static bool ext_imap4flags_validator_load
return TRUE;
}

static bool ext_imap4flags_interpreter_load
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
sieve_size_t *address ATTR_UNUSED)
void sieve_ext_imap4flags_interpreter_load
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv)
{
sieve_interpreter_extension_register
(renv->interp, ext, &imap4flags_interpreter_extension, NULL);
}

static bool ext_imap4flags_interpreter_load
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
sieve_size_t *address ATTR_UNUSED)
{
sieve_ext_imap4flags_interpreter_load(ext, renv);
return TRUE;
}

Expand Down
4 changes: 1 addition & 3 deletions src/lib-sieve/plugins/imap4flags/ext-imapflags.c
Expand Up @@ -186,9 +186,7 @@ static bool ext_imapflags_interpreter_load
const struct sieve_extension *master_ext =
(const struct sieve_extension *) ext->context;

sieve_interpreter_extension_register
(renv->interp, master_ext, &imap4flags_interpreter_extension, NULL);

sieve_ext_imap4flags_interpreter_load(master_ext, renv);
return TRUE;
}

Expand Down
6 changes: 6 additions & 0 deletions src/lib-sieve/plugins/imap4flags/sieve-ext-imap4flags.h
Expand Up @@ -13,6 +13,8 @@ struct sieve_variable_storage;
/* FIXME: this is not suitable for future plugin support */

extern const struct sieve_extension_def imap4flags_extension;
extern const struct sieve_interpreter_extension
imap4flags_interpreter_extension;

static inline const struct sieve_extension *
sieve_ext_imap4flags_require_extension
Expand All @@ -22,6 +24,10 @@ sieve_ext_imap4flags_require_extension
(svinst, &imap4flags_extension, TRUE);
}

void sieve_ext_imap4flags_interpreter_load
(const struct sieve_extension *ext,
const struct sieve_runtime_env *renv);

/*
* Action side-effect
*/
Expand Down

0 comments on commit e5ea21f

Please sign in to comment.