X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fclose.c;h=383817a5d9baf36b9c4f7cb4ba5699c069b00191;hb=08059f1633bfd9d0a709761b026bdb8e4441c6e6;hp=5cb9a75b1cc99710160b8a6017812bba5c0b0543;hpb=216049bd12861357e0bf080fe10816103c3c3bda;p=openldap diff --git a/servers/slapd/back-ldbm/close.c b/servers/slapd/back-ldbm/close.c index 5cb9a75b1c..383817a5d9 100644 --- a/servers/slapd/back-ldbm/close.c +++ b/servers/slapd/back-ldbm/close.c @@ -1,4 +1,9 @@ /* close.c - close ldbm backend */ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" @@ -12,14 +17,29 @@ int ldbm_back_db_close( Backend *be ) { - Debug( LDAP_DEBUG_TRACE, "ldbm backend saving nextid\n", 0, 0, 0 ); - if ( next_id_save( be ) < 0 ) { - Debug( LDAP_DEBUG_ANY, "ldbm backend nextid save failed!\n", 0, 0, 0 ); + struct ldbminfo *li = (struct ldbminfo *) be->be_private; + if ( li->li_dbsyncfreq > 0 ) + { + li->li_dbshutdown++; + ldap_pvt_thread_join( li->li_dbsynctid, (void *) NULL ); } - +#ifdef NEW_LOGGING + LDAP_LOG( BACK_LDBM, CRIT, + "ldbm_back_db_close: ldbm backend syncing\n", 0, 0, 0 ); +#else Debug( LDAP_DEBUG_TRACE, "ldbm backend syncing\n", 0, 0, 0 ); +#endif + ldbm_cache_flush_all( be ); +#ifdef NEW_LOGGING + LDAP_LOG( BACK_LDBM, CRIT, + "ldbm_back_db_close: ldbm backend synch'ed\n", 0, 0, 0 ); +#else Debug( LDAP_DEBUG_TRACE, "ldbm backend done syncing\n", 0, 0, 0 ); +#endif + + + cache_release_all( &((struct ldbminfo *) be->be_private)->li_cache ); return 0; }