git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Overhaul of GnuTLS code.
[exim.git]
/
src
/
src
/
spool_out.c
diff --git
a/src/src/spool_out.c
b/src/src/spool_out.c
index 8feaf860f0e8fcc3d939464872480d23dfa66e59..0d32fd6cae097b68b57bcb0d1f3673da1852806f 100644
(file)
--- a/
src/src/spool_out.c
+++ b/
src/src/spool_out.c
@@
-1,10
+1,8
@@
-/* $Cambridge: exim/src/src/spool_out.c,v 1.6 2005/02/17 11:58:26 ph10 Exp $ */
-
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 200
5
*/
+/* Copyright (c) University of Cambridge 1995 - 200
9
*/
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for writing spool files, and moving them about. */
/* See the file NOTICE for conditions of use and distribution. */
/* Functions for writing spool files, and moving them about. */
@@
-48,7
+46,7
@@
uschar *msg = (where == SW_RECEIVING)?
strerror(errno));
if (temp_name != NULL) Uunlink(temp_name);
strerror(errno));
if (temp_name != NULL) Uunlink(temp_name);
-if (f != NULL) fclose(f);
+if (f != NULL)
(void)
fclose(f);
if (errmsg == NULL)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s", msg);
if (errmsg == NULL)
log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s", msg);
@@
-96,8
+94,8
@@
automatically. */
if (fd >= 0)
{
if (fd >= 0)
{
- fchown(fd, exim_uid, exim_gid);
- fchmod(fd, SPOOL_MODE);
+
(void)
fchown(fd, exim_uid, exim_gid);
+
(void)
fchmod(fd, SPOOL_MODE);
}
return fd;
}
return fd;
@@
-190,18
+188,15
@@
if (sender_ident != NULL) fprintf(f, "-ident %s\n", sender_ident);
if (received_protocol != NULL)
fprintf(f, "-received_protocol %s\n", received_protocol);
if (received_protocol != NULL)
fprintf(f, "-received_protocol %s\n", received_protocol);
-/* Preserve any ACL variables that are set. Because the values may contain
-newlines, we use an explicit length. */
+/* Preserve any ACL variables that are set. */
-for (i = 0; i < ACL_C_MAX + ACL_M_MAX; i++)
- {
- if (acl_var[i] != NULL)
- fprintf(f, "-acl %d %d\n%s\n", i, Ustrlen(acl_var[i]), acl_var[i]);
- }
+tree_walk(acl_var_c, &acl_var_write, f);
+tree_walk(acl_var_m, &acl_var_write, f);
/* Now any other data that needs to be remembered. */
fprintf(f, "-body_linecount %d\n", body_linecount);
/* Now any other data that needs to be remembered. */
fprintf(f, "-body_linecount %d\n", body_linecount);
+fprintf(f, "-max_received_linelength %d\n", max_received_linelength);
if (body_zerocount > 0) fprintf(f, "-body_zerocount %d\n", body_zerocount);
if (body_zerocount > 0) fprintf(f, "-body_zerocount %d\n", body_zerocount);
@@
-233,7
+228,8
@@
if (bmi_verdicts != NULL) fprintf(f, "-bmi_verdicts %s\n", bmi_verdicts);
#ifdef SUPPORT_TLS
if (tls_certificate_verified) fprintf(f, "-tls_certificate_verified\n");
if (tls_cipher != NULL) fprintf(f, "-tls_cipher %s\n", tls_cipher);
#ifdef SUPPORT_TLS
if (tls_certificate_verified) fprintf(f, "-tls_certificate_verified\n");
if (tls_cipher != NULL) fprintf(f, "-tls_cipher %s\n", tls_cipher);
-if (tls_peerdn != NULL) fprintf(f, "-tls_peerdn %s\n", tls_peerdn);
+if (tls_peerdn != NULL) fprintf(f, "-tls_peerdn %s\n", string_printing(tls_peerdn));
+if (tls_sni != NULL) fprintf(f, "-tls_sni %s\n", string_printing(tls_sni));
#endif
/* To complete the envelope, write out the tree of non-recipients, followed by
#endif
/* To complete the envelope, write out the tree of non-recipients, followed by
@@
-291,7
+287,7
@@
if (fflush(f) != 0 || ferror(f))
just pushes it out of C, and fclose() doesn't guarantee to do the write
either. That's just the way Unix works... */
just pushes it out of C, and fclose() doesn't guarantee to do the write
either. That's just the way Unix works... */
-if (fsync(fileno(f)) < 0)
+if (
EXIM
fsync(fileno(f)) < 0)
return spool_write_error(where, errmsg, US"sync", temp_name, f);
/* Get the size of the file, and close it. */
return spool_write_error(where, errmsg, US"sync", temp_name, f);
/* Get the size of the file, and close it. */
@@
-329,7
+325,7
@@
sprintf(CS temp_name, "%s/input/%s/.", spool_directory, message_subdir);
if ((fd = Uopen(temp_name, O_RDONLY|O_DIRECTORY, 0)) < 0)
return spool_write_error(where, errmsg, US"directory open", name, NULL);
if ((fd = Uopen(temp_name, O_RDONLY|O_DIRECTORY, 0)) < 0)
return spool_write_error(where, errmsg, US"directory open", name, NULL);
-if (fsync(fd) < 0 && errno != EINVAL)
+if (
EXIM
fsync(fd) < 0 && errno != EINVAL)
return spool_write_error(where, errmsg, US"directory sync", name, NULL);
if (close(fd) < 0)
return spool_write_error(where, errmsg, US"directory sync", name, NULL);
if (close(fd) < 0)