Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.56 and 1.278

version 1.147.2.56, 2009/03/17 16:36:59 version 1.278, 2009/03/13 22:25:00
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.147.2.55 2009/03/17 16:34:54 quanah Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.277 2009/03/13 22:09:14 hyc Exp $ */
 /* syncprov.c - syncrepl provider */  /* syncprov.c - syncrepl provider */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
Line 1644  syncprov_op_response( Operation *op, Sla Line 1644  syncprov_op_response( Operation *op, Sla
                 maxcsn.bv_len = sizeof(cbuf);                  maxcsn.bv_len = sizeof(cbuf);
                 ldap_pvt_thread_rdwr_wlock( &si->si_csn_rwlock );                  ldap_pvt_thread_rdwr_wlock( &si->si_csn_rwlock );
   
                 if ( op->o_dont_replicate && op->o_tag == LDAP_REQ_MODIFY &&  #if 0
                   if ( op->o_dont_replicate &&
                                 op->orm_modlist->sml_op == LDAP_MOD_REPLACE &&                                  op->orm_modlist->sml_op == LDAP_MOD_REPLACE &&
                                 op->orm_modlist->sml_desc == slap_schema.si_ad_contextCSN ) {                                  op->orm_modlist->sml_desc == slap_schema.si_ad_contextCSN ) {
                         /* Catch contextCSN updates from syncrepl. We have to look at                          /* Catch contextCSN updates from syncrepl. We have to look at
Line 1693  syncprov_op_response( Operation *op, Sla Line 1694  syncprov_op_response( Operation *op, Sla
                         }                          }
                         return SLAP_CB_CONTINUE;                          return SLAP_CB_CONTINUE;
                 }                  }
   #endif
   
                 slap_get_commit_csn( op, &maxcsn, &foundit );                  slap_get_commit_csn( op, &maxcsn, &foundit );
                 if ( BER_BVISEMPTY( &maxcsn ) && SLAP_GLUE_SUBORDINATE( op->o_bd )) {                  if ( BER_BVISEMPTY( &maxcsn ) && SLAP_GLUE_SUBORDINATE( op->o_bd )) {
Line 1733  syncprov_op_response( Operation *op, Sla Line 1735  syncprov_op_response( Operation *op, Sla
                                         sizeof(int));                                          sizeof(int));
                                 si->si_sids[i] = sid;                                  si->si_sids[i] = sid;
                         }                          }
 #if 0  
                 } else if ( !foundit ) {                  } else if ( !foundit ) {
                         /* internal ops that aren't meant to be replicated */                          /* internal ops that aren't meant to be replicated */
                         ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock );                          ldap_pvt_thread_rdwr_wunlock( &si->si_csn_rwlock );
                         return SLAP_CB_CONTINUE;                          return SLAP_CB_CONTINUE;
 #endif  
                 }                  }
   
                 /* Don't do any processing for consumer contextCSN updates */                  /* Don't do any processing for consumer contextCSN updates */
Line 1749  syncprov_op_response( Operation *op, Sla Line 1749  syncprov_op_response( Operation *op, Sla
   
                 si->si_numops++;                  si->si_numops++;
                 if ( si->si_chkops || si->si_chktime ) {                  if ( si->si_chkops || si->si_chktime ) {
                         /* Never checkpoint adding the context entry,                          if ( si->si_chkops && si->si_numops >= si->si_chkops ) {
                          * it will deadlock                                  do_check = 1;
                          */                                  si->si_numops = 0;
                         if ( op->o_tag != LDAP_REQ_ADD ||                          }
                                 !dn_match( &op->o_req_ndn, &op->o_bd->be_nsuffix[0] )) {                          if ( si->si_chktime &&
                                 if ( si->si_chkops && si->si_numops >= si->si_chkops ) {                                  (op->o_time - si->si_chklast >= si->si_chktime )) {
                                   if ( si->si_chklast ) {
                                         do_check = 1;                                          do_check = 1;
                                         si->si_numops = 0;                                          si->si_chklast = op->o_time;
                                 }                                  } else {
                                 if ( si->si_chktime &&                                          si->si_chklast = 1;
                                         (op->o_time - si->si_chklast >= si->si_chktime )) {  
                                         if ( si->si_chklast ) {  
                                                 do_check = 1;  
                                                 si->si_chklast = op->o_time;  
                                         } else {  
                                                 si->si_chklast = 1;  
                                         }  
                                 }                                  }
                         }                          }
                 }                  }

Removed from v.1.147.2.56  
changed lines
  Added in v.1.278


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