]> granicus.if.org Git - sudo/commitdiff
add fcntl locking
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 6 Aug 1999 13:49:26 +0000 (13:49 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 6 Aug 1999 13:49:26 +0000 (13:49 +0000)
logging.c

index b5080ffdbfc585666ef6f83d6133ddb67d5f8fdd..2841fffa5c6b1a879ee62ae34cccc28ca72cf4ca 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -604,7 +604,18 @@ lock_file(fp, lockit)
     FILE *fp;
     int lockit;
 {
-    /* XXX - implement fcntl-style locking */
+#ifdef F_SETLK
+    struct flock lock;
+
+    lock.l_start = 0;
+    lock.l_len = 0;
+    lock.l_pid = getpid();
+    lock.l_type = lockit ? F_WRLCK : F_UNLCK;
+    lock.l_whence = SEEK_SET;
+
+    return(fcntl(fileno(fp), F_SETLKW, &lock) == 0);
+#else
     return(TRUE);
+#endif
 }
 #endif