*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for sending messages to sender or to mailmaster. */
if (h->type == htype_id)
{
message_id = Ustrchr(h->text, ':') + 1;
- while (isspace(*message_id)) message_id++;
+ Uskip_whitespace(&message_id);
}
for (h = header_list; h; h = h->next)
fprintf(fp, "References:");
if (h)
{
- uschar * s, * id, * error;
+ const uschar * s;
+ uschar * id, * error;
uschar * referenced_ids[12];
int reference_count = 0;
&& (s2 = expand_string(string_sprintf("${address:%s}", s)))
&& *s2
)
- pid = child_open_exim2(&fd, s2, bounce_sender_authentication);
+ pid = child_open_exim2(&fd, s2, bounce_sender_authentication,
+ US"moan_send_message");
else
{
s = NULL;
- pid = child_open_exim(&fd);
+ pid = child_open_exim(&fd, US"moan_send_message");
}
#else
-pid = child_open_exim(&fd);
+pid = child_open_exim(&fd, US"moan_send_message");
#endif
if (pid < 0)
FILE *f;
va_list ap;
int fd;
-int pid = child_open_exim(&fd);
+int pid = child_open_exim(&fd, US"moan_tell_someone");
if (pid < 0)
{
fprintf(stderr, "The rest of the batch was abandoned.\n");
-exim_exit(yield, US"batch");
+exim_exit(yield);
}
uschar *item, *localpart, *domain;
const uschar *listptr = errors_copy;
uschar *yield = NULL;
-uschar buffer[256];
int sep = 0;
int llen;
/* Scan through the configured items */
-while ((item = string_nextinlist(&listptr, &sep, buffer, sizeof(buffer))))
+while ((item = string_nextinlist(&listptr, &sep, NULL, 0)))
{
const uschar *newaddress = item;
const uschar *pattern = string_dequote(&newaddress);
/* If we can't create a process to send the message, just forget about
it. */
-pid = child_open_exim(&fd);
+pid = child_open_exim(&fd, US"moan_skipped_syntax_errors");
if (pid < 0)
{