X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/d6a96edc044b5876b32787374618e44c37e40423..3634fc257bd0667daef14d72005cd87c735bbb24:/src/src/routers/redirect.c diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c index e22699216..c6705e5b5 100644 --- a/src/src/routers/redirect.c +++ b/src/src/routers/redirect.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/routers/redirect.c,v 1.18 2006/11/20 11:43:40 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2006 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -101,6 +99,8 @@ optionlist redirect_router_options[] = { (void *)offsetof(redirect_router_options_block, reply_transport_name) }, { "rewrite", opt_bit | (RDON_REWRITE << 16), (void *)offsetof(redirect_router_options_block, bit_options) }, + { "sieve_enotify_mailto_owner", opt_stringptr, + (void *)offsetof(redirect_router_options_block, sieve_enotify_mailto_owner) }, { "sieve_subaddress", opt_stringptr, (void *)offsetof(redirect_router_options_block, sieve_subaddress) }, { "sieve_useraddress", opt_stringptr, @@ -151,6 +151,7 @@ redirect_router_options_block redirect_router_option_defaults = { NULL, /* sieve_subaddress */ NULL, /* sieve_useraddress */ NULL, /* sieve_vacation_directory */ + NULL, /* sieve_enotify_mailto_owner */ NULL, /* syntax_errors_text */ NULL, /* syntax_errors_to */ NULL, /* qualify_domain */ @@ -334,6 +335,9 @@ while (generated != NULL) next->parent = addr; orflag(next, addr, af_ignore_error); next->start_router = rblock->redirect_router; + if (addr->child_count == SHRT_MAX) + log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s router generated more than %d " + "child addresses for <%s>", rblock->name, SHRT_MAX, addr->address); addr->child_count++; next->next = *addr_new; @@ -690,10 +694,10 @@ else } frc = rda_interpret(&redirect, options, ob->include_directory, - ob->sieve_vacation_directory, ob->sieve_useraddress, ob->sieve_subaddress, - &ugid, &generated, &(addr->message), ob->skip_syntax_errors? &eblock : NULL, - &filtertype, string_sprintf("%s router (recipient is %s)", rblock->name, - addr->address)); + ob->sieve_vacation_directory, ob->sieve_enotify_mailto_owner, + ob->sieve_useraddress, ob->sieve_subaddress, &ugid, &generated, + &(addr->message), ob->skip_syntax_errors? &eblock : NULL, &filtertype, + string_sprintf("%s router (recipient is %s)", rblock->name, addr->address)); qualify_domain_recipient = save_qualify_domain_recipient;