uschar *primary_hostname = NULL;
+uschar *queue_name = US"";
+
int received_count = 0;
uschar *received_protocol = NULL;
int received_time = 0;
for (i = 0; i < (spool_is_split? 2:1); i++)
{
message_subdir[0] = (i != 0)? ((uschar *)client_data)[5] : 0;
- sprintf(CS buffer, "%s/msglog/%s/%s", spool_directory, message_subdir,
- (uschar *)client_data);
- f = fopen(CS buffer, "r");
- if (f != NULL) break;
+ snprintf(CS buffer, sizeof(buffer), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, (uschar *)client_data);
+ if ((f = fopen(CS buffer, "r")))
+ break;
}
if (f == NULL)
for (i = 0; i < (spool_is_split? 2:1); i++)
{
- message_subdir[0] = (i != 0)? ((uschar *)client_data)[5] : 0;
- sprintf(CS buffer, "%s/input/%s/%s-D", spool_directory, message_subdir,
- (uschar *)client_data);
- f = fopen(CS buffer, "r");
- if (f != NULL) break;
+ message_subdir[0] = i != 0 ? ((uschar *)client_data)[5] : 0;
+ snprintf(CS buffer, sizeof(buffer), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, (uschar *)client_data);
+ if ((f = fopen(CS buffer, "r")))
+ break;
}
if (f == NULL)
sender_address = NULL;
-sprintf(CS buffer, "%s/input/%s/%s-D", spool_directory, message_subdir, name);
+snprintf(CS buffer, sizeof(buffer), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, name);
if (Ustat(buffer, &statdata) == 0)
q->size = message_size + statdata.st_size - SPOOL_DATA_START_OFFSET + 1;
been delivered, and removing visible names. */
if (recipients_list != NULL)
- {
for (i = 0; i < recipients_count; i++)
{
uschar *r = recipients_list[i].address;
(void)find_dest(q, r, dest_add, FALSE);
}
}
- }
/* Recover the dynamic store used by spool_read_header(). */
message_subdir[0] = p->dir_char;
-sprintf(CS buffer, "%s/input/%s/%s-J", spool_directory, message_subdir, p->name);
-jread = fopen(CS buffer, "r");
-if (jread == NULL)
+snprintf(CS buffer, sizeof(buffer), "%s/input/%s/%s/%s-J",
+ spool_directory, queue_name, message_subdir, p->name);
+
+if (!(jread = fopen(CS buffer, "r")))
{
- sprintf(CS buffer, "%s/input/%s/%s-H", spool_directory, message_subdir, p->name);
+ snprintf(CS buffer, sizeof(buffer), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, p->name);
if (Ustat(buffer, &statdata) < 0 || p->update_time == statdata.st_mtime)
return;
}
message_subdir[1] = '\0';
for (i = 0; i < 2; i++)
{
- message_subdir[0] = (split_spool_directory == (i == 0))? message_id[5] : 0;
- sprintf(CS mbox_path, "%s/input/%s/%s-D", spool_directory, message_subdir, message_id);
- data_file = Ufopen(mbox_path,"rb");
- if (data_file != NULL)
+ message_subdir[0] = split_spool_directory == (i == 0) ? message_id[5] : 0;
+ snprintf(CS mbox_path, sizeof(mbox_path), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
+ if ((data_file = Ufopen(mbox_path,"rb")))
break;
}
- if (data_file == NULL)
+ if (!data_file)
{
/* error while spooling */
log_write(0, LOG_MAIN|LOG_PANIC,
if (fd < 0 && errno == ENOENT)
{
- uschar temp[16];
- sprintf(CS temp, "msglog/%s", message_subdir);
- if (message_subdir[0] == 0) temp[6] = 0;
+ uschar * temp = string_sprintf("msglog%s%s%s%s",
+ *queue_name ? "/" : "", queue_name,
+ *message_subdir ? "/" : "", message_subdir);
(void)directory_make(spool_directory, temp, MSGLOG_DIRECTORY_MODE, TRUE);
fd = Uopen(filename, O_WRONLY|O_APPEND|O_CREAT, mode);
}
{
uschar *error;
addr->return_filename =
- string_sprintf("%s/msglog/%s/%s-%d-%d", spool_directory, message_subdir,
+ string_sprintf("%s/msglog/%s/%s/%s-%d-%d",
+ spool_directory, queue_name, message_subdir,
message_id, getpid(), return_count++);
addr->return_file = open_msglog_file(addr->return_filename, 0400, &error);
if (addr->return_file < 0)
a dup-with-new-file-pointer. */
(void)close(deliver_datafile);
- sprintf(CS spoolname, "%s/input/%s/%s-D", spool_directory, message_subdir,
- message_id);
- deliver_datafile = Uopen(spoolname, O_RDWR | O_APPEND, 0);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
- if (deliver_datafile < 0)
+ if ((deliver_datafile = Uopen(spoolname, O_RDWR | O_APPEND, 0)) < 0)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "Failed to reopen %s for remote "
"parallel delivery: %s", spoolname, strerror(errno));
if (errno == ERRNO_SPOOLFORMAT)
{
struct stat statbuf;
- sprintf(CS big_buffer, "%s/input/%s/%s", spool_directory, message_subdir,
- spoolname);
+ sprintf(CS big_buffer, "%s/input/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, spoolname);
if (Ustat(big_buffer, &statbuf) == 0)
log_write(0, LOG_MAIN, "Format error in spool file %s: "
"size=" OFF_T_FMT, spoolname, statbuf.st_size);
if (now - received_time > keep_malformed)
{
- sprintf(CS spoolname, "%s/msglog/%s/%s", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, id);
Uunlink(spoolname);
- sprintf(CS spoolname, "%s/input/%s/%s-D", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, id);
Uunlink(spoolname);
- sprintf(CS spoolname, "%s/input/%s/%s-H", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, id);
Uunlink(spoolname);
- sprintf(CS spoolname, "%s/input/%s/%s-J", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-J",
+ spool_directory, queue_name, message_subdir, id);
Uunlink(spoolname);
log_write(0, LOG_MAIN, "Message removed because older than %s",
readconf_printtime(keep_malformed));
run, and it will be deleted if this function gets to its end successfully.
Otherwise it might be needed again. */
-sprintf(CS spoolname, "%s/input/%s/%s-J", spool_directory, message_subdir, id);
-jread = Ufopen(spoolname, "rb");
-if (jread)
+snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-J",
+ spool_directory, queue_name, message_subdir, id);
+
+if ((jread = Ufopen(spoolname, "rb")))
{
while (Ufgets(big_buffer, big_buffer_size, jread))
{
uschar *error;
int fd;
- sprintf(CS spoolname, "%s/msglog/%s/%s", spool_directory, message_subdir, id);
- fd = open_msglog_file(spoolname, SPOOL_MODE, &error);
-
- if (fd < 0)
+ snprintf(CS spoolname, sizeof(spoolname), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, id);
+
+ if ((fd = open_msglog_file(spoolname, SPOOL_MODE, &error)) < 0)
{
log_write(0, LOG_MAIN|LOG_PANIC, "Couldn't %s message log %s: %s", error,
spoolname, strerror(errno));
if (addr_local || addr_remote)
{
- sprintf(CS spoolname, "%s/input/%s/%s-J", spool_directory, message_subdir, id);
- journal_fd = Uopen(spoolname, O_WRONLY|O_APPEND|O_CREAT, SPOOL_MODE);
-
- if (journal_fd < 0)
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-J",
+ spool_directory, queue_name, message_subdir, id);
+
+ if ((journal_fd = Uopen(spoolname, O_WRONLY|O_APPEND|O_CREAT, SPOOL_MODE)) <0)
{
log_write(0, LOG_MAIN|LOG_PANIC, "Couldn't open journal file %s: %s",
spoolname, strerror(errno));
{
if (message_logs)
{
- sprintf(CS spoolname, "%s/msglog/%s/%s", spool_directory, message_subdir,
- id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, id);
if (preserve_message_logs)
{
int rc;
- sprintf(CS big_buffer, "%s/msglog.OLD/%s", spool_directory, id);
+ sprintf(CS big_buffer, "%s/msglog.OLD/%s/%s",
+ spool_directory, queue_name, id);
if ((rc = Urename(spoolname, big_buffer)) < 0)
{
(void)directory_make(spool_directory, US"msglog.OLD",
/* Remove the two message files. */
- sprintf(CS spoolname, "%s/input/%s/%s-D", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, id);
if (Uunlink(spoolname) < 0)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to unlink %s: %s",
spoolname, strerror(errno));
- sprintf(CS spoolname, "%s/input/%s/%s-H", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, id);
if (Uunlink(spoolname) < 0)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to unlink %s: %s",
spoolname, strerror(errno));
if (remove_journal)
{
- sprintf(CS spoolname, "%s/input/%s/%s-J", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-J",
+ spool_directory, queue_name, message_subdir, id);
if (Uunlink(spoolname) < 0 && errno != ENOENT)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "failed to unlink %s: %s", spoolname,
strerror(errno));
uschar *queue_domains = NULL;
int queue_interval = -1;
BOOL queue_list_requires_admin = TRUE;
+uschar *queue_name = US"";
BOOL queue_only = FALSE;
uschar *queue_only_file = NULL;
int queue_only_load = -1;
extern pid_t queue_run_pid; /* PID of the queue running process or 0 */
extern int queue_run_pipe; /* Pipe for synchronizing */
extern int queue_interval; /* Queue running interval */
+extern uschar *queue_name; /* Name of queue, if nondefault spooling */
extern BOOL queue_only; /* TRUE to disable immediate delivery */
extern int queue_only_load; /* Max load before auto-queue */
extern BOOL queue_only_load_latch; /* Latch queue_only_load TRUE */
/* Set up prototype for the directory name. */
-sprintf(CS buffer, "%s/input", spool_directory);
+snprintf(CS buffer, sizeof(buffer), "%s/input/%s", spool_directory, queue_name);
+buffer[sizeof(buffer) - 3] = 0;
subptr = Ustrlen(buffer);
buffer[subptr+2] = 0; /* terminator for lengthened name */
buffer[subptr+1] = subdirchar;
}
- dd = opendir(CS buffer);
- if (dd == NULL) continue;
+ if (!(dd = opendir(CS buffer)))
+ continue;
/* Now scan the directory. */
if (!split_spool_directory && count <= 2)
{
rmdir(CS buffer);
- sprintf(CS big_buffer, "%s/msglog/%c", spool_directory, subdirchar);
+ sprintf(CS big_buffer, "%s/msglog/%s/%c",
+ spool_directory, queue_name, subdirchar);
rmdir(CS big_buffer);
}
if (subdiroffset > 0) break; /* Single sub-directory */
/* Check that the message still exists */
message_subdir[0] = f->dir_uschar;
- sprintf(CS buffer, "%s/input/%s/%s", spool_directory, message_subdir,
- f->text);
+ snprintf(CS buffer, sizeof(buffer), "%s/input/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, f->text);
if (Ustat(buffer, &statbuf) < 0) continue;
/* There are some tests that require the reading of the header file. Ensure
FILE *jread;
struct stat statbuf;
- sprintf(CS big_buffer, "%s/input/%s/%s", spool_directory, message_subdir,
- f->text);
+ sprintf(CS big_buffer, "%s/input/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, f->text);
ptr = Ustrlen(big_buffer)-1;
big_buffer[ptr] = 'D';
if (save_errno == ERRNO_SPOOLFORMAT)
{
struct stat statbuf;
- sprintf(CS big_buffer, "%s/input/%s/%s", spool_directory, message_subdir,
- f->text);
+ sprintf(CS big_buffer, "%s/input/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, f->text);
if (Ustat(big_buffer, &statbuf) == 0)
printf("*** spool format error: size=" OFF_T_FMT " ***",
statbuf.st_size);
for (i = 0; i < 2; i++)
{
- message_subdir[0] = (split_spool_directory == (i == 0))? id[5] : 0;
- sprintf(CS spoolname, "%s/%s/%s/%s%s", spool_directory, subdirectory,
- message_subdir, id, suffix);
- fd = Uopen(spoolname, O_RDONLY, 0);
- if (fd >= 0) break;
- if (i == 0) continue;
+ message_subdir[0] = split_spool_directory == (i == 0) ? id[5] : 0;
+ snprintf(CS spoolname, sizeof(spoolname), "%s/%s/%s/%s/%s%s",
+ spool_directory, subdirectory, queue_name,
+ message_subdir, id, suffix);
+ if ((fd = Uopen(spoolname, O_RDONLY, 0)) >= 0)
+ break;
+ if (i == 0)
+ continue;
+
printf("Failed to open %s file for %s%s: %s\n", subdirectory, id, suffix,
strerror(errno));
if (action == MSG_SHOW_LOG && !message_logs)
message_subdir[0] = id[5];
for (j = 0; j < 2; message_subdir[0] = 0, j++)
{
- sprintf(CS spoolname, "%s/msglog/%s/%s", spool_directory, message_subdir, id);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, id);
if (Uunlink(spoolname) < 0)
{
if (errno != ENOENT)
for (i = 0; i < 3; i++)
{
- sprintf(CS spoolname, "%s/input/%s/%s-%c", spool_directory, message_subdir,
- id, "DHJ"[i]);
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-%c",
+ spool_directory, queue_name, message_subdir, id, "DHJ"[i]);
if (Uunlink(spoolname) < 0)
{
if (errno != ENOENT)
to be the least significant base-62 digit of the time of arrival. Otherwise
ensure that it is an empty string. */
-message_subdir[0] = split_spool_directory? message_id[5] : 0;
+message_subdir[0] = split_spool_directory ? message_id[5] : 0;
/* Now that we have the message-id, if there is no message-id: header, generate
one, but only for local (without suppress_local_fixups) or submission mode
directory if it isn't there. Note re use of sprintf: spool_directory
is checked on input to be < 200 characters long. */
-sprintf(CS spool_name, "%s/input/%s/%s-D", spool_directory, message_subdir,
- message_id);
-data_fd = Uopen(spool_name, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE);
-if (data_fd < 0)
+snprintf(CS spool_name, sizeof(spool_name), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
+DEBUG(D_receive) debug_printf("Data file name: %s\n", spool_name);
+
+if ((data_fd = Uopen(spool_name, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE)) < 0)
{
if (errno == ENOENT)
{
- uschar temp[16];
- sprintf(CS temp, "input/%s", message_subdir);
- if (message_subdir[0] == 0) temp[5] = 0;
+ uschar * temp = string_sprintf("input%s%s%s%s",
+ *queue_name ? "/" : "", queue_name,
+ *message_subdir ? "/" : "", message_subdir);
(void)directory_make(spool_directory, temp, INPUT_DIRECTORY_MODE, TRUE);
data_fd = Uopen(spool_name, O_RDWR|O_CREAT|O_EXCL, SPOOL_MODE);
}
deliver_firsttime = TRUE;
#ifdef EXPERIMENTAL_BRIGHTMAIL
-if (bmi_run == 1) {
- /* rewind data file */
+if (bmi_run == 1)
+ { /* rewind data file */
lseek(data_fd, (long int)SPOOL_DATA_START_OFFSET, SEEK_SET);
bmi_verdicts = bmi_process_message(header_list, data_fd);
-};
+ }
#endif
/* Update the timstamp in our Received: header to account for any time taken by
/* Write the -H file */
else
- {
if ((msg_size = spool_write_header(message_id, SW_RECEIVING, &errmsg)) < 0)
{
log_write(0, LOG_MAIN, "Message abandoned: %s", errmsg);
/* Does not return */
}
}
- }
/* The message has now been successfully received. */
{
int fd;
- sprintf(CS spool_name, "%s/msglog/%s/%s", spool_directory, message_subdir,
- message_id);
- fd = Uopen(spool_name, O_WRONLY|O_APPEND|O_CREAT, SPOOL_MODE);
-
- if (fd < 0 && errno == ENOENT)
+ snprintf(CS spool_name, sizeof(spool_name), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, message_id);
+
+ if ( (fd = Uopen(spool_name, O_WRONLY|O_APPEND|O_CREAT, SPOOL_MODE)) < 0
+ && errno == ENOENT
+ )
{
- uschar temp[16];
- sprintf(CS temp, "msglog/%s", message_subdir);
- if (message_subdir[0] == 0) temp[6] = 0;
+ uschar * temp = string_sprintf("msglog%s%s%s%s",
+ *queue_name ? "/" : "", queue_name,
+ *message_subdir ? "/" : "", message_subdir);
(void)directory_make(spool_directory, temp, MSGLOG_DIRECTORY_MODE, TRUE);
fd = Uopen(spool_name, O_WRONLY|O_APPEND|O_CREAT, SPOOL_MODE);
}
/* Delete the files for this aborted message. */
- sprintf(CS spool_name, "%s/input/%s/%s-D", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
- sprintf(CS spool_name, "%s/input/%s/%s-H", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
- sprintf(CS spool_name, "%s/msglog/%s/%s", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
goto TIDYUP;
{
case ACCEPTED: log_write(0, LOG_MAIN, "Completed");/* Delivery was done */
case PERM_REJ: { /* Delete spool files */
- sprintf(CS spool_name, "%s/input/%s/%s-D", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
- sprintf(CS spool_name, "%s/input/%s/%s-H", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
- sprintf(CS spool_name, "%s/msglog/%s/%s", spool_directory,
- message_subdir, message_id);
+ snprintf(CS spool_name, sizeof(spool_name), "%s/msglog/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, message_id);
Uunlink(spool_name);
}
case TMP_REJ: message_id[0] = 0; /* Prevent a delivery from starting */
for (i = 0; i < 2; i++)
{
int save_errno;
- message_subdir[0] = (split_spool_directory == (i == 0))? id[5] : 0;
- sprintf(CS spoolname, "%s/input/%s/%s-D", spool_directory, message_subdir, id);
+ message_subdir[0] = split_spool_directory == (i == 0) ? id[5] : 0;
+ snprintf(CS spoolname, sizeof(spoolname), "%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, id);
+ DEBUG(D_deliver) debug_printf("Trying spool file %s\n", spoolname);
+
if ((fd = Uopen(spoolname, O_RDWR | O_APPEND, 0)) >= 0)
break;
save_errno = errno;
for (n = 0; n < 2; n++)
{
if (!subdir_set)
- message_subdir[0] = (split_spool_directory == (n == 0))? name[5] : 0;
- sprintf(CS big_buffer, "%s/input/%s/%s", spool_directory, message_subdir,
- name);
- f = Ufopen(big_buffer, "rb");
- if (f != NULL) break;
+ message_subdir[0] = split_spool_directory == (n == 0) ? name[5] : 0;
+ sprintf(CS big_buffer, "%s/input/%s/%s/%s",
+ spool_directory, queue_name, message_subdir, name);
+ if ((f = Ufopen(big_buffer, "rb"))) break;
if (n != 0 || subdir_set || errno != ENOENT) return spool_read_notopen;
}
message_subdir[1] = '\0';
for (i = 0; i < 2; i++)
{
- message_subdir[0] = (split_spool_directory == (i == 0))? message_id[5] : 0;
- temp_string = string_sprintf("%s/input/%s/%s-D", spool_directory,
- message_subdir, message_id);
- data_file = Ufopen(temp_string, "rb");
- if (data_file != NULL) break;
+ message_subdir[0] = split_spool_directory == (i == 0) ? message_id[5] : 0;
+ temp_string = string_sprintf("%s/input/%s/%s/%s-D",
+ spool_directory, queue_name, message_subdir, message_id);
+ if ((data_file = Ufopen(temp_string, "rb"))) break;
}
}
else
data_file = Ufopen(source_file_override, "rb");
- if (data_file == NULL)
+ if (!data_file)
{
log_write(0, LOG_MAIN|LOG_PANIC, "Could not open datafile for message %s",
message_id);
uschar name[256];
uschar temp_name[256];
-sprintf(CS temp_name, "%s/input/%s/hdr.%d", spool_directory, message_subdir,
- (int)getpid());
-fd = spool_open_temp(temp_name);
-if (fd < 0) return spool_write_error(where, errmsg, US"open", NULL, NULL);
+snprintf(CS temp_name, sizeof(temp_name), "%s/input/%s/%s/hdr.%d",
+ spool_directory, queue_name, message_subdir, (int)getpid());
+
+if ((fd = spool_open_temp(temp_name)) < 0)
+ return spool_write_error(where, errmsg, US"open", NULL, NULL);
f = fdopen(fd, "wb");
-DEBUG(D_receive|D_deliver) debug_printf("Writing spool header file\n");
+DEBUG(D_receive|D_deliver) debug_printf("Writing spool header file: %s\n", temp_name);
/* We now have an open file to which the header data is to be written. Start
with the file's leaf name, to make the file self-identifying. Continue with the
/* Rename the file to its correct name, thereby replacing any previous
incarnation. */
-sprintf(CS name, "%s/input/%s/%s-H", spool_directory, message_subdir, id);
+snprintf(CS name, sizeof(name), "%s/input/%s/%s/%s-H",
+ spool_directory, queue_name, message_subdir, id);
+DEBUG(D_receive|D_deliver) debug_printf("Renaming spool header file: %s\n", name);
if (Urename(temp_name, name) < 0)
return spool_write_error(where, errmsg, US"rename", temp_name, NULL);
#ifdef NEED_SYNC_DIRECTORY
-sprintf(CS temp_name, "%s/input/%s/.", spool_directory, message_subdir);
+snprintf(CS temp_name, sizeof(temp_name), "%s/input/%s/%s/.",
+ spool_directory, queue_name, message_subdir);
#ifndef O_DIRECTORY
#define O_DIRECTORY 0
check_string, escape_string, rewrite_rules,
rewrite_existflags);
-(void)string_format(dkim_spool_name, 256, "%s/input/%s/%s-%d-K",
- spool_directory, message_subdir, message_id, (int)getpid());
+(void)string_format(dkim_spool_name, sizeof(dkim_spool_name),
+ "%s/input/%s/%s/%s-%d-K",
+ spool_directory, queue_name, message_subdir, message_id, (int)getpid());
if ((dkim_fd = Uopen(dkim_spool_name, O_RDWR|O_CREAT|O_TRUNC, SPOOL_MODE)) < 0)
{
for (i = msgq_count - 1; i >= 0; --i) if (msgq[i].bKeep)
{
if (split_spool_directory)
- sprintf(CS spool_file, "%s%c/%s-D",
- spool_dir, msgq[i].message_id[5], msgq[i].message_id);
+ snprintf(CS spool_file, sizeof(spool_file), "%s/%s/%c/%s-D",
+ spool_dir, queue_name, msgq[i].message_id[5], msgq[i].message_id);
else
- sprintf(CS spool_file, "%s%s-D", spool_dir, msgq[i].message_id);
+ snprintf(CS spool_file, sizeof(spool_file), "%s/%s/%s-D",
+ spool_dir, queue_name, msgq[i].message_id);
if (Ustat(spool_file, &statbuf) != 0)
msgq[i].bKeep = FALSE;
# Environment cleaning
next if /\w+ in keep_environment\? (yes|no)/;
+ # The spool header file name varies with PID
+ s%^(Writing spool header file: .*/hdr).[0-9]{1,5}%$1.pppp%;
+
# When Exim is checking the size of directories for maildir, it uses
# the check_dir_size() function to scan directories. Of course, the order
# of the files that are obtained using readdir() varies from system to
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmbF-0005vi-00-D
Data file written for message 10HmbF-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.9.8.7]
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmbG-0005vi-00-D
Data file written for message 10HmbG-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.9.8.7]
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmbH-0005vi-00-D
Data file written for message 10HmbH-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.9.8.7]
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
DSN: r3 propagating DSN
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for CALLER@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |CALLER@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
DSN: r5 propagating DSN
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: x@y
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local-smtp (Exim x.yz)
id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= x@y U=CALLER P=local-smtp S=sss
F From: x@y
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local-smtp (Exim x.yz)
for two@z; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= x@y U=CALLER P=local-smtp S=sss
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.2.3.4]
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from host.name.tld ([V4NET.2.3.4])
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
* Resent-bcc: xx@yy.zz
F Resent-From: CALLER_NAME <CALLER@test.ex>
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
id 10HmaY-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by the.local.host.name with local (Exim x.yz)
for kilos@recurse.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |kilos@recurse.test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaY-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaY-0005vi-00-D
reading spool file 10HmaY-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.0.0.0] (helo=something)
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.11.12.13] (ident=CALLER)
>>
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |2@b| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= x@y H=[V4NET.11.12.13] U=CALLER P=smtp S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=x@y
sender_fullhost = [V4NET.11.12.13]
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from [V4NET.11.12.13] (ident=CALLER)
>>
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |2@b| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= x@y H=[V4NET.11.12.13] U=CALLER P=smtp S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaY-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaY-0005vi-00-D
reading spool file 10HmaY-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=x@y
sender_fullhost = [V4NET.11.12.13]
I Message-Id: <E10HmaY-0005vi-00@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from EXIMUSER by myhost.test.ex with local (Exim x.yz)
for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= <> R=10HmaX-0005vi-00 U=EXIMUSER P=local S=sss
>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
Completed
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
considering: ${tod_full}
expanding: ${tod_full}
considering: ${tod_full}
expanding: ${tod_full}
result: Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |rd+CALLER@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |rd+usery@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
id 10HmaY-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |sender@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |sender@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= <> R=10HmaX-0005vi-00 U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaY-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaY-0005vi-00-D
reading spool file 10HmaY-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
* Received: ; Tue, 2 Mar 1999 09:44:33 +0000
search_tidyup called
>>Headers after rewriting and local additions:
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: some text; Tue, 2 Mar 1999 09:44:33 +0000
I Message-Id: <E10HmaY-0005vi-00@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local-smtp (Exim x.yz)
end of ACL "check_data": ACCEPT
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |abc@domain| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= <> U=CALLER P=local-smtp S=sss
I Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local-smtp (Exim x.yz)
F From: CALLER_NAME <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for r1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |r1@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
I Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER (helo=x.y)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= x@y U=CALLER P=local-esmtp S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=x@y
sender_local=0 ident=CALLER
F From: "Phil Q. Hazel" <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: John "Jack" Smith <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: John "Jack" "Q." Smith <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaZ-0005vi-00-D
Data file written for message 10HmaZ-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmaZ-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: "John (Jack) Q. Smith" <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbA-0005vi-00-D
Data file written for message 10HmbA-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmbA-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: John ("Jack") "Q." Smith <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbB-0005vi-00-D
Data file written for message 10HmbB-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmbB-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: "John (\"Jack\") Q. Smith" <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbC-0005vi-00-D
Data file written for message 10HmbC-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmbC-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: "Phil \"Q Hazel" <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbD-0005vi-00-D
Data file written for message 10HmbD-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmbD-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: "Phil \"Q" "X." Hazel <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbE-0005vi-00-D
Data file written for message 10HmbE-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for X@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
+Renaming spool header file: TESTSUITE/spool/input///10HmbE-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
F From: CALLER_NAME <CALLER@myhost.test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@myhost.test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@myhost.test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@myhost.test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by mail.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for nofile@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |nofile@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaY-0005vi-00-D
Data file written for message 10HmaY-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaY-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaY-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaY-0005vi-00-D
reading spool file 10HmaY-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaZ-0005vi-00-D
Data file written for message 10HmaZ-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaZ-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaZ-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaZ-0005vi-00-D
reading spool file 10HmaZ-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
dbfn_write: key=T:userx@test.ex
end of retry processing
delivery deferred: update_spool=1 header_rewritten=0
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaZ-0005vi-00-H
Size of headers = sss
end delivery of 10HmaZ-0005vi-00
search_tidyup called
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmbA-0005vi-00-D
Data file written for message 10HmbA-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmbA-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmbA-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmbA-0005vi-00-D
reading spool file 10HmbA-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER
dbfn_write: key=T:userx@test.ex
end of retry processing
delivery deferred: update_spool=1 header_rewritten=0
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmbA-0005vi-00-H
Size of headers = sss
end delivery of 10HmbA-0005vi-00
search_tidyup called
F From: CALLER_NAME <CALLER@test.ex>
Date: Tue, 2 Mar 1999 09:44:33 +0000
+Data file name: TESTSUITE/spool/input///10HmaX-0005vi-00-D
Data file written for message 10HmaX-0005vi-00
>>Generated Received: header line
P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
calling local_scan(); timeout=300
local_scan() returned 0 NULL
-Writing spool header file
+Writing spool header file: TESTSUITE/spool/input///hdr.pppp
DSN: Write SPOOL :-dsn_envid NULL
DSN: Write SPOOL :-dsn_ret 0
DSN: Flags :0
DSN: **** SPOOL_OUT - address: |userx@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool/input///10HmaX-0005vi-00-H
Size of headers = sss
LOG: MAIN
<= CALLER@test.ex U=CALLER P=local S=sss
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool/input///10HmaX-0005vi-00-D
reading spool file 10HmaX-0005vi-00-H
user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
sender_local=1 ident=CALLER