Update version number and copyright year.
[exim.git] / src / src / dbfn.c
index 53f2212ac2ddbe80ee0f34e7bacc64a2a501ccfb..51e7db44d41e427d7548fb3910b4e07e2f30b910 100644 (file)
@@ -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    *
 *************************************************/
 
 
 /*************************************************
 *     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. */
 
 
 /* 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.
 
            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 *
 */
 
 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",
 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));
     (errno == ETIMEDOUT)? "timed out" : strerror(errno));
-  close(dbblock->lockfd);
+  (void)close(dbblock->lockfd);
   errno = 0;       /* Indicates locking failure */
   return NULL;
   }
   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));
     }
         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)
   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. */
 
 /* 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);
 dbfn_close(open_db *dbblock)
 {
 EXIM_DBCLOSE(dbblock->dbptr);
-close(dbblock->lockfd);
+(void)close(dbblock->lockfd);
 }
 
 
 }