dovecot-2.0-pigeonhole: Made child error handlers inherit master...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Sat Jan 16 00:07:40 EET 2010


details:   http://hg.rename-it.nl/dovecot-2.0-pigeonhole/rev/7888438a2fe7
changeset: 1205:7888438a2fe7
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Fri Jan 15 16:46:45 2010 +0100
description:
Made child error handlers inherit master_log status from parent.

diffstat:

 src/lib-sieve/sieve-error-private.h |   4 ++++
 src/lib-sieve/sieve-error.c         |  22 +++++++++++++++-------
 2 files changed, 19 insertions(+), 7 deletions(-)

diffs (67 lines):

diff -r 079c69045afc -r 7888438a2fe7 src/lib-sieve/sieve-error-private.h
--- a/src/lib-sieve/sieve-error-private.h	Thu Jan 14 10:21:34 2010 +0100
+++ b/src/lib-sieve/sieve-error-private.h	Fri Jan 15 16:46:45 2010 +0100
@@ -40,6 +40,10 @@
 void sieve_error_handler_init
 	(struct sieve_error_handler *ehandler, pool_t pool, unsigned int max_errors);
 
+void sieve_error_handler_init_from_parent
+	(struct sieve_error_handler *ehandler, pool_t pool, 
+		struct sieve_error_handler *parent);
+
 /*
  * Direct handler calls
  */
diff -r 079c69045afc -r 7888438a2fe7 src/lib-sieve/sieve-error.c
--- a/src/lib-sieve/sieve-error.c	Thu Jan 14 10:21:34 2010 +0100
+++ b/src/lib-sieve/sieve-error.c	Fri Jan 15 16:46:45 2010 +0100
@@ -245,7 +245,7 @@
  */
 
 void sieve_error_handler_init
-	(struct sieve_error_handler *ehandler, pool_t pool, unsigned int max_errors)
+(struct sieve_error_handler *ehandler, pool_t pool, unsigned int max_errors)
 {
 	ehandler->pool = pool;
 	ehandler->refcount = 1;
@@ -255,6 +255,18 @@
 	ehandler->warnings = 0;
 }
 
+void sieve_error_handler_init_from_parent
+(struct sieve_error_handler *ehandler, pool_t pool, struct sieve_error_handler *parent)
+{
+	i_assert( parent != NULL );
+
+	sieve_error_handler_init(ehandler, pool, parent->max_errors);
+
+	ehandler->handler.log_master = parent->log_master;
+	ehandler->handler.log_info = parent->log_info;
+	ehandler->handler.log_debug = parent->log_debug;
+}
+
 void sieve_error_handler_ref(struct sieve_error_handler *ehandler)
 {
 	if ( ehandler == NULL || ehandler->pool == NULL ) return;
@@ -881,9 +893,7 @@
 	ehandler->location = p_strdup(pool, location);
 	ehandler->prefix = p_strdup(pool, prefix);
 
-	sieve_error_handler_init(&ehandler->handler, pool, parent->max_errors);
-    ehandler->handler.log_info = parent->log_info;
-    ehandler->handler.log_debug = parent->log_debug;
+	sieve_error_handler_init_from_parent(&ehandler->handler, pool, parent);
 
 	ehandler->handler.verror = sieve_prefix_verror;
 	ehandler->handler.vwarning = sieve_prefix_vwarning;
@@ -1002,9 +1012,7 @@
 	ehandler->format = format;
 	p_array_init(&ehandler->table, pool, 10);
 
-	sieve_error_handler_init(&ehandler->handler, pool, parent->max_errors);
-	ehandler->handler.log_info = parent->log_info;
-	ehandler->handler.log_debug = parent->log_debug;
+	sieve_error_handler_init_from_parent(&ehandler->handler, pool, parent);
 
 	entry = array_append_space(&ehandler->table);
 	entry->key = '$';


More information about the dovecot-cvs mailing list