X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Flock.c;h=fe3a850abd779fe1bf5539babb96368829db2f2d;hb=af423fd393488947252da5fd6cd927edfd1bf110;hp=8d5d7f2ec539e05d6eec9623f9b9b9c68917f278;hpb=7e6ad5100c2702b1d56a285bdfb341ddf38c0d76;p=openldap diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c index 8d5d7f2ec5..fe3a850abd 100644 --- a/servers/slapd/lock.c +++ b/servers/slapd/lock.c @@ -8,10 +8,13 @@ #include #include #include -extern int flock (); +#ifdef HAVE_SYS_FILE_H #include +#endif +#ifdef HAVE_SYS_PARAM_H #include +#endif #include "slap.h" FILE * @@ -29,22 +32,12 @@ 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 ); @@ -57,11 +50,7 @@ int lock_fclose( FILE *fp, FILE *lfp ) { /* 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 ) );