X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Flock.c;h=d19cc646f02c48899d75626baef2b8536c1383db;hb=fa1f4d3c38b332fc5faf6d84911df2618ce9af09;hp=13fe405b14e1583526f4263c620a1748f4549bf6;hpb=5a01db28e301fcd691f76ecf904e96ecf9a448b8;p=openldap diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c index 13fe405b14..d19cc646f0 100644 --- a/servers/slapd/lock.c +++ b/servers/slapd/lock.c @@ -1,8 +1,27 @@ /* lock.c - routines to open and apply an advisory lock to a file */ /* $OpenLDAP$ */ -/* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2006 The OpenLDAP Foundation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + */ +/* Portions Copyright (c) 1995 Regents of the University of Michigan. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that this notice is preserved and that due credit is given + * to the University of Michigan at Ann Arbor. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. This software + * is provided ``as is'' without express or implied warranty. */ #include "portable.h" @@ -19,6 +38,7 @@ #endif #include "slap.h" +#include FILE * lock_fopen( const char *fname, const char *type, FILE **lfp ) @@ -27,14 +47,10 @@ lock_fopen( const char *fname, const char *type, FILE **lfp ) char buf[MAXPATHLEN]; /* open the lock file */ - strcpy(lutil_strcopy( buf, fname ), ".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 ); } @@ -44,12 +60,7 @@ 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 ); @@ -63,9 +74,10 @@ lock_fopen( const char *fname, const char *type, FILE **lfp ) int lock_fclose( FILE *fp, FILE *lfp ) { + int rc = fclose( fp ); /* unlock */ ldap_unlockf( fileno(lfp) ); fclose( lfp ); - return( fclose( fp ) ); + return( rc ); }