From a4176570c8fb6f823e450d7d126aa41711232a7d Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Wed, 4 Feb 2009 22:43:33 +0100 Subject: [PATCH] Validator: added support for checking loaded extensions. --- src/lib-sieve/sieve-validator.c | 14 ++++++++++++++ src/lib-sieve/sieve-validator.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c index f155cde6d..d3fd9cdc3 100644 --- a/src/lib-sieve/sieve-validator.c +++ b/src/lib-sieve/sieve-validator.c @@ -65,6 +65,8 @@ struct sieve_validator_extension_reg { const struct sieve_validator_extension *val_ext; struct sieve_ast_argument *arg; void *context; + + bool loaded; }; /* @@ -543,6 +545,7 @@ const struct sieve_extension *sieve_validator_extension_load if ( ext_id >= 0 ) { reg = array_idx_modifiable(&valdtr->extensions, (unsigned int) ext_id); reg->arg = ext_arg; + reg->loaded = TRUE; } return ext; @@ -562,6 +565,17 @@ void sieve_validator_extension_register reg->context = context; } +bool sieve_validator_extension_loaded + (struct sieve_validator *valdtr, const struct sieve_extension *ext) +{ + int ext_id = SIEVE_EXT_ID(ext); + const struct sieve_validator_extension_reg *reg; + + reg = array_idx(&valdtr->extensions, (unsigned int) ext_id); + + return ( reg->loaded ); +} + void sieve_validator_extension_set_context (struct sieve_validator *valdtr, const struct sieve_extension *ext, void *context) diff --git a/src/lib-sieve/sieve-validator.h b/src/lib-sieve/sieve-validator.h index 2b553be68..ca8b59fd3 100644 --- a/src/lib-sieve/sieve-validator.h +++ b/src/lib-sieve/sieve-validator.h @@ -134,6 +134,9 @@ const struct sieve_extension *sieve_validator_extension_load void sieve_validator_extension_register (struct sieve_validator *valdtr, const struct sieve_validator_extension *val_ext, void *context); +bool sieve_validator_extension_loaded + (struct sieve_validator *valdtr, const struct sieve_extension *ext); + void sieve_validator_extension_set_context (struct sieve_validator *valdtr, const struct sieve_extension *ext, void *context); -- GitLab