]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/config.c
Another abandon check
[openldap] / servers / slapd / config.c
index 6a91564813dd3bd913aa9454d715e18633873bb2..4dd2032b810f2fc40827292055575623c35832af 100644 (file)
@@ -1637,9 +1637,7 @@ add_syncrepl(
 )
 {
        syncinfo_t *si;
-       syncinfo_t *si_entry;
        int     rc = 0;
-       int duplicated_replica_id = 0;
 
        si = (syncinfo_t *) ch_calloc( 1, sizeof( syncinfo_t ) );
 
@@ -1667,39 +1665,30 @@ add_syncrepl(
        si->si_retryinterval = NULL;
        si->si_retrynum_init = NULL;
        si->si_retrynum = NULL;
-       si->si_syncCookie.ctxcsn = NULL;
-       si->si_syncCookie.octet_str = NULL;
        si->si_manageDSAit = 0;
        si->si_tlimit = 0;
        si->si_slimit = 0;
 
        si->si_presentlist = NULL;
        LDAP_LIST_INIT( &si->si_nonpresentlist );
+       ldap_pvt_thread_mutex_init( &si->si_mutex );
 
        rc = parse_syncrepl_line( cargv, cargc, si );
 
-       LDAP_STAILQ_FOREACH( si_entry, &be->be_syncinfo, si_next ) {
-               if ( si->si_rid == si_entry->si_rid ) {
-                       Debug( LDAP_DEBUG_ANY,
-                               "add_syncrepl: duplicated replica id\n",0, 0, 0 );
-                       duplicated_replica_id = 1;
-                       break;
-               }
-       }
-
-       if ( rc < 0 || duplicated_replica_id ) {
+       if ( rc < 0 ) {
                Debug( LDAP_DEBUG_ANY, "failed to add syncinfo\n", 0, 0, 0 );
                syncinfo_free( si );    
                return 1;
        } else {
                Debug( LDAP_DEBUG_CONFIG,
                        "Config: ** successfully added syncrepl \"%s\"\n",
-                       si->si_provideruri == NULL ? "(null)" : si->si_provideruri, 0, 0 );
+                       BER_BVISNULL( &si->si_provideruri ) ?
+                       "(null)" : si->si_provideruri.bv_val, 0, 0 );
                if ( !si->si_schemachecking ) {
                        SLAP_DBFLAGS(be) |= SLAP_DBFLAG_NO_SCHEMA_CHECK;
                }
                si->si_be = be;
-               LDAP_STAILQ_INSERT_TAIL( &be->be_syncinfo, si, si_next );
+               be->be_syncinfo = si;
                return 0;
        }
 }
@@ -1783,13 +1772,7 @@ parse_syncrepl_line(
                                        STRLENOF( PROVIDERSTR "=" ) ) )
                {
                        val = cargv[ i ] + STRLENOF( PROVIDERSTR "=" );
-                       si->si_provideruri = ch_strdup( val );
-                       si->si_provideruri_bv = (BerVarray)
-                               ch_calloc( 2, sizeof( struct berval ));
-                       ber_str2bv( si->si_provideruri, strlen( si->si_provideruri ),
-                               1, &si->si_provideruri_bv[0] );
-                       si->si_provideruri_bv[1].bv_len = 0;
-                       si->si_provideruri_bv[1].bv_val = NULL;
+                       ber_str2bv( val, 0, 1, &si->si_provideruri );
                        gots |= GOT_PROVIDER;
                } else if ( !strncasecmp( cargv[ i ], STARTTLSSTR "=",
                                        STRLENOF(STARTTLSSTR "=") ) )