]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/backend.c
fix Release configuration
[openldap] / servers / slapd / backend.c
index b59e4c1d5890e805bc0897202c511e875fd54230..cac82703390e3f06f4984a4f7fcc2fcc621e95ea 100644 (file)
@@ -11,6 +11,7 @@
 #include <sys/stat.h>
 
 #include "slap.h"
+#include "lutil.h"
 
 #ifdef SLAPD_LDBM
 #include "back-ldbm/external.h"
@@ -352,7 +353,7 @@ be_db_close( void )
        int     i;
 
        for ( i = 0; i < nbackends; i++ ) {
-               if ( backends[i].bd_info->bi_db_close != NULL ) {
+               if ( backends[i].bd_info->bi_db_close ) {
                        (*backends[i].bd_info->bi_db_close)( &backends[i] );
                }
        }
@@ -452,8 +453,6 @@ be_isroot( Backend *be, char *ndn )
 char *
 be_root_dn( Backend *be )
 {
-       int rc;
-
        if ( be->be_root_dn == NULL ) {
                return( "" );
        }
@@ -483,6 +482,19 @@ be_isroot_pw( Backend *be, char *ndn, struct berval *cred )
        return result == 0;
 }
 
+int
+be_entry_release_rw( Backend *be, Entry *e, int rw )
+{
+       if ( be->be_release ) {
+               /* free and release entry from backend */
+               return be->be_release( be, e, rw );
+       } else {
+               /* free entry */
+               entry_free( e );
+               return 0;
+       }
+}
+
 int
 backend_unbind(
        Connection   *conn,
@@ -492,7 +504,7 @@ backend_unbind(
        int     i;
 
        for ( i = 0; i < nbackends; i++ ) {
-               if ( backends[i].be_unbind != NULL ) {
+               if ( backends[i].be_unbind ) {
                        (*backends[i].be_unbind)( &backends[i], conn, op );
                }
        }