]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/syncrepl.c
Fix prev commit, config_obsolete
[openldap] / servers / slapd / syncrepl.c
index b5fef03d485fdadedcfbeeb71f96259277f96731..2913cf5ab8c87ec9918a395b51a8b35ee81e9c63 100644 (file)
@@ -59,46 +59,46 @@ typedef struct cookie_state {
 
 typedef struct syncinfo_s {
        struct syncinfo_s       *si_next;
-       struct slap_backend_db *si_be;
-       struct slap_backend_db *si_wbe;
-       struct re_s                     *si_re;
-       int                                     si_rid;
-       char                            si_ridtxt[8];
+       BackendDB               *si_be;
+       BackendDB               *si_wbe;
+       struct re_s             *si_re;
+       int                     si_rid;
+       char                    si_ridtxt[8];
        slap_bindconf           si_bindconf;
        struct berval           si_base;
        struct berval           si_logbase;
        struct berval           si_filterstr;
        struct berval           si_logfilterstr;
-       int                                     si_scope;
-       int                                     si_attrsonly;
-       char                            *si_anfile;
+       int                     si_scope;
+       int                     si_attrsonly;
+       char                    *si_anfile;
        AttributeName           *si_anlist;
        AttributeName           *si_exanlist;
-       char                            **si_attrs;
-       char                            **si_exattrs;
-       int                                     si_allattrs;
-       int                                     si_allopattrs;
-       int                                     si_schemachecking;
-       int                                     si_type;        /* the active type */
-       int                                     si_ctype;       /* the configured type */
-       time_t                          si_interval;
-       time_t                          *si_retryinterval;
-       int                                     *si_retrynum_init;
-       int                                     *si_retrynum;
+       char                    **si_attrs;
+       char                    **si_exattrs;
+       int                     si_allattrs;
+       int                     si_allopattrs;
+       int                     si_schemachecking;
+       int                     si_type;        /* the active type */
+       int                     si_ctype;       /* the configured type */
+       time_t                  si_interval;
+       time_t                  *si_retryinterval;
+       int                     *si_retrynum_init;
+       int                     *si_retrynum;
        struct sync_cookie      si_syncCookie;
        cookie_state            *si_cookieState;
-       int                                     si_cookieAge;
-       int                                     si_manageDSAit;
-       int                                     si_slimit;
-       int                                     si_tlimit;
-       int                                     si_refreshDelete;
-       int                                     si_refreshPresent;
-       int                                     si_syncdata;
-       int                                     si_logstate;
-       int                                     si_conn_setup;
-       Avlnode                         *si_presentlist;
-       LDAP                            *si_ld;
-       LDAP_LIST_HEAD(np, nonpresent_entry) si_nonpresentlist;
+       int                     si_cookieAge;
+       int                     si_manageDSAit;
+       int                     si_slimit;
+       int                     si_tlimit;
+       int                     si_refreshDelete;
+       int                     si_refreshPresent;
+       int                     si_syncdata;
+       int                     si_logstate;
+       int                     si_conn_setup;
+       Avlnode                 *si_presentlist;
+       LDAP                    *si_ld;
+       LDAP_LIST_HEAD(np, nonpresent_entry)    si_nonpresentlist;
        ldap_pvt_thread_mutex_t si_mutex;
 } syncinfo_t;
 
@@ -120,9 +120,9 @@ static struct berval * slap_uuidstr_from_normalized(
                                        struct berval *, struct berval *, void * );
 
 /* callback functions */
-static int dn_callback( struct slap_op *, struct slap_rep * );
-static int nonpresent_callback( struct slap_op *, struct slap_rep * );
-static int null_callback( struct slap_op *, struct slap_rep * );
+static int dn_callback( Operation *, SlapReply * );
+static int nonpresent_callback( Operation *, SlapReply * );
+static int null_callback( Operation *, SlapReply * );
 
 static AttributeDescription *sync_descs[4];
 
@@ -499,7 +499,7 @@ do_syncrep1(
                                        si->si_cookieState->cs_vals = csn;
                                        for (i=0; !BER_BVISNULL( &csn[i] ); i++);
                                        si->si_cookieState->cs_num = i;
-                                       si->si_cookieState->cs_sids = slap_parse_csn_sids( csn, i );
+                                       si->si_cookieState->cs_sids = slap_parse_csn_sids( csn, i, NULL );
                                }
                        }
                        if ( si->si_cookieState->cs_num ) {
@@ -567,7 +567,7 @@ do_syncrep1(
                                si->si_cookieState->cs_num = num;
                                si->si_cookieState->cs_vals = a.a_vals;
                                si->si_cookieState->cs_sids = slap_parse_csn_sids( a.a_vals,
-                                       num );
+                                       num, NULL );
                                si->si_cookieState->cs_age++;
                        } else {
                                ber_bvarray_free( a.a_vals );
@@ -852,11 +852,11 @@ do_syncrep2(
                                        }
                                        ber_scanf( ber, /*"{"*/ "}" );
                                }
