X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fadd.c;h=4b03b68d582cc2569098721ee7719d276b40da15;hb=e3b1020e7558dff26d8c87ebb2746f197775c24f;hp=2c5f9ac04eddd3d16ddfbb3074c4e61ee5058544;hpb=6939c531700652491f4be4688c6a1f35a1ab8a18;p=openldap diff --git a/servers/slapd/back-ldap/add.c b/servers/slapd/back-ldap/add.c index 2c5f9ac04e..4b03b68d58 100644 --- a/servers/slapd/back-ldap/add.c +++ b/servers/slapd/back-ldap/add.c @@ -60,6 +60,7 @@ ldap_back_add( LDAPMod **attrs; struct berval mapped; struct berval mdn = { 0, NULL }; + ber_int_t msgid; #ifdef NEW_LOGGING LDAP_LOG( BACK_LDAP, ENTRY, "ldap_back_add: %s\n", e->e_dn, 0, 0 ); @@ -68,7 +69,7 @@ ldap_back_add( #endif /* !NEW_LOGGING */ lc = ldap_back_getconn(li, conn, op); - if ( !lc || !ldap_back_dobind( lc, op ) ) { + if ( !lc || !ldap_back_dobind( li, lc, conn, op ) ) { return( -1 ); } @@ -138,8 +139,9 @@ ldap_back_add( continue; } - ldap_back_map(&li->at_map, &a->a_desc->ad_cname, &mapped, 0); - if (mapped.bv_val == NULL) { + ldap_back_map(&li->at_map, &a->a_desc->ad_cname, &mapped, + BACKLDAP_MAP); + if (mapped.bv_val == NULL || mapped.bv_val[0] == '\0') { continue; } @@ -175,7 +177,7 @@ ldap_back_add( } attrs[i] = NULL; - ldap_add_s(lc->ld, mdn.bv_val, attrs); + j = ldap_add_ext(lc->ld, mdn.bv_val, attrs, op->o_ctrls, NULL, &msgid); for (--i; i>= 0; --i) { ch_free(attrs[i]->mod_vals.modv_bvals); ch_free(attrs[i]); @@ -185,7 +187,7 @@ ldap_back_add( free( mdn.bv_val ); } - return( ldap_back_op_result( lc, op ) ); + return( ldap_back_op_result( li, lc, conn, op, msgid, j, 1 ) ); } #ifdef ENABLE_REWRITE