LDAPMessage *res = NULL, *e;
int rc = 0, sres = LDAP_SUCCESS;
char *matched = NULL;
- int i, last = 0, ncandidates = 0,
+ int last = 0, ncandidates = 0,
initial_candidates = 0, candidate_match = 0;
+ long i;
dncookie dc;
int is_ok = 0;
void *savepriv;
if ( op->ors_tlimit != SLAP_NO_LIMIT ) {
stoptime = op->o_time + op->ors_tlimit;
- tv.tv_sec = 0;
}
/*
sres = slap_map_api2result( rs );
snprintf( buf, sizeof( buf ),
- "%s meta_back_search[%d] "
- "match=\"%s\" err=%d\n",
+ "%s meta_back_search[%ld] "
+ "match=\"%s\" err=%ld\n",
op->o_log_prefix, i,
candidates[ i ].sr_matched ? candidates[ i ].sr_matched : "",
- candidates[ i ].sr_err );
+ (long) candidates[ i ].sr_err );
Debug( LDAP_DEBUG_ANY, "%s", buf, 0, 0 );
switch ( sres ) {
}
if ( gotit == 0 ) {
- tv.tv_sec = 0;
- tv.tv_usec = 100000; /* 0.1 s */
+ LDAP_BACK_TV_SET( &tv );
ldap_pvt_thread_yield();
} else {
* FIXME: only the last one gets caught!
*/
savepriv = op->o_private;
- op->o_private = (void *)mi->mi_ntargets;
+ op->o_private = (void *)(long)mi->mi_ntargets;
if ( candidate_match > 0 ) {
struct berval pmatched = BER_BVNULL;
if ( BER_BVISNULL( &mapped ) || mapped.bv_val[0] == '\0' ) {
continue;
}
- attr = ( Attribute * )ch_malloc( sizeof( Attribute ) );
+ attr = ( Attribute * )ch_calloc( 1, sizeof( Attribute ) );
if ( attr == NULL ) {
continue;
}
- attr->a_flags = 0;
- attr->a_next = 0;
- attr->a_desc = NULL;
if ( slap_bv2ad( &mapped, &attr->a_desc, &text )
!= LDAP_SUCCESS) {
if ( slap_bv2undef_ad( &mapped, &attr->a_desc, &text,
pretty = attr->a_desc->ad_type->sat_syntax->ssyn_pretty;
if ( !validate && !pretty ) {
- attr->a_nvals = NULL;
attr_free( attr );
goto next_attr;
}
* ACLs to the target directory server, and letting
* everything pass thru the ldap backend.
*/
- } else if ( attr->a_desc->ad_type->sat_syntax ==
+ } else {
+ int i;
+
+ if ( attr->a_desc->ad_type->sat_syntax ==
slap_schema.si_syn_distinguishedName )
- {
- ldap_dnattr_result_rewrite( &dc, attr->a_vals );
+ {
+ ldap_dnattr_result_rewrite( &dc, attr->a_vals );
- } else if ( attr->a_desc == slap_schema.si_ad_ref ) {
- ldap_back_referral_result_rewrite( &dc, attr->a_vals );
+ } else if ( attr->a_desc == slap_schema.si_ad_ref ) {
+ ldap_back_referral_result_rewrite( &dc, attr->a_vals );
- } else {
- int i;
+ }
for ( i = 0; i < last; i++ ) {
struct berval pval;
}
}
- if ( last == 0 ) {
- ch_free( attr->a_vals );
- ch_free( attr );
+ if ( last == 0 && attr->a_vals != &slap_dummy_bv ) {
+ attr_free( attr );
goto next_attr;
}
}