X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Flock.c;h=4688b50e3d2f35ab51a5899e57a10fd9fbdcdbb6;hb=6e602b549420181bfe6ad55d863963a5b11544d1;hp=e9f5fda164383f1948fd6279e831ea324d2b8c59;hpb=403f4479bc9f9a864122d4aeecf7284408918302;p=openldap diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c index e9f5fda164..4688b50e3d 100644 --- a/servers/slapd/lock.c +++ b/servers/slapd/lock.c @@ -1,7 +1,7 @@ /* lock.c - routines to open and apply an advisory lock to a file */ /* $OpenLDAP$ */ /* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -17,10 +17,9 @@ #ifdef HAVE_SYS_FILE_H #include #endif -#ifdef HAVE_SYS_PARAM_H -#include -#endif + #include "slap.h" +#include FILE * lock_fopen( const char *fname, const char *type, FILE **lfp ) @@ -29,10 +28,16 @@ lock_fopen( const char *fname, const char *type, FILE **lfp ) char buf[MAXPATHLEN]; /* open the lock file */ - strcpy( buf, fname ); - strcat( buf, ".lock" ); + snprintf( buf, sizeof buf, "%s.lock", fname ); + if ( (*lfp = fopen( buf, "w" )) == NULL ) { +#ifdef NEW_LOGGING + LDAP_LOG( OPERATION, ERR, + "lock_fopen: could not open lock file \"%s\".\n", buf, 0, 0); +#else Debug( LDAP_DEBUG_ANY, "could not open \"%s\"\n", buf, 0, 0 ); +#endif + return( NULL ); } @@ -41,7 +46,13 @@ lock_fopen( const char *fname, const char *type, FILE **lfp ) /* open the log file */ if ( (fp = fopen( fname, type )) == NULL ) { +#ifdef NEW_LOGGING + LDAP_LOG( OPERATION, ERR, + "lock_fopen: could not open log file \"%s\".\n", buf, 0, 0); +#else Debug( LDAP_DEBUG_ANY, "could not open \"%s\"\n", fname, 0, 0 ); +#endif + ldap_unlockf( fileno(*lfp) ); fclose( *lfp ); *lfp = NULL;