X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/ff790e47f2de6f4d6d48148e1d5a67da8e93c446..184e88237dea64ce48076cdd0184612d057cbafd:/src/src/dbfn.c diff --git a/src/src/dbfn.c b/src/src/dbfn.c index 53f2212ac..51e7db44d 100644 --- a/src/src/dbfn.c +++ b/src/src/dbfn.c @@ -1,10 +1,10 @@ -/* $Cambridge: exim/src/src/dbfn.c,v 1.5 2005/06/22 15:44:37 ph10 Exp $ */ +/* $Cambridge: exim/src/src/dbfn.c,v 1.10 2007/01/08 10:50:17 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2005 */ +/* Copyright (c) University of Cambridge 1995 - 2007 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -80,6 +80,10 @@ Returns: NULL if the open failed, or the locking failed. After locking On success, dbblock is returned. This contains the dbm pointer and the fd of the locked lock file. + +There are some calls that use O_RDWR|O_CREAT for the flags. Having discovered +this in December 2005, I'm not sure if this is correct or not, but for the +moment I haven't changed them. */ open_db * @@ -139,9 +143,9 @@ if (sigalrm_seen) errno = ETIMEDOUT; if (rc < 0) { log_write(0, LOG_MAIN, "Failed to get %s lock for %s: %s", - ((flags & O_RDONLY) != 0)? "read" : "write", buffer, + read_only? "read" : "write", buffer, (errno == ETIMEDOUT)? "timed out" : strerror(errno)); - close(dbblock->lockfd); + (void)close(dbblock->lockfd); errno = 0; /* Indicates locking failure */ return NULL; } @@ -229,13 +233,15 @@ if (dbblock->dbptr == NULL) debug_printf("%s", CS string_open_failed(save_errno, "DB file %s\n", buffer)); } - close(dbblock->lockfd); + (void)close(dbblock->lockfd); errno = save_errno; return NULL; } DEBUG(D_hints_lookup) - debug_printf("opened hints database %s: flags=%x\n", buffer, flags); + debug_printf("opened hints database %s: flags=%s\n", buffer, + (flags == O_RDONLY)? "O_RDONLY" : (flags == O_RDWR)? "O_RDWR" : + (flags == (O_RDWR|O_CREAT))? "O_RDWR|O_CREAT" : "??"); /* Pass back the block containing the opened database handle and the open fd for the lock. */ @@ -261,7 +267,7 @@ void dbfn_close(open_db *dbblock) { EXIM_DBCLOSE(dbblock->dbptr); -close(dbblock->lockfd); +(void)close(dbblock->lockfd); }