X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Flock_file.c;h=2cb6bdc1543c7b427bb3afcdc39203a44ff2b411;hb=11ce969d33d8d6ffafd010005af0b7188f0f5693;hp=ec887374e279d5131f582575955d4310ff3d2ba3;hpb=3a162432aa58eff6e48f99afaf746408905b008c;p=mmh diff --git a/sbr/lock_file.c b/sbr/lock_file.c index ec88737..2cb6bdc 100644 --- a/sbr/lock_file.c +++ b/sbr/lock_file.c @@ -419,9 +419,18 @@ lockit (struct lockinfo *li) curlock = li->curlock; tmplock = li->tmplock; +#ifdef HAVE_MKSTEMP + if ((fd = mkstemp(tmplock)) == -1) + return -1; +#else + if (mktemp(tmplock) == NULL) + return -1; + if (unlink(tmplock) == -1 && errno != ENOENT) + return -1; /* create the temporary lock file */ if ((fd = creat(tmplock, 0600)) == -1) return -1; +#endif #if 0 /* write our process id into lock file */ @@ -501,18 +510,6 @@ lockname (char *file, struct lockinfo *li, int isnewlock) else snprintf (li->tmplock, sizeof(li->tmplock), "%.*s,LCK.XXXXXX", cp - li->curlock, li->curlock); -/* - Mkstemp work postponed until later -Doug -#ifdef HAVE_MKSTEMP - mkstemp (li->tmplock); -#else -*/ - mktemp (li->tmplock); -/* -#endif -*/ - - unlink (li->tmplock); /* remove any stray */ } #endif }