X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2e08fdfc0ef872c968c2e42b7ee0ede42aee14aa..43a65e9777214029046fe7a1427493e6e503a717:/sbr/lock_file.c diff --git a/sbr/lock_file.c b/sbr/lock_file.c index 8506faf8..01d7ae49 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 @@ -229,8 +223,13 @@ lkclosedata(int fd, const char *name) int lkfclosedata(FILE *f, const char *name) { - int fd = fileno(f); - int rc = fclose(f); + int fd, rc; + + if (f == NULL) + return 0; + + fd = fileno(f); + rc = fclose(f); if (datalocktype == DOT_LOCKING) lkclose_dot(fd, name); @@ -252,8 +251,13 @@ lkclosespool(int fd, const char *name) int lkfclosespool(FILE *f, const char *name) { - int fd = fileno(f); - int rc = fclose(f); + int fd, rc; + + if (f == NULL) + return 0; + + fd = fileno(f); + rc = fclose(f); if (spoollocktype == DOT_LOCKING) lkclose_dot(fd, name); @@ -376,6 +380,7 @@ lkopen_fcntl(const char *file, int access, mode_t mode) } +#ifdef HAVE_FLOCK /* * Open and lock a file, using flock locking */ @@ -408,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 @@ -735,21 +740,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);