e19aceb0b2
* Move the contents of pkg-message into POST-INSTALL-NOTES, which gets installed in the !NOPORTDOCS case for future reference. * Refer to POST-INSTALL-NOTES from pkg-message in the !NOPORTDOCS case. In the NOPORTDOCS case, use POST-INSTALL-NOTES as the pkg-message.
104 lines
4.3 KiB
Plaintext
104 lines
4.3 KiB
Plaintext
diff -udrN src.orig/accept.c src/accept.c
|
|
--- src.orig/accept.c Thu Sep 6 15:25:28 2001
|
|
+++ src/accept.c Thu Sep 6 15:28:03 2001
|
|
@@ -2140,7 +2140,7 @@
|
|
anything until the terminating dot line is sent. */
|
|
|
|
if (fflush(data_file) == EOF || ferror(data_file) ||
|
|
- fsync(fileno(data_file)) < 0 || (accept_ferror)(fin))
|
|
+ (perform_fsync && fsync(fileno(data_file))) < 0 || (accept_ferror)(fin))
|
|
{
|
|
char *msg_errno = strerror(errno);
|
|
BOOL input_error = (accept_ferror)(fin) != 0;
|
|
diff -udrN src.orig/deliver.c src/deliver.c
|
|
--- src.orig/deliver.c Thu Sep 6 15:25:28 2001
|
|
+++ src/deliver.c Thu Sep 6 15:29:22 2001
|
|
@@ -578,7 +578,8 @@
|
|
{
|
|
BOOL return_output = FALSE;
|
|
struct stat statbuf;
|
|
- fsync(addr->return_file);
|
|
+ if (perform_fsync)
|
|
+ fsync(addr->return_file);
|
|
|
|
/* If there is no output, do nothing. */
|
|
|
|
@@ -1580,7 +1581,7 @@
|
|
|
|
/* Ensure the journal file is pushed out to disc. */
|
|
|
|
- if (fsync(journal_fd) < 0)
|
|
+ if (perform_fsync && fsync(journal_fd) < 0)
|
|
log_write(0, LOG_MAIN|LOG_PANIC, "failed to fsync journal: %s",
|
|
strerror(errno));
|
|
}
|
|
diff -udrN src.orig/globals.c src/globals.c
|
|
--- src.orig/globals.c Thu Sep 6 15:25:28 2001
|
|
+++ src/globals.c Thu Sep 6 15:24:49 2001
|
|
@@ -494,6 +494,7 @@
|
|
BOOL parse_allow_group = FALSE;
|
|
BOOL parse_found_group = FALSE;
|
|
char *percent_hack_domains = NULL;
|
|
+BOOL perform_fsync = TRUE;
|
|
char *pid_file_path = PID_FILE_PATH
|
|
"\0<--------------Space to patch pid_file_path->";
|
|
BOOL preserve_message_logs = FALSE;
|
|
diff -udrN src.orig/globals.h src/globals.h
|
|
--- src.orig/globals.h Thu Sep 6 15:25:28 2001
|
|
+++ src/globals.h Thu Sep 6 15:41:35 2001
|
|
@@ -364,6 +364,7 @@
|
|
extern BOOL parse_allow_group; /* Allow group syntax */
|
|
extern BOOL parse_found_group; /* In the middle of a group */
|
|
extern char *percent_hack_domains; /* Local domains for which '% operates */
|
|
+extern BOOL perform_fsync; /* Use fsync() to flush to disk */
|
|
extern char *pid_file_path; /* For writing daemon pids */
|
|
extern BOOL preserve_message_logs; /* Save msglog files */
|
|
extern char *primary_hostname; /* Primary name of this computer */
|
|
diff -udrN src.orig/readconf.c src/readconf.c
|
|
--- src.orig/readconf.c Thu Sep 6 15:25:28 2001
|
|
+++ src/readconf.c Thu Sep 6 15:24:19 2001
|
|
@@ -81,6 +81,7 @@
|
|
{ "finduser_retries", opt_int, &finduser_retries },
|
|
{ "forbid_domain_literals", opt_bool, &forbid_domain_literals },
|
|
{ "freeze_tell_mailmaster", opt_bool, &freeze_tell_mailmaster },
|
|
+ { "fsync", opt_bool, &perform_fsync },
|
|
{ "gecos_name", opt_stringptr, &gecos_name },
|
|
{ "gecos_pattern", opt_stringptr, &gecos_pattern },
|
|
{ "headers_check_syntax", opt_bool, &headers_check_syntax },
|
|
diff -udrN src.orig/spool_out.c src/spool_out.c
|
|
--- src.orig/spool_out.c Thu Sep 6 15:25:28 2001
|
|
+++ src/spool_out.c Thu Sep 6 15:29:51 2001
|
|
@@ -277,7 +277,7 @@
|
|
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 (perform_fsync && fsync(fileno(f)) < 0)
|
|
return spool_write_error(where, errmsg, "sync", temp_name, f);
|
|
|
|
/* Get the size of the file, and close it. */
|
|
diff -udrN src.orig/transports/appendfile.c src/transports/appendfile.c
|
|
--- src.orig/transports/appendfile.c Thu Sep 6 15:25:28 2001
|
|
+++ src/transports/appendfile.c Thu Sep 6 15:31:40 2001
|
|
@@ -2556,7 +2556,7 @@
|
|
/* Force out the remaining data to check for any errors; some OS don't allow
|
|
fsync() to be called for a FIFO. */
|
|
|
|
-if (yield == OK && !isfifo && fsync(fd) < 0) yield = DEFER;
|
|
+if (perform_fsync && yield == OK && !isfifo && fsync(fd) < 0) yield = DEFER;
|
|
|
|
/* Handle error while writing the file. Control should come here directly after
|
|
the error, with the reason in errno. In the case of expansion failure in prefix
|
|
diff -udrN src.orig/transports/smtp.c src/transports/smtp.c
|
|
--- src.orig/transports/smtp.c Thu Sep 6 15:25:28 2001
|
|
+++ src/transports/smtp.c Thu Sep 6 15:31:55 2001
|
|
@@ -1462,7 +1462,7 @@
|
|
|
|
/* Ensure the journal file is pushed out to disc. */
|
|
|
|
- if (fsync(journal_fd) < 0)
|
|
+ if (perform_fsync && fsync(journal_fd) < 0)
|
|
log_write(0, LOG_MAIN|LOG_PANIC, "failed to fsync journal: %s",
|
|
strerror(errno));
|
|
}
|