isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 3f8e820acbe00bdce61ab3ff06967ffa7d4af003
parent e0cc45044f085147bdeab244f9fdda787f115b8d
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Mon, 20 Sep 2004 11:31:55 +0000

use legacy flock() only on linux. at least on OS X flock aliases to
fcntl.

Diffstat:
Msrc/drv_maildir.c | 7+++++++
1 file changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/drv_maildir.c b/src/drv_maildir.c @@ -38,6 +38,9 @@ #include <time.h> #define USE_DB 1 +#ifdef __linux__ +# define LEGACY_FLOCK 1 +#endif #ifdef USE_DB #include <db.h> @@ -355,11 +358,13 @@ maildir_uidval_lock( maildir_store_t *ctx ) int n; char buf[128]; +#ifdef LEGACY_FLOCK /* This is legacy only */ if (flock( ctx->uvfd, LOCK_EX ) < 0) { fprintf( stderr, "Maildir error: cannot flock UIDVALIDITY.\n" ); return DRV_BOX_BAD; } +#endif /* This (theoretically) works over NFS. Let's hope nobody else did the same in the opposite order, as we'd deadlock then. */ #if SEEK_SET != 0 @@ -384,8 +389,10 @@ maildir_uidval_unlock( maildir_store_t *ctx ) { lck.l_type = F_UNLCK; fcntl( ctx->uvfd, F_SETLK, &lck ); +#ifdef LEGACY_FLOCK /* This is legacy only */ flock( ctx->uvfd, LOCK_UN ); +#endif } static int