X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Flock.c;h=f634b220aa3026518a5e849b037b0a5c38df7dc8;hb=92507af85cd3a9ae5cbb23074928734d643b3f70;hp=305fb5b91ce0d346275ad6faf836fbd13d8d4b97;hpb=42e0d83cb3a1a1c5b25183f1ab74ce7edbe25de7;p=openldap diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c index 305fb5b91c..f634b220aa 100644 --- a/servers/slapd/lock.c +++ b/servers/slapd/lock.c @@ -1,15 +1,16 @@ /* lock.c - routines to open and apply an advisory lock to a file */ -#include -#include -#include #include "portable.h" -#ifdef USE_LOCKF -#include -#endif + +#include + +#include +#include +#include +#include + #include #include -#include #include "slap.h" FILE * @@ -27,10 +28,10 @@ lock_fopen( char *fname, char *type, FILE **lfp ) } /* acquire the lock */ -#ifdef USE_LOCKF - while ( lockf( fileno( *lfp ), F_LOCK, 0 ) != 0 ) { -#else +#ifdef HAVE_FLOCK while ( flock( fileno( *lfp ), LOCK_EX ) != 0 ) { +#else + while ( lockf( fileno( *lfp ), F_LOCK, 0 ) != 0 ) { #endif ; /* NULL */ } @@ -38,11 +39,13 @@ lock_fopen( char *fname, char *type, FILE **lfp ) /* open the log file */ if ( (fp = fopen( fname, type )) == NULL ) { Debug( LDAP_DEBUG_ANY, "could not open \"%s\"\n", fname, 0, 0 ); -#ifdef USE_LOCKF - lockf( fileno( *lfp ), F_ULOCK, 0 ); -#else +#ifdef HAVE_FLOCK flock( fileno( *lfp ), LOCK_UN ); +#else + lockf( fileno( *lfp ), F_ULOCK, 0 ); #endif + fclose( *lfp ); + *lfp = NULL; return( NULL ); } @@ -53,10 +56,10 @@ int lock_fclose( FILE *fp, FILE *lfp ) { /* unlock */ -#ifdef USE_LOCKF - lockf( fileno( lfp ), F_ULOCK, 0 ); -#else +#ifdef HAVE_FLOCK flock( fileno( lfp ), LOCK_UN ); +#else + lockf( fileno( lfp ), F_ULOCK, 0 ); #endif fclose( lfp );