X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9f6b3bf5187562bac4c96e3ed6a17740d01489fa..4687a69c269ee3f2a7f0625e0147a503fd9d3d0b:/src/src/transports/autoreply.c diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c index 42466875a..67d48a1cb 100644 --- a/src/src/transports/autoreply.c +++ b/src/src/transports/autoreply.c @@ -5,9 +5,12 @@ /* Copyright (c) The Exim Maintainers 2020 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ #include "../exim.h" + +#ifdef TRANSPORT_AUTOREPLY /* Remainder of file */ #include "autoreply.h" @@ -232,13 +235,12 @@ that needs to be removed */ s = newlist + Ustrlen(newlist); while (s > newlist && (isspace(s[-1]) || s[-1] == ',')) s--; -*s = 0; +*s = '\0'; /* Check to see if there any addresses left; if not, return NULL */ s = newlist; -while (s && isspace(*s)) s++; -if (*s) +if (Uskip_whitespace(&s)) return newlist; store_reset(reset_point); @@ -313,20 +315,21 @@ if (addr->reply) } else { - uschar *oncerepeat = ob->once_repeat; + uschar * oncerepeat; DEBUG(D_transport) debug_printf("taking data from transport\n"); - from = ob->from; - reply_to = ob->reply_to; - to = ob->to; - cc = ob->cc; - bcc = ob->bcc; - subject = ob->subject; - headers = ob->headers; - text = ob->text; - file = ob->file; - logfile = ob->logfile; - oncelog = ob->oncelog; + GET_OPTION("once_repeat"); oncerepeat = ob->once_repeat; + GET_OPTION("from"); from = ob->from; + GET_OPTION("reply_to"); reply_to = ob->reply_to; + GET_OPTION("to"); to = ob->to; + GET_OPTION("cc"); cc = ob->cc; + GET_OPTION("bcc"); bcc = ob->bcc; + GET_OPTION("subject"); subject = ob->subject; + GET_OPTION("headers"); headers = ob->headers; + GET_OPTION("text"); text = ob->text; + GET_OPTION("file"); file = ob->file; + GET_OPTION("log"); logfile = ob->logfile; + GET_OPTION("once"); oncelog = ob->oncelog; file_expand = ob->file_expand; return_message = ob->return_message; @@ -492,19 +495,7 @@ if (oncelog && *oncelog && to) exim_datum_size_set(&key_datum, Ustrlen(to) + 1); if (exim_dbget(dbm_file, &key_datum, &result_datum)) - { - /* If the datum size is that of a binary time, we are in the new world - where messages are sent periodically. Otherwise the file is an old one, - where the datum was filled with a tod_log time, which is assumed to be - different in size. For that, only one message is ever sent. This change - introduced at Exim 3.00. In a couple of years' time the test on the size - can be abolished. */ - - if (exim_datum_size_get(&result_datum) == sizeof(time_t)) - memcpy(&then, exim_datum_data_get(&result_datum), sizeof(time_t)); - else - then = now; - } + memcpy(&then, exim_datum_data_get(&result_datum), sizeof(time_t)); } /* Either "then" is set zero, if no message has yet been sent, or it @@ -600,7 +591,7 @@ for (h = header_list; h; h = h->next) if (h) { message_id = Ustrchr(h->text, ':') + 1; - while (isspace(*message_id)) message_id++; + Uskip_whitespace(&message_id); fprintf(fp, "In-Reply-To: %s", message_id); } @@ -623,7 +614,6 @@ if (text) if (ff) { -debug_printf("%s %d: ff\n", __FUNCTION__, __LINE__); while (Ufgets(big_buffer, big_buffer_size, ff) != NULL) { if (file_expand) @@ -647,7 +637,6 @@ limit if we are returning the body. */ if (return_message) { -debug_printf("%s %d: ret msg\n", __FUNCTION__, __LINE__); uschar *rubric = tblock->headers_only ? US"------ This is a copy of the message's header lines.\n" : tblock->body_only @@ -820,4 +809,5 @@ return FALSE; } #endif /*!MACRO_PREDEF*/ +#endif /*TRANSPORT_AUTOREPOL*/ /* End of transport/autoreply.c */