X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fadd.c;h=4b03b68d582cc2569098721ee7719d276b40da15;hb=e3b1020e7558dff26d8c87ebb2746f197775c24f;hp=0795212ee2ba774183c5bfbdee282a7b81586d78;hpb=45f4e3602bfae5a709c0e573c71f5fa55b77f1c3;p=openldap diff --git a/servers/slapd/back-ldap/add.c b/servers/slapd/back-ldap/add.c index 0795212ee2..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 ); } @@ -140,7 +141,7 @@ ldap_back_add( ldap_back_map(&li->at_map, &a->a_desc->ad_cname, &mapped, BACKLDAP_MAP); - if (mapped.bv_val == NULL) { + if (mapped.bv_val == NULL || mapped.bv_val[0] == '\0') { continue; } @@ -176,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]); @@ -186,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