X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/17932f7aea1c21cf17738f47996345d9d0a6ce51..b68ed2bccdade2c3ac04ca1005d261be89c71c51:/sbr/lock_file.c diff --git a/sbr/lock_file.c b/sbr/lock_file.c index 987b922c..1a562f9b 100644 --- a/sbr/lock_file.c +++ b/sbr/lock_file.c @@ -24,19 +24,13 @@ # include #endif #include -#include #include #ifdef HAVE_FLOCK # include #endif -#ifdef HAVE_LOCKF -# include -#endif - -#include #if defined(HAVE_LIBLOCKFILE) -#include +# include #endif #ifdef LOCKDIR @@ -341,7 +335,7 @@ lkclose_dot (int fd, const char *file) lockname (file, &lkinfo, 0); /* get name of lock file */ #if !defined(HAVE_LIBLOCKFILE) - unlink (lkinfo.curlock); /* remove lock file */ + (void) m_unlink (lkinfo.curlock); /* remove lock file */ #else lockfile_remove(lkinfo.curlock); #endif /* HAVE_LIBLOCKFILE */ @@ -386,6 +380,7 @@ lkopen_fcntl(const char *file, int access, mode_t mode) } +#ifdef HAVE_FLOCK /* * Open and lock a file, using flock locking */ @@ -418,7 +413,7 @@ lkopen_flock(const char *file, int access, mode_t mode) errno = saved_errno; return -1; } - +#endif /* HAVE_FLOCK */ /* * Open and lock a file, using lockf locking @@ -518,7 +513,7 @@ lkopen_dot (const char *file, int access, mode_t mode) /* check for stale lockfile, else sleep */ if (curtime > st.st_ctime + RSECS) - unlink (lkinfo.curlock); + (void) m_unlink (lkinfo.curlock); else sleep (5); } @@ -548,17 +543,18 @@ static int lockit (struct lockinfo *li) { int fd; - char *curlock, *tmplock; + char *curlock, *tmpfile; #if 0 char buffer[128]; #endif curlock = li->curlock; - tmplock = li->tmplock; - if ((fd = mkstemp(tmplock)) == -1) + if ((tmpfile = m_mktemp(li->tmplock, &fd, NULL)) == NULL) { + advise(NULL, "unable to create temporary file in %s", get_temp_dir()); return -1; + } #if 0 /* write our process id into lock file */ @@ -572,8 +568,8 @@ lockit (struct lockinfo *li) * Now try to create the real lock file * by linking to the temporary file. */ - fd = link(tmplock, curlock); - unlink(tmplock); + fd = link(tmpfile, curlock); + (void) m_unlink(tmpfile); return (fd == -1 ? -1 : 0); } @@ -745,21 +741,21 @@ alrmser (int sig) static enum locktype init_locktype(const char *lockname) { - if (mh_strcasecmp(lockname, "fcntl") == 0) { + if (strcasecmp(lockname, "fcntl") == 0) { return FCNTL_LOCKING; - } else if (mh_strcasecmp(lockname, "lockf") == 0) { + } else if (strcasecmp(lockname, "lockf") == 0) { #ifdef HAVE_LOCKF return LOCKF_LOCKING; #else /* ! HAVE_LOCKF */ adios(NULL, "lockf not supported on this system"); #endif /* HAVE_LOCKF */ - } else if (mh_strcasecmp(lockname, "flock") == 0) { + } else if (strcasecmp(lockname, "flock") == 0) { #ifdef HAVE_FLOCK return FLOCK_LOCKING; #else /* ! HAVE_FLOCK */ adios(NULL, "flock not supported on this system"); #endif /* HAVE_FLOCK */ - } else if (mh_strcasecmp(lockname, "dot") == 0) { + } else if (strcasecmp(lockname, "dot") == 0) { return DOT_LOCKING; } else { adios(NULL, "Unknown lock type: \"%s\"", lockname);