X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Frouters%2Fredirect.c;h=938db36008da6569961ef502e3a1820c1c108734;hb=56dbf856f209bbd6c6e211e691b8fd898e01dfe8;hp=5b6a08818f811a65d3d7050e1276e1f9d3de777a;hpb=acec9514b1006e352ef283f205ecec75a9b6ff0d;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c index 5b6a08818..938db3600 100644 --- a/src/src/routers/redirect.c +++ b/src/src/routers/redirect.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2016 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -359,7 +359,7 @@ while (generated) /* Don't do the "one_time" thing for the first pass of a 2-stage queue run. */ - if (ob->one_time && !queue_2stage) + if (ob->one_time && !f.queue_2stage) { for (parent = addr; parent->parent; parent = parent->parent) ; next->onetime_parent = parent->address; @@ -465,8 +465,9 @@ while (generated) } #ifdef SUPPORT_I18N - next->prop.utf8_msg = string_is_utf8(next->address) - || (sender_address && string_is_utf8(sender_address)); + if (!next->prop.utf8_msg) + next->prop.utf8_msg = string_is_utf8(next->address) + || (sender_address && string_is_utf8(sender_address)); #endif DEBUG(D_route) @@ -567,16 +568,16 @@ addr_prop.remove_headers = NULL; addr_prop.srs_sender = NULL; #endif #ifdef SUPPORT_I18N -addr_prop.utf8_msg = FALSE; /*XXX should we not copy this from the parent? */ -addr_prop.utf8_downcvt = FALSE; -addr_prop.utf8_downcvt_maybe = FALSE; +addr_prop.utf8_msg = addr->prop.utf8_msg; +addr_prop.utf8_downcvt = addr->prop.utf8_downcvt; +addr_prop.utf8_downcvt_maybe = addr->prop.utf8_downcvt_maybe; #endif /* When verifying and testing addresses, the "logwrite" command in filters must be bypassed. */ -if (verify == v_none && !address_test_mode) options |= RDO_REALLOG; +if (verify == v_none && !f.address_test_mode) options |= RDO_REALLOG; /* Sort out the fixed or dynamic uid/gid. This uid is used (a) for reading the file (and interpreting a filter) and (b) for running the transports for @@ -785,7 +786,7 @@ switch (frc) high so that their completion does not mark the original address done. */ case FF_FREEZE: - if (!deliver_manual_thaw) + if (!f.deliver_manual_thaw) { if ((xrc = sort_errors_and_headers(rblock, addr, verify, &addr_prop)) != OK) return xrc; @@ -854,7 +855,7 @@ if (eblock != NULL) if (!moan_skipped_syntax_errors( rblock->name, /* For message content */ eblock, /* Ditto */ - (verify != v_none || address_test_mode)? + (verify != v_none || f.address_test_mode)? NULL : ob->syntax_errors_to, /* Who to mail */ generated != NULL, /* True if not all failed */ ob->syntax_errors_text)) /* Custom message */ @@ -886,7 +887,7 @@ generated anything. Log what happened to this address, and return DISCARD. */ if (frc == FF_DELIVERED) { - if (generated == NULL && verify == v_none && !address_test_mode) + if (generated == NULL && verify == v_none && !f.address_test_mode) { log_write(0, LOG_MAIN, "=> %s <%s> R=%s", discarded, addr->address, rblock->name);