slap_dup_sync_cookie( &syncCookie_req, &si->si_syncCookie );
- if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST ) {
+ if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST && si->si_refreshDone ) {
tout_p = &tout;
} else {
tout_p = NULL;
si->si_refreshDone = 1;
}
ber_scanf( ber, /*"{"*/ "}" );
+ if ( abs(si->si_type) == LDAP_SYNC_REFRESH_AND_PERSIST &&
+ si->si_refreshDone )
+ tout_p = &tout;
break;
case LDAP_TAG_SYNC_ID_SET:
Debug( LDAP_DEBUG_SYNC,
for (i=0; i<mod->sml_numvals; i++)
mod->sml_nvalues[i] = modlist->sml_nvalues[i];
BER_BVZERO(&mod->sml_nvalues[i]);
+ } else {
+ mod->sml_nvalues = NULL;
}
+ } else {
+ mod->sml_values = NULL;
+ mod->sml_nvalues = NULL;
}
if ( match < 0 && modlist->sml_op == LDAP_MOD_REPLACE )
mod->sml_op = LDAP_MOD_ADD;
Modifications *ml;
int size, rc;
SlapReply rs1 = {0};
- resolve_ctxt rx = { si, newlist };
- slap_callback cb = { NULL, syncrepl_resolve_cb, NULL, &rx };
+ resolve_ctxt rx;
+ slap_callback cb = { NULL, syncrepl_resolve_cb, NULL, NULL };
+
+ rx.rx_si = si;
+ rx.rx_mods = newlist;
+ cb.sc_private = ℞
op2.o_tag = LDAP_REQ_SEARCH;
op2.ors_scope = LDAP_SCOPE_SUBTREE;