]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-meta/add.c
Read config tree from back-ldif
[openldap] / servers / slapd / back-meta / add.c
index 15f13ee892e8bed5c31acd819f476469859f4431..857ce7ec5f452c6b3a158990fb38faa6a1b978bd 100644 (file)
@@ -51,14 +51,12 @@ meta_back_add( Operation *op, SlapReply *rs )
         * get the current connection
         */
        lc = meta_back_getconn( op, rs, META_OP_REQUIRE_SINGLE,
-                       &op->o_req_ndn, &candidate );
-       if ( !lc ) {
-               send_ldap_result( op, rs );
+                       &op->o_req_ndn, &candidate, LDAP_BACK_SENDERR );
+       if ( !lc || !meta_back_dobind( lc, op, LDAP_BACK_SENDERR ) ) {
                return rs->sr_err;
        }
 
-       if ( !meta_back_dobind( lc, op )
-                       || !meta_back_is_valid( lc, candidate ) ) {
+       if ( !meta_back_is_valid( lc, candidate ) ) {
                rs->sr_err = LDAP_UNAVAILABLE;
                send_ldap_result( op, rs );
                return rs->sr_err;
@@ -169,7 +167,7 @@ meta_back_add( Operation *op, SlapReply *rs )
        attrs[ i ] = NULL;
 
        rs->sr_err = ldap_add_ext_s( lc->mc_conns[ candidate ].msc_ld, mdn.bv_val,
-                             attrs, NULL, NULL );
+                             attrs, op->o_ctrls, NULL );
        for ( --i; i >= 0; --i ) {
                free( attrs[ i ]->mod_bvalues );
                free( attrs[ i ] );