diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 0139567d64c6e4068670554a10fabdc46cc7d154..8d021629334c47e30eef0892f05772f9794223d4 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -517,6 +517,7 @@ struct sieve_binary *sieve_tool_script_compile ehandler = sieve_stderr_ehandler_create(svinst, 0); sieve_error_handler_accept_infolog(ehandler, TRUE); + sieve_error_handler_accept_debuglog(ehandler, svinst->debug); if ( (sbin = sieve_compile(svinst, filename, name, ehandler, NULL)) == NULL ) i_error("failed to compile sieve script '%s'", filename); diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c index 8ad118d2b001612d56b21f8c8fef64785ecb38e9..5b6bdb8c62d6647e99936f8f1f65a4889d6214ab 100644 --- a/src/lib-sieve/sieve-error.c +++ b/src/lib-sieve/sieve-error.c @@ -144,13 +144,13 @@ void sieve_direct_vinfo void sieve_direct_vdebug (struct sieve_instance *svinst, struct sieve_error_handler *ehandler, unsigned int flags, const char *location, const char *fmt, va_list args) -{ +{ if ( (flags & SIEVE_ERROR_FLAG_GLOBAL) != 0 && - (ehandler == NULL || ehandler->parent == NULL) && + (ehandler == NULL || ehandler->parent == NULL) && svinst->system_ehandler != ehandler && svinst->system_ehandler->vdebug != NULL ) { va_list args_copy; - + VA_COPY(args_copy, args); svinst->system_ehandler->vdebug @@ -159,8 +159,8 @@ void sieve_direct_vdebug if ( ehandler == NULL ) return; - if ( ehandler->parent != NULL || ehandler->log_info ) { - if ( ehandler->vdebug != NULL ) + if ( ehandler->parent != NULL || ehandler->log_debug ) { + if ( ehandler->vdebug != NULL ) ehandler->vdebug(ehandler, flags, location, fmt, args); } } @@ -527,7 +527,7 @@ void sieve_error_handler_init ehandler->svinst = svinst; ehandler->refcount = 1; ehandler->max_errors = max_errors; - + ehandler->errors = 0; ehandler->warnings = 0; } @@ -667,6 +667,8 @@ struct sieve_error_handler *sieve_master_ehandler_create if ( prefix != NULL ) ehandler->prefix = p_strdup(pool, prefix); + ehandler->handler.log_debug = svinst->debug; + return &ehandler->handler; } diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c index 5c45632b7779a0638726ff004cdeb6996a165499..88581c712be9c21347a1f779abf31a3d5ada9437 100644 --- a/src/lib-sieve/sieve-script.c +++ b/src/lib-sieve/sieve-script.c @@ -138,11 +138,11 @@ static void sieve_script_handle_file_error { switch ( errno ) { case ENOENT: + if ( svinst->debug ) + sieve_sys_debug(svinst, "script file %s not found", t_abspath(path)); if ( error_r == NULL ) sieve_error(ehandler, name, "sieve script does not exist"); else { - if ( svinst->debug ) - sieve_sys_debug(svinst, "script file %s not found", t_abspath(path)); *error_r = SIEVE_ERROR_NOT_FOUND; } break;