X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Flock.c;h=c863d4b9e82c85ecf9ed6b480a6562a97d7d51d1;hb=fad62c5d1dea6fa56e740dd81ce025eaaaab1917;hp=6e14c1bfa0f33e82897051aaa505149f1f0495ec;hpb=b76c56ba3f45576b9c418ea9fe7f7b3440052904;p=openldap diff --git a/servers/slurpd/lock.c b/servers/slurpd/lock.c index 6e14c1bfa0..c863d4b9e8 100644 --- a/servers/slurpd/lock.c +++ b/servers/slurpd/lock.c @@ -1,3 +1,4 @@ +/* $OpenLDAP$ */ /* * Copyright (c) 1996 Regents of the University of Michigan. * All rights reserved. @@ -17,23 +18,24 @@ #include "portable.h" #include -#include -#include + +#include +#include +#include +#include +#include + +#ifdef HAVE_SYS_FILE_H #include -#include -#include -#include "portable.h" -#ifdef USE_LOCKF -#include #endif -#include "../slapd/slap.h" +#include "slurp.h" FILE * lock_fopen( - char *fname, - char *type, + const char *fname, + const char *type, FILE **lfp ) { @@ -50,23 +52,15 @@ lock_fopen( } /* acquire the lock */ -#ifdef USE_LOCKF - while ( lockf( fileno( *lfp ), F_LOCK, 0 ) != 0 ) { -#else - while ( flock( fileno( *lfp ), LOCK_EX ) != 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 USE_LOCKF - lockf( fileno( *lfp ), F_ULOCK, 0 ); -#else - flock( fileno( *lfp ), LOCK_UN ); -#endif + ldap_unlockf( fileno(*lfp) ); + fclose( *lfp ); + *lfp = NULL; return( NULL ); } @@ -82,11 +76,7 @@ lock_fclose( ) { /* 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 ) ); @@ -99,15 +89,15 @@ lock_fclose( */ int acquire_lock( - char *file, + const char *file, FILE **rfp, FILE **lfp ) { 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 ); @@ -121,15 +111,15 @@ acquire_lock( */ int relinquish_lock( - char *file, + const char *file, FILE *rfp, FILE *lfp ) { 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 );