X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Flock.c;h=ac109065a2229f5b9a36726baa4047f3be1865d1;hb=6147119dc8526a758a7c576940fe8483e2b93915;hp=aee7c31cfb3597073bb18e396c113f700b1b09e2;hpb=6c6d3d8f0c1288ed37981b8b30b18a6f9429b9fa;p=openldap diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c index aee7c31cfb..ac109065a2 100644 --- a/servers/slapd/lock.c +++ b/servers/slapd/lock.c @@ -1,15 +1,24 @@ /* lock.c - routines to open and apply an advisory lock to a file */ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" #include +#include #include #include #include +#ifdef HAVE_SYS_FILE_H #include +#endif +#ifdef HAVE_SYS_PARAM_H #include +#endif #include "slap.h" FILE * @@ -27,22 +36,14 @@ lock_fopen( char *fname, char *type, FILE **lfp ) } /* acquire the lock */ -#ifdef HAVE_FLOCK - while ( flock( fileno( *lfp ), LOCK_EX ) != 0 ) { -#else - while ( lockf( fileno( *lfp ), F_LOCK, 0 ) != 0 ) { -#endif - ; /* NULL */ - } + ldap_lockf( fileno(*lfp) ); /* open the log file */ if ( (fp = fopen( fname, type )) == NULL ) { Debug( LDAP_DEBUG_ANY, "could not open \"%s\"\n", fname, 0, 0 ); -#ifdef HAVE_FLOCK - flock( fileno( *lfp ), LOCK_UN ); -#else - lockf( fileno( *lfp ), F_ULOCK, 0 ); -#endif + ldap_unlockf( fileno(*lfp) ); + fclose( *lfp ); + *lfp = NULL; return( NULL ); } @@ -53,11 +54,7 @@ int lock_fclose( FILE *fp, FILE *lfp ) { /* unlock */ -#ifdef USE_LOCKF - lockf( fileno( lfp ), F_ULOCK, 0 ); -#else - flock( fileno( lfp ), LOCK_UN ); -#endif + ldap_unlockf( fileno(lfp) ); fclose( lfp ); return( fclose( fp ) );