dovecot-2.0-pigeonhole: Imap4flags: prevent forcibly enabling im...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Mon May 9 21:56:53 EEST 2011
details: http://hg.rename-it.nl/dovecot-2.0-pigeonhole/rev/ef58ace33b47
changeset: 1497:ef58ace33b47
user: Stephan Bosch <stephan at rename-it.nl>
date: Mon May 09 20:56:08 2011 +0200
description:
Imap4flags: prevent forcibly enabling imap4flags when imapflags is enabled.
diffstat:
src/lib-sieve/plugins/imap4flags/ext-imapflags.c | 2 +-
src/lib-sieve/plugins/vacation/ext-vacation-seconds.c | 2 +-
src/lib-sieve/sieve-extensions.c | 20 +++++++++++---------
src/lib-sieve/sieve-extensions.h | 4 +++-
4 files changed, 16 insertions(+), 12 deletions(-)
diffs (118 lines):
diff -r 42497f1c37ff -r ef58ace33b47 src/lib-sieve/plugins/imap4flags/ext-imapflags.c
--- a/src/lib-sieve/plugins/imap4flags/ext-imapflags.c Thu Apr 14 22:45:40 2011 +0200
+++ b/src/lib-sieve/plugins/imap4flags/ext-imapflags.c Mon May 09 20:56:08 2011 +0200
@@ -94,7 +94,7 @@
if ( *context == NULL ) {
/* Make sure real extension is registered, it is needed by the binary */
*context = (void *)
- sieve_extension_require(ext->svinst, &imap4flags_extension);
+ sieve_extension_require(ext->svinst, &imap4flags_extension, FALSE);
}
return TRUE;
diff -r 42497f1c37ff -r ef58ace33b47 src/lib-sieve/plugins/vacation/ext-vacation-seconds.c
--- a/src/lib-sieve/plugins/vacation/ext-vacation-seconds.c Thu Apr 14 22:45:40 2011 +0200
+++ b/src/lib-sieve/plugins/vacation/ext-vacation-seconds.c Mon May 09 20:56:08 2011 +0200
@@ -45,7 +45,7 @@
if ( *context == NULL ) {
/* Make sure vacation extension is registered */
*context = (void *)
- sieve_extension_require(ext->svinst, &vacation_extension);
+ sieve_extension_require(ext->svinst, &vacation_extension, TRUE);
}
return TRUE;
diff -r 42497f1c37ff -r ef58ace33b47 src/lib-sieve/sieve-extensions.c
--- a/src/lib-sieve/sieve-extensions.c Thu Apr 14 22:45:40 2011 +0200
+++ b/src/lib-sieve/sieve-extensions.c Mon May 09 20:56:08 2011 +0200
@@ -24,7 +24,7 @@
static struct sieve_extension *_sieve_extension_register
(struct sieve_instance *svinst, const struct sieve_extension_def *extdef,
- bool load, bool required);
+ bool load, bool required, bool implied);
/*
* Instance global context
@@ -216,7 +216,7 @@
/* Pre-load dummy extensions */
for ( i = 0; i < sieve_dummy_extensions_count; i++ ) {
if ( (ext=_sieve_extension_register
- (svinst, sieve_dummy_extensions[i], TRUE, FALSE)) == NULL )
+ (svinst, sieve_dummy_extensions[i], TRUE, FALSE, FALSE)) == NULL )
return FALSE;
ext->dummy = TRUE;
@@ -346,8 +346,8 @@
}
static struct sieve_extension *_sieve_extension_register
-(struct sieve_instance *svinst, const struct sieve_extension_def *extdef,
- bool load, bool required)
+(struct sieve_instance *svinst, const struct sieve_extension_def *extdef,
+ bool load, bool required, bool implied)
{
struct sieve_extension_registry *ext_reg = svinst->ext_reg;
struct sieve_extension *ext = (struct sieve_extension *)
@@ -390,7 +390,8 @@
ext->loaded = TRUE;
}
- ext->required = (ext->required || required );
+ ext->required = ( ext->required || required );
+ ext->implied = ( ext->implied || implied );
return ext;
}
@@ -399,7 +400,7 @@
(struct sieve_instance *svinst, const struct sieve_extension_def *extdef,
bool load)
{
- return _sieve_extension_register(svinst, extdef, load, FALSE);
+ return _sieve_extension_register(svinst, extdef, load, FALSE, FALSE);
}
void sieve_extension_unregister(const struct sieve_extension *ext)
@@ -419,9 +420,10 @@
}
const struct sieve_extension *sieve_extension_require
-(struct sieve_instance *svinst, const struct sieve_extension_def *extdef)
+(struct sieve_instance *svinst, const struct sieve_extension_def *extdef,
+ bool implied)
{
- return _sieve_extension_register(svinst, extdef, TRUE, TRUE);
+ return _sieve_extension_register(svinst, extdef, TRUE, TRUE, implied);
}
int sieve_extensions_get_count(struct sieve_instance *svinst)
@@ -627,7 +629,7 @@
if ( exts[i]->id >= 0 && exts[i]->def != NULL &&
*(exts[i]->def->name) != '@' ) {
- if ( disabled && !exts[i]->required )
+ if ( disabled && !exts[i]->implied )
sieve_extension_disable(exts[i]);
else
sieve_extension_enable(exts[i]);
diff -r 42497f1c37ff -r ef58ace33b47 src/lib-sieve/sieve-extensions.h
--- a/src/lib-sieve/sieve-extensions.h Thu Apr 14 22:45:40 2011 +0200
+++ b/src/lib-sieve/sieve-extensions.h Mon May 09 20:56:08 2011 +0200
@@ -74,6 +74,7 @@
unsigned int required:1;
unsigned int loaded:1;
unsigned int enabled:1;
+ unsigned int implied:1;
unsigned int dummy:1;
};
@@ -116,7 +117,8 @@
(struct sieve_instance *svinst, const struct sieve_extension_def *extension,
bool load);
const struct sieve_extension *sieve_extension_require
- (struct sieve_instance *svinst, const struct sieve_extension_def *extension);
+ (struct sieve_instance *svinst, const struct sieve_extension_def *extension,
+ bool implied);
bool sieve_extension_reload(const struct sieve_extension *ext);
void sieve_extension_unregister(const struct sieve_extension *ext);
More information about the dovecot-cvs
mailing list