X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/184e88237dea64ce48076cdd0184612d057cbafd..1ac6b2e7857d7b6645dbd09047c4c2ac3b6cef1d:/src/src/transports/autoreply.c diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c index 13b04f885..4e391b8db 100644 --- a/src/src/transports/autoreply.c +++ b/src/src/transports/autoreply.c @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/src/transports/autoreply.c,v 1.10 2007/01/08 10:50:20 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2007 */ +/* Copyright (c) University of Cambridge 1995 - 2009 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -531,8 +529,10 @@ if (oncelog != NULL && *oncelog != 0 && to != NULL) uschar *ptr = log_buffer; sprintf(CS ptr, "%s\n previously sent to %.200s\n", tod_stamp(tod_log), to); while(*ptr) ptr++; - (void)write(log_fd, log_buffer, ptr - log_buffer); - (void)close(log_fd); + if(write(log_fd, log_buffer, ptr - log_buffer) != ptr-log_buffer + || close(log_fd)) + DEBUG(D_transport) debug_printf("Problem writing log file %s for %s " + "transport\n", logfile, tblock->name); } goto END_OFF; } @@ -755,7 +755,9 @@ if (cache_fd >= 0) } memcpy(cache_time, &now, sizeof(time_t)); - (void)write(cache_fd, from, size); + if(write(cache_fd, from, size) != size) + DEBUG(D_transport) debug_printf("Problem writing cache file %s for %s " + "transport\n", oncelog, tblock->name); } /* Update DBM file */ @@ -851,8 +853,10 @@ if (logfile != NULL) " %s\n", headers); while(*ptr) ptr++; } - (void)write(log_fd, log_buffer, ptr - log_buffer); - (void)close(log_fd); + if(write(log_fd, log_buffer, ptr - log_buffer) != ptr-log_buffer + || close(log_fd)) + DEBUG(D_transport) debug_printf("Problem writing log file %s for %s " + "transport\n", logfile, tblock->name); } else DEBUG(D_transport) debug_printf("Failed to open log file %s for %s " "transport: %s\n", logfile, tblock->name, strerror(errno));