From ce401448d62f65956ed57b077af2b315f59efe94 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Thu, 28 Jul 2016 21:15:17 +0200 Subject: lib: Portability to FreeBSD Various portability fixes for FreeBSD. POSIX requires shm file names to start with a "/" to be portable. lseek(2) can be undefined on POSIX shm, replaced with ftruncate(2). IRMd check on existing lockfile more portable. FreeBSD 11.0 is preferred as it natively supports robust mutexes. Full working LLC implementation pending. --- src/lib/lockfile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lib/lockfile.c') diff --git a/src/lib/lockfile.c b/src/lib/lockfile.c index a93d5f17..75ee2085 100644 --- a/src/lib/lockfile.c +++ b/src/lib/lockfile.c @@ -60,7 +60,7 @@ struct lockfile * lockfile_create() { return NULL; } - if (lseek(lf->fd, LF_SIZE - 1, SEEK_SET) < 0) { + if (ftruncate(lf->fd, LF_SIZE - 1) < 0) { LOG_DBGF("Failed to extend lockfile."); free(lf); return NULL; @@ -99,7 +99,7 @@ struct lockfile * lockfile_open() { return NULL; lf->fd = shm_open(LOCKFILE_NAME, O_RDWR, 0666); - if (lf->fd == -1) { + if (lf->fd < 0) { LOG_DBGF("Could not open lock file."); free(lf); return NULL; -- cgit v1.2.3