X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Flock.c;h=40c61a25171d2bc41280f96cb0432a61a6c1107b;hb=f3384af67ed3a8ced2145dddcc999f61cdc504ce;hp=17bc995efaa650bebcfd43f62f4820a9726c579a;hpb=177367bdb14913abb1ce90d44758f0390f626a92;p=openldap diff --git a/servers/slurpd/lock.c b/servers/slurpd/lock.c index 17bc995efa..40c61a2517 100644 --- a/servers/slurpd/lock.c +++ b/servers/slurpd/lock.c @@ -23,11 +23,14 @@ #include #include +#ifdef HAVE_SYS_FILE_H #include +#endif +#ifdef HAVE_SYS_PARAM_H #include +#endif -#include "../slapd/slap.h" - +#include "slurp.h" FILE * @@ -50,24 +53,15 @@ lock_fopen( } /* 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, "Error: 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 ); } @@ -83,11 +77,7 @@ lock_fclose( ) { /* unlock */ -#ifdef HAVE_FLOCK - flock( fileno( lfp ), LOCK_UN ); -#else - lockf( fileno( lfp ), F_ULOCK, 0 ); -#endif + ldap_unlockf( fileno(lfp) ); fclose( lfp ); return( fclose( fp ) ); @@ -107,8 +97,8 @@ acquire_lock( { if (( *rfp = lock_fopen( file, "r+", lfp )) == NULL ) { Debug( LDAP_DEBUG_ANY, - "Error: acquire_lock(%d): Could not acquire lock on \"%s\"\n", - getpid(), file, 0); + "Error: acquire_lock(%ld): Could not acquire lock on \"%s\"\n", + (long) getpid(), file, 0); return( -1 ); } return( 0 ); @@ -129,8 +119,8 @@ relinquish_lock( { if ( lock_fclose( rfp, lfp ) == EOF ) { Debug( LDAP_DEBUG_ANY, - "Error: relinquish_lock (%d): Error closing \"%s\"\n", - getpid(), file, 0 ); + "Error: relinquish_lock (%ld): Error closing \"%s\"\n", + (long) getpid(), file, 0 ); return( -1 ); } return( 0 );