Diff for /servers/slapd/overlays/syncprov.c between versions 1.3 and 1.4

version 1.3, 2004/11/21 16:59:21 version 1.4, 2004/11/21 17:25:02
Line 180  findpres_cb( Operation *op, SlapReply *r Line 180  findpres_cb( Operation *op, SlapReply *r
         int ret;          int ret;
   
         if ( rs->sr_type == REP_SEARCH ) {          if ( rs->sr_type == REP_SEARCH ) {
                 ret = slap_sync_build_syncUUID_set( op, &pc->uuids, rs->sr_entry );                  ret = slap_build_syncUUID_set( op, &pc->uuids, rs->sr_entry );
                 if ( ret > 0 ) {                  if ( ret > 0 ) {
                         pc->num++;                          pc->num++;
                         if ( pc->num == SLAP_SYNCUUID_SET_SIZE ) {                          if ( pc->num == SLAP_SYNCUUID_SET_SIZE ) {
Line 269  syncprov_findcsn( Operation *op, int mod Line 269  syncprov_findcsn( Operation *op, int mod
                 fop.ors_attrsonly = 0;                  fop.ors_attrsonly = 0;
                 fop.ors_attrs = uuid_anlist;                  fop.ors_attrs = uuid_anlist;
                 fop.ors_slimit = SLAP_NO_LIMIT;                  fop.ors_slimit = SLAP_NO_LIMIT;
                 cb.sc_private = &fcookie;                  cb.sc_private = &pcookie;
                 cb.sc_response = findpres_cb;                  cb.sc_response = findpres_cb;
                 pcookie.num = 0;                  pcookie.num = 0;
                 pcookie.uuids = NULL;                  pcookie.uuids = NULL;
Line 288  syncprov_findcsn( Operation *op, int mod Line 288  syncprov_findcsn( Operation *op, int mod
   
         fop.o_bd->bd_info = on->on_info->oi_orig;          fop.o_bd->bd_info = on->on_info->oi_orig;
         rc = fop.o_bd->be_search( &fop, &frs );          rc = fop.o_bd->be_search( &fop, &frs );
           fop.o_bd->bd_info = on;
   
         if ( mode == FIND_CSN ) {          if ( mode == FIND_CSN ) {
                 if ( !si->si_gotcsn ) {                  if ( !si->si_gotcsn ) {
Line 403  syncprov_op_response( Operation *op, Sla Line 404  syncprov_op_response( Operation *op, Sla
                 }                  }
                 ldap_pvt_thread_mutex_unlock( &si->si_csn_mutex );                  ldap_pvt_thread_mutex_unlock( &si->si_csn_mutex );
   
                 switch(op->o_tag) {                  if ( si->si_ops ) {
                 case LDAP_REQ_ADD:                          switch(op->o_tag) {
                 case LDAP_REQ_MODIFY:                          case LDAP_REQ_ADD:
                 case LDAP_REQ_MODRDN:                          case LDAP_REQ_MODIFY:
                 case LDAP_REQ_EXTENDED:                          case LDAP_REQ_MODRDN:
                         syncprov_matchops( op, opc, 0 );                          case LDAP_REQ_EXTENDED:
                         break;                                  syncprov_matchops( op, opc, 0 );
                 case LDAP_REQ_DELETE:                                  break;
                         /* for each match in opc->smatches:                          case LDAP_REQ_DELETE:
                          *   send DELETE msg                                  /* for each match in opc->smatches:
                          */                                   *   send DELETE msg
                         for ( sm = opc->smatches; sm; sm=sm->sm_next ) {                                   */
                                   for ( sm = opc->smatches; sm; sm=sm->sm_next ) {
                                   }
                                   break;
                         }                          }
                         break;  
                 }                  }
   
         }          }
Line 497  syncprov_op_mod( Operation *op, SlapRepl Line 500  syncprov_op_mod( Operation *op, SlapRepl
         slap_overinst           *on = (slap_overinst *)op->o_bd->bd_info;          slap_overinst           *on = (slap_overinst *)op->o_bd->bd_info;
         syncprov_info_t         *si = on->on_bi.bi_private;          syncprov_info_t         *si = on->on_bi.bi_private;
   
         if ( si->si_ops )          slap_callback *cb = op->o_tmpcalloc(1, sizeof(slap_callback)+sizeof(opcookie), op->o_tmpmemctx);
         {          opcookie *opc = (opcookie *)(cb+1);
                 slap_callback *cb = op->o_tmpcalloc(1, sizeof(slap_callback)+sizeof(opcookie), op->o_tmpmemctx);          opc->son = on;
                 opcookie *opc = (opcookie *)(cb+1);          cb->sc_response = syncprov_op_response;
                 opc->son = on;          cb->sc_private = opc;
                 cb->sc_response = syncprov_op_response;          cb->sc_next = op->o_callback;
                 cb->sc_private = opc;          op->o_callback = cb;
                 cb->sc_next = op->o_callback;  
                 op->o_callback = cb;  
   
                 if ( op->o_tag != LDAP_REQ_ADD )          if ( si->si_ops && op->o_tag != LDAP_REQ_ADD )
                         syncprov_matchops( op, opc, 1 );                  syncprov_matchops( op, opc, 1 );
         }  
   
         return SLAP_CB_CONTINUE;          return SLAP_CB_CONTINUE;
 }  }
Line 603  syncprov_op_search( Operation *op, SlapR Line 603  syncprov_op_search( Operation *op, SlapR
                 } else {                  } else {
                         /* Does it match the current ctxCSN? */                          /* Does it match the current ctxCSN? */
                         if ( bvmatch( op->o_sync_state.ctxcsn, &si->si_ctxcsn )) {                          if ( bvmatch( op->o_sync_state.ctxcsn, &si->si_ctxcsn )) {
                                 struct berval cookie;  
                                 LDAPControl     *ctrls[2];                                  LDAPControl     *ctrls[2];
   
                                 ctrls[0] = NULL;                                  ctrls[0] = NULL;
                                 ctrls[1] = NULL;                                  ctrls[1] = NULL;
                                 slap_compose_sync_cookie( op, &cookie, op->o_sync_state.ctxcsn,                                  slap_build_sync_done_ctrl( op, rs, ctrls, 0, 0,
                                         op->o_sync_state.sid, op->o_sync_state.rid );                                          NULL, LDAP_SYNC_REFRESH_DELETES );
                                 slap_build_sync_done_ctrl( op, rs, ctrls, 0, 1,  
                                         &cookie, LDAP_SYNC_REFRESH_DELETES );  
                                 rs->sr_err = LDAP_SUCCESS;                                  rs->sr_err = LDAP_SUCCESS;
                                 send_ldap_result( op, rs );                                  send_ldap_result( op, rs );
                                 free( cookie.bv_val );  
                                 return rs->sr_err;                                  return rs->sr_err;
                         }                          }
                         gotstate = 1;                          gotstate = 1;

Removed from v.1.3  
changed lines
  Added in v.1.4


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org