]> git.sur5r.net Git - openldap/commitdiff
ITS#5867
authorQuanah Gibson-Mount <quanah@openldap.org>
Wed, 21 Jan 2009 01:57:45 +0000 (01:57 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 21 Jan 2009 01:57:45 +0000 (01:57 +0000)
CHANGES
servers/slapd/bconfig.c

diff --git a/CHANGES b/CHANGES
index cebf8323f5a9ef81322cd569b343680d2b49d1c9..a38e8b0c1ba93cacf5dabac444a92368baa34f2f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -9,6 +9,7 @@ OpenLDAP 2.4.14 Engineering
        Added slapd syncrepl default retry setting (ITS#5825)
        Added slapd val.regex expansion (ITS#5804)
        Added slapo-rwm newRDN rewriting (ITS#5834)
+       Fixed slapd bconfig to return error codes (ITS#5867)
        Fixed slapd syncrepl rename handling (ITS#5809)
        Fixed slapd syncrepl MMR when adding new server (ITS#5850)
        Fixed slapd-ldap idassert-bind validity checking (ITS#5863)
index 0517579b88fe6d58176fca08bf9d166be100a1ce..5fa46ced536e23c588a1a3d9e692d2cc2b70edf1 100644 (file)
@@ -3634,6 +3634,9 @@ config_send( Operation *op, SlapReply *rs, CfEntryInfo *ce, int depth )
                rs->sr_entry = ce->ce_entry;
                rs->sr_flags = 0;
                rc = send_search_entry( op, rs );
+               if ( rc != LDAP_SUCCESS ) {
+                       return rc;
+               }
        }
        if ( op->ors_scope == LDAP_SCOPE_SUBTREE ) {
                if ( ce->ce_kids ) {
@@ -5489,20 +5492,22 @@ config_back_search( Operation *op, SlapReply *rs )
        switch ( op->ors_scope ) {
        case LDAP_SCOPE_BASE:
        case LDAP_SCOPE_SUBTREE:
-               config_send( op, rs, ce, 0 );
+               rs->sr_err = config_send( op, rs, ce, 0 );
                break;
                
        case LDAP_SCOPE_ONELEVEL:
                for (ce = ce->ce_kids; ce; ce=ce->ce_sibs) {
-                       config_send( op, rs, ce, 1 );
+                       rs->sr_err = config_send( op, rs, ce, 1 );
+                       if ( rs->sr_err ) {
+                               break;
+                       }
                }
                break;
        }
-               
-       rs->sr_err = LDAP_SUCCESS;
+
 out:
        send_ldap_result( op, rs );
-       return 0;
+       return rs->sr_err;
 }
 
 /* no-op, we never free entries */