-                               if ( !syncCookie_req.ctxcsn ) {
+                               if ( !syncCookie.ctxcsn ) {
+                                       match = 1;
+                               } else if ( !syncCookie_req.ctxcsn ) {
                                        match = -1;
                                        m = 0;
-                               } else if ( !syncCookie.ctxcsn ) {
-                                       match = 1;
                                } else {
                                        match = compare_csns( &syncCookie_req, &syncCookie, &m );
                                }
@@ -999,11 +999,11 @@ do_syncrep2(
                                                continue;
                                        }
 
-                                       if ( !syncCookie_req.ctxcsn ) {
+                                       if ( !syncCookie.ctxcsn ) {
+                                               match = 1;
+                                       } else if ( !syncCookie_req.ctxcsn ) {
                                                match = -1;
                                                m = 0;
-                                       } else if ( !syncCookie.ctxcsn ) {
-                                               match = 1;
                                        } else {
                                                match = compare_csns( &syncCookie_req, &syncCookie, &m );
                                        }
@@ -1499,6 +1499,7 @@ syncrepl_message_to_op(
                        op->orm_modlist = modlist;
                        op->o_bd = si->si_wbe;
                        rc = op->o_bd->be_modify( op, &rs );
+                       modlist = op->orm_modlist;
                        Debug( rc ? LDAP_DEBUG_ANY : LDAP_DEBUG_SYNC,
                                "syncrepl_message_to_op: %s be_modify %s (%d)\n", 
                                si->si_ridtxt, op->o_req_dn.bv_val, rc );
@@ -2608,7 +2609,7 @@ syncrepl_updateCookie(
                        value_add( &si->si_cookieState->cs_vals, syncCookie->ctxcsn );
                        free( si->si_cookieState->cs_sids );
                        si->si_cookieState->cs_sids = slap_parse_csn_sids(
-                               si->si_cookieState->cs_vals, si->si_cookieState->cs_num );
+                               si->si_cookieState->cs_vals, si->si_cookieState->cs_num, NULL );
                }
 
                si->si_cookieState->cs_age++;
@@ -3804,7 +3805,7 @@ syncrepl_unparse( syncinfo_t *si, struct berval *bv )
        si->si_bindconf.sb_version = LDAP_VERSION3;
 
        ptr = buf;
-       ptr += snprintf( ptr, WHATSLEFT, IDSTR "=%03ld " PROVIDERSTR "=%s",
+       ptr += snprintf( ptr, WHATSLEFT, IDSTR "=%03d " PROVIDERSTR "=%s",
                si->si_rid, si->si_bindconf.sb_uri.bv_val );
        if ( ptr - buf >= sizeof( buf ) ) return;
        if ( !BER_BVISNULL( &bc ) ) {