Moved file locking utilities from index/lockutil.c to util/flock.c
[idzebra-moved-to-github.git] / index / lockutil.c
diff --git a/index/lockutil.c b/index/lockutil.c
deleted file mode 100644 (file)
index 4c7cbf7..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/* $Id: lockutil.c,v 1.21 2005-06-14 20:28:54 adam Exp $
-   Copyright (C) 1995-2005
-   Index Data ApS
-
-This file is part of the Zebra server.
-
-Zebra is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra.  If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
-*/
-
-
-#include <stdio.h>
-#include <assert.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#ifdef WIN32
-#include <io.h>
-#include <sys/locking.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include "index.h"
-
-struct zebra_lock_info {
-    int fd;
-    int excl_flag;
-};
-
-char *zebra_mk_fname (const char *dir, const char *name)
-{
-    int dlen = dir ? strlen(dir) : 0;
-    char *fname = xmalloc (dlen + strlen(name) + 3);
-
-#ifdef WIN32
-    if (dlen)
-    {
-        int last_one = dir[dlen-1];
-
-        if (!strchr ("/\\:", last_one))
-            sprintf (fname, "%s\\%s", dir, name);
-        else
-            sprintf (fname, "%s%s", dir, name);
-    }
-    else
-        sprintf (fname, "%s", name);
-#else
-    if (dlen)
-    {
-        int last_one = dir[dlen-1];
-
-        if (!strchr ("/", last_one))
-            sprintf (fname, "%s/%s", dir, name);
-        else
-            sprintf (fname, "%s%s", dir, name);
-    }
-    else
-        sprintf (fname, "%s", name);
-#endif
-    return fname;
-}
-
-ZebraLockHandle zebra_lock_create (const char *dir,
-                                   const char *name, int excl_flag)
-{
-    char *fname = zebra_mk_fname(dir, name);
-    ZebraLockHandle h = (ZebraLockHandle) xmalloc (sizeof(*h));
-
-    h->excl_flag = excl_flag;
-    h->fd = -1;
-
-    
-#ifdef WIN32
-    if (!h->excl_flag)
-        h->fd = open (name, O_BINARY|O_RDONLY);
-    if (h->fd == -1)
-        h->fd = open (fname, ((h->excl_flag > 1) ? O_EXCL : 0)|
-           (O_BINARY|O_CREAT|O_RDWR), 0666);
-#else
-    h->fd= open (fname, ((h->excl_flag > 1) ? O_EXCL : 0)|
-           (O_BINARY|O_CREAT|O_RDWR), 0666);
-#endif
-    if (h->fd == -1)
-    {
-       if (h->excl_flag <= 1)
-            yaz_log (YLOG_WARN|YLOG_ERRNO, "open %s", fname);
-       xfree (h);
-        h = 0;
-    }
-    xfree (fname);
-    return h;
-}
-
-void zebra_lock_destroy (ZebraLockHandle h)
-{
-    if (!h)
-       return;
-    if (h->fd != -1)
-       close (h->fd);
-    xfree (h);
-}
-
-void zebra_lock_prefix (Res res, char *path)
-{
-    const char *lock_dir = res_get_def (res, "lockDir", "");
-
-    strcpy (path, lock_dir);
-    if (*path && path[strlen(path)-1] != '/')
-        strcat (path, "/");
-}
-
-#ifndef WIN32
-static int unixLock (int fd, int type, int cmd)
-{
-    struct flock area;
-    area.l_type = type;
-    area.l_whence = SEEK_SET;
-    area.l_len = area.l_start = 0L;
-    return fcntl (fd, cmd, &area);
-}
-#endif
-
-int zebra_lock_w (ZebraLockHandle h)
-{
-#ifdef WIN32
-    return _locking (h->fd, _LK_LOCK, 1);
-#else
-    return unixLock (h->fd, F_WRLCK, F_SETLKW);
-#endif
-}
-
-int zebra_lock_r (ZebraLockHandle h)
-{
-#ifdef WIN32
-    return _locking (h->fd, _LK_LOCK, 1);
-#else
-    return unixLock (h->fd, F_RDLCK, F_SETLKW);
-#endif
-}
-
-int zebra_lock (ZebraLockHandle h)
-{
-#ifdef WIN32
-    return _locking (h->fd, _LK_LOCK, 1);
-#else
-    return unixLock (h->fd, h->excl_flag ? F_WRLCK : F_RDLCK, F_SETLKW);
-#endif
-}
-
-int zebra_lock_nb (ZebraLockHandle h)
-{
-#ifdef WIN32
-    return _locking (h->fd, _LK_NBLCK, 1);
-#else
-    return unixLock (h->fd, h->excl_flag ? F_WRLCK : F_RDLCK, F_SETLK);
-#endif
-}
-
-int zebra_unlock (ZebraLockHandle h)
-{
-#ifdef WIN32
-    return _locking (h->fd, _LK_UNLCK, 1);
-#else
-    return unixLock (h->fd, F_UNLCK, F_SETLKW);
-#endif
-}
-
-int zebra_lock_fd (ZebraLockHandle h)
-{
-    return h->fd;
-}