Diff for /servers/slapd/overlays/syncprov.c between versions 1.314 and 1.316

version 1.314, 2010/07/01 09:51:43 version 1.316, 2010/11/15 14:42:06
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.313 2010/06/23 14:34:25 ralf Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.315 2010/07/28 00:21:27 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 1294  syncprov_matchops( Operation *op, opcook Line 1294  syncprov_matchops( Operation *op, opcook
                 }                  }
   
                 if ( fc.fscope ) {                  if ( fc.fscope ) {
                           ldap_pvt_thread_mutex_lock( &ss->s_mutex );
                         op2 = *ss->s_op;                          op2 = *ss->s_op;
                         oh = *op->o_hdr;                          oh = *op->o_hdr;
                         oh.oh_conn = ss->s_op->o_conn;                          oh.oh_conn = ss->s_op->o_conn;
Line 1302  syncprov_matchops( Operation *op, opcook Line 1303  syncprov_matchops( Operation *op, opcook
                         op2.o_hdr = &oh;                          op2.o_hdr = &oh;
                         op2.o_extra = op->o_extra;                          op2.o_extra = op->o_extra;
                         op2.o_callback = NULL;                          op2.o_callback = NULL;
                         ldap_pvt_thread_mutex_lock( &ss->s_mutex );  
                         if (ss->s_flags & PS_FIX_FILTER) {                          if (ss->s_flags & PS_FIX_FILTER) {
                                 /* Skip the AND/GE clause that we stuck on in front. We                                  /* Skip the AND/GE clause that we stuck on in front. We
                                    would lose deletes/mods that happen during the refresh                                     would lose deletes/mods that happen during the refresh
Line 2484  syncprov_op_search( Operation *op, SlapR Line 2484  syncprov_op_search( Operation *op, SlapR
                                         if ( newer < 0 )                                          if ( newer < 0 )
                                                 changed = SS_CHANGED;                                                  changed = SS_CHANGED;
                                         else if ( newer > 0 ) {                                          else if ( newer > 0 ) {
                                         /* our state is older, tell consumer nothing */                                          /* our state is older, complain to consumer */
                                                 rs->sr_err = LDAP_SUCCESS;                                                  rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
                                                   rs->sr_text = "consumer state is newer than provider!";
 bailout:  bailout:
                                                 if ( sop ) {                                                  if ( sop ) {
                                                         syncops **sp = &si->si_ops;                                                          syncops **sp = &si->si_ops;
Line 2606  shortcut: Line 2607  shortcut:
 #endif  #endif
                 ber_dupbv_x( &fava->f_ava->aa_value, &mincsn, op->o_tmpmemctx );                  ber_dupbv_x( &fava->f_ava->aa_value, &mincsn, op->o_tmpmemctx );
                 fava->f_next = op->ors_filter;                  fava->f_next = op->ors_filter;
                   if ( sop )
                           ldap_pvt_thread_mutex_lock( &sop->s_mutex );
                 op->ors_filter = fand;                  op->ors_filter = fand;
                 filter2bv_x( op, op->ors_filter, &op->ors_filterstr );                  filter2bv_x( op, op->ors_filter, &op->ors_filterstr );
                 if ( sop )                  if ( sop ) {
                         sop->s_flags |= PS_FIX_FILTER;                          sop->s_flags |= PS_FIX_FILTER;
                           ldap_pvt_thread_mutex_unlock( &sop->s_mutex );
                   }
         }          }
   
         /* Let our callback add needed info to returned entries */          /* Let our callback add needed info to returned entries */

Removed from v.1.314  
changed lines
  Added in v.1.316


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