-/* $Cambridge: exim/src/src/deliver.c,v 1.15 2005/05/24 08:15:02 tom Exp $ */
+/* $Cambridge: exim/src/src/deliver.c,v 1.19 2005/06/22 15:44:37 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
if (fd >= 0)
{
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+ (void)fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
if (fchown(fd, exim_uid, exim_gid) < 0)
{
*error = US"chown";
gid/uid. */
close(pfd[pipe_read]);
- fcntl(pfd[pipe_write], F_SETFD, fcntl(pfd[pipe_write], F_GETFD) |
+ (void)fcntl(pfd[pipe_write], F_SETFD, fcntl(pfd[pipe_write], F_GETFD) |
FD_CLOEXEC);
exim_setugid(uid, gid, use_initgroups,
string_sprintf("local delivery to %s <%s> transport=%s", addr->local_part,
distinguishes between EOF and no-more-data. */
#ifdef O_NONBLOCK
- fcntl(pfd[pipe_read], F_SETFL, O_NONBLOCK);
+ (void)fcntl(pfd[pipe_read], F_SETFL, O_NONBLOCK);
#else
- fcntl(pfd[pipe_read], F_SETFL, O_NDELAY);
+ (void)fcntl(pfd[pipe_read], F_SETFL, O_NDELAY);
#endif
/* If the maximum number of subprocesses already exist, wait for a process
a new process that may be forked to do another delivery down the same
SMTP connection. */
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+ (void)fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
/* Close open file descriptors for the pipes of other processes
that are running in parallel. */
/* Set the close-on-exec flag */
- fcntl(deliver_datafile, F_SETFD, fcntl(deliver_datafile, F_GETFD) |
+ (void)fcntl(deliver_datafile, F_SETFD, fcntl(deliver_datafile, F_GETFD) |
FD_CLOEXEC);
/* Set the uid/gid of this process; bombs out on failure. */
sprintf(CS big_buffer, "%s/input/%s/%s", spool_directory, message_subdir,
spoolname);
if (Ustat(big_buffer, &statbuf) == 0)
- {
- int size = statbuf.st_size; /* Because might be a long */
- log_write(0, LOG_MAIN, "Format error in spool file %s: size=%d",
- spoolname, size);
- }
+ log_write(0, LOG_MAIN, "Format error in spool file %s: "
+ "size=" OFF_T_FMT, spoolname, statbuf.st_size);
else log_write(0, LOG_MAIN, "Format error in spool file %s", spoolname);
}
else
log_write(0, LOG_MAIN, "Unfrozen by errmsg timer");
}
- /* If there's no auto thaw, or we haven't reached the auto thaw time yet, and
- this delivery is not forced by an admin user, do not attempt delivery of this
- message. Note that forced is set for continuing messages down the same
- channel, in order to skip load checking and ignore hold domains, but we
- don't want unfreezing in that case. */
+ /* If this is a bounce message, or there's no auto thaw, or we haven't
+ reached the auto thaw time yet, and this delivery is not forced by an admin
+ user, do not attempt delivery of this message. Note that forced is set for
+ continuing messages down the same channel, in order to skip load checking and
+ ignore hold domains, but we don't want unfreezing in that case. */
else
{
- if ((auto_thaw <= 0 || now <= deliver_frozen_at + auto_thaw) &&
- (!forced || !deliver_force_thaw || !admin_user ||
- continue_hostname != NULL))
+ if ((sender_address[0] == 0 ||
+ auto_thaw <= 0 ||
+ now <= deliver_frozen_at + auto_thaw
+ )
+ &&
+ (!forced || !deliver_force_thaw || !admin_user ||
+ continue_hostname != NULL
+ ))
{
close(deliver_datafile);
deliver_datafile = -1;
that the mode is correct - the group setting doesn't always seem to get
set automatically. */
- fcntl(journal_fd, F_SETFD, fcntl(journal_fd, F_GETFD) | FD_CLOEXEC);
- fchown(journal_fd, exim_uid, exim_gid);
- fchmod(journal_fd, SPOOL_MODE);
+ (void)fcntl(journal_fd, F_SETFD, fcntl(journal_fd, F_GETFD) | FD_CLOEXEC);
+ (void)fchown(journal_fd, exim_uid, exim_gid);
+ (void)fchmod(journal_fd, SPOOL_MODE);
}
if (emf_text != NULL) fprintf(f, "%s", CS emf_text); else
{
fprintf(f,
-"------ The body of the message is %d characters long; only the first\n"
-"------ %d or so are included here.\n", (int)statbuf.st_size, max);
+"------ The body of the message is " OFF_T_FMT " characters long; only the first\n"
+"------ %d or so are included here.\n", statbuf.st_size, max);
}
}
}