dovecot-2.2-pigeonhole: Sieve extprograms plugin: Improved handi...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Sat Nov 16 00:13:38 EET 2013


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/b7434a02fc51
changeset: 1820:b7434a02fc51
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Fri Nov 15 23:13:32 2013 +0100
description:
Sieve extprograms plugin: Improved handing of extension configuration.

diffstat:

 src/plugins/sieve-extprograms/sieve-extprograms-common.c |  18 ++++++++-------
 1 files changed, 10 insertions(+), 8 deletions(-)

diffs (50 lines):

diff -r 16671ce66f75 -r b7434a02fc51 src/plugins/sieve-extprograms/sieve-extprograms-common.c
--- a/src/plugins/sieve-extprograms/sieve-extprograms-common.c	Mon Nov 11 01:44:19 2013 +0100
+++ b/src/plugins/sieve-extprograms/sieve-extprograms-common.c	Fri Nov 15 23:13:32 2013 +0100
@@ -62,8 +62,7 @@
 	struct sieve_extprograms_config *ext_config;
 	const char *extname = sieve_extension_name(ext);
 	const char *bin_dir, *socket_dir;
-	sieve_number_t execute_timeout =
-		SIEVE_EXTPROGRAMS_DEFAULT_EXEC_TIMEOUT_SECS;
+	sieve_number_t execute_timeout;
 
 	extname = strrchr(extname, '.');
 	i_assert(extname != NULL);
@@ -75,6 +74,8 @@
 		(svinst, t_strdup_printf("sieve_%s_socket_dir", extname));
 	
 	ext_config = i_new(struct sieve_extprograms_config, 1);
+	ext_config->execute_timeout = 
+		SIEVE_EXTPROGRAMS_DEFAULT_EXEC_TIMEOUT_SECS;
 
 	if ( bin_dir == NULL && socket_dir == NULL ) {
 		if ( svinst->debug ) {
@@ -86,12 +87,12 @@
 	} else {
 		ext_config->bin_dir = i_strdup(bin_dir);
 		ext_config->socket_dir = i_strdup(socket_dir);
-	}
 
-	if (sieve_setting_get_duration_value
-		(svinst, t_strdup_printf("sieve_%s_exec_timeout", extname),
-			&execute_timeout)) {
-		ext_config->execute_timeout = execute_timeout;
+		if (sieve_setting_get_duration_value
+			(svinst, t_strdup_printf("sieve_%s_exec_timeout", extname),
+				&execute_timeout)) {
+			ext_config->execute_timeout = execute_timeout;
+		}
 	}
 
 	if ( sieve_extension_is(ext, pipe_extension) ) 
@@ -415,7 +416,8 @@
 			"running program: %s", action, program_name);
 	}
 
-	if ( ext_config == NULL ) {
+	if ( ext_config == NULL ||
+		(ext_config->bin_dir == NULL && ext_config->socket_dir == NULL) ) {
 		sieve_sys_error(svinst, "action %s: "
 			"failed to execute program `%s': "
 			"vnd.dovecot.%s extension is unconfigured", action, program_name, action);


More information about the dovecot-cvs mailing list