mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-19 14:30:57 +08:00
ITS#9761 Fix olcSyncrepl position based insertion
This commit is contained in:
parent
edc0cd592f
commit
a8467b8b15
@ -7118,7 +7118,7 @@ add_syncrepl(
|
||||
ConfigArgs *c )
|
||||
{
|
||||
syncinfo_t *si;
|
||||
int rc = 0;
|
||||
int i, rc = 0;
|
||||
|
||||
if ( !( c->be->be_search && c->be->be_add && c->be->be_modify && c->be->be_delete ) ) {
|
||||
snprintf( c->cr_msg, sizeof(c->cr_msg), "database %s does not support "
|
||||
@ -7255,13 +7255,17 @@ add_syncrepl(
|
||||
BER_BVISNULL( &si->si_bindconf.sb_uri ) ?
|
||||
"(null)" : si->si_bindconf.sb_uri.bv_val );
|
||||
if ( c->be->be_syncinfo ) {
|
||||
syncinfo_t *sip;
|
||||
syncinfo_t **sip;
|
||||
|
||||
si->si_cookieState = c->be->be_syncinfo->si_cookieState;
|
||||
|
||||
/* add new syncrepl to end of list (same order as when deleting) */
|
||||
for ( sip = c->be->be_syncinfo; sip->si_next; sip = sip->si_next );
|
||||
sip->si_next = si;
|
||||
for ( i = 0, sip = &c->be->be_syncinfo;
|
||||
(*sip)->si_next && ( c->valx < 0 || i < c->valx );
|
||||
sip = &(*sip)->si_next, i++ )
|
||||
/* advance to the desired position */ ;
|
||||
si->si_next = *sip;
|
||||
*sip = si;
|
||||
|
||||
} else {
|
||||
si->si_cookieState = ch_calloc( 1, sizeof( cookie_state ));
|
||||
ldap_pvt_thread_mutex_init( &si->si_cookieState->cs_mutex );
|
||||
@ -7270,10 +7274,10 @@ add_syncrepl(
|
||||
ldap_pvt_thread_cond_init( &si->si_cookieState->cs_cond );
|
||||
|
||||
c->be->be_syncinfo = si;
|
||||
si->si_next = NULL;
|
||||
}
|
||||
si->si_cookieState->cs_ref++;
|
||||
|
||||
si->si_next = NULL;
|
||||
syncrepl_monitor_init();
|
||||
|
||||
return 0;
|
||||
|
@ -302,6 +302,14 @@ olcSyncrepl: {0}rid=001 provider=$URI1 binddn="cn=config"
|
||||
bindmethod=simple credentials=$CONFIGPW searchbase="cn=schema,cn=config"
|
||||
$SYNCTYPE retry="3 5 300 5" timeout=3
|
||||
suffixmassage="cn=schema,cn=config,cn=consumer"
|
||||
# a dummy stanza we add to the beginning and remove again
|
||||
olcSyncrepl: {0}rid=006 provider=$URI6 binddn="cn=config"
|
||||
bindmethod=simple credentials=$CONFIGPW searchbase="cn=schema,cn=config"
|
||||
$SYNCTYPE retry="3 5 300 5" timeout=3
|
||||
suffixmassage="cn=schema,cn=config,cn=consumer"
|
||||
-
|
||||
delete: olcSyncrepl
|
||||
olcSyncrepl: {0}
|
||||
-
|
||||
add: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
Loading…
x
Reference in New Issue
Block a user