Diff for /servers/slapd/overlays/syncprov.c between versions 1.303 and 1.306

version 1.303, 2009/11/22 03:42:00 version 1.306, 2009/11/23 21:13:42
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.302 2009/11/21 10:54:59 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.305 2009/11/22 16:43:48 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 853  syncprov_sendresp( Operation *op, opcook Line 853  syncprov_sendresp( Operation *op, opcook
         }          }
   
         rs.sr_ctrls = ctrls;          rs.sr_ctrls = ctrls;
           rs.sr_entry = &e_uuid;
           if ( mode == LDAP_SYNC_ADD || mode == LDAP_SYNC_MODIFY ) {
                   e_uuid = *opc->se;
                   e_uuid.e_private = NULL;
           }
   
         switch( mode ) {          switch( mode ) {
         case LDAP_SYNC_ADD:          case LDAP_SYNC_ADD:
                 rs.sr_entry = opc->se;  
                 if ( opc->sreference && so->s_op->o_managedsait <= SLAP_CONTROL_IGNORED ) {                  if ( opc->sreference && so->s_op->o_managedsait <= SLAP_CONTROL_IGNORED ) {
                         rs.sr_ref = get_entry_referrals( op, rs.sr_entry );                          rs.sr_ref = get_entry_referrals( op, rs.sr_entry );
                         rs.sr_err = send_search_reference( op, &rs );                          rs.sr_err = send_search_reference( op, &rs );
Line 864  syncprov_sendresp( Operation *op, opcook Line 869  syncprov_sendresp( Operation *op, opcook
                 }                  }
                 /* fallthru */                  /* fallthru */
         case LDAP_SYNC_MODIFY:          case LDAP_SYNC_MODIFY:
                 rs.sr_entry = opc->se;  
                 rs.sr_attrs = op->ors_attrs;                  rs.sr_attrs = op->ors_attrs;
                 rs.sr_err = send_search_entry( op, &rs );                  rs.sr_err = send_search_entry( op, &rs );
                 break;                  break;
Line 872  syncprov_sendresp( Operation *op, opcook Line 876  syncprov_sendresp( Operation *op, opcook
                 e_uuid.e_attrs = NULL;                  e_uuid.e_attrs = NULL;
                 e_uuid.e_name = opc->sdn;                  e_uuid.e_name = opc->sdn;
                 e_uuid.e_nname = opc->sndn;                  e_uuid.e_nname = opc->sndn;
                 rs.sr_entry = &e_uuid;  
                 if ( opc->sreference && so->s_op->o_managedsait <= SLAP_CONTROL_IGNORED ) {                  if ( opc->sreference && so->s_op->o_managedsait <= SLAP_CONTROL_IGNORED ) {
                         struct berval bv = BER_BVNULL;                          struct berval bv = BER_BVNULL;
                         rs.sr_ref = &bv;                          rs.sr_ref = &bv;
Line 2470  syncprov_op_search( Operation *op, SlapR Line 2473  syncprov_op_search( Operation *op, SlapR
                                                 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, tell consumer nothing */
                                                   rs->sr_err = LDAP_SUCCESS;
   bailout:
                                                 if ( sop ) {                                                  if ( sop ) {
                                                         syncops **sp = &si->si_ops;                                                          syncops **sp = &si->si_ops;
                                                                                                                   
Line 2480  syncprov_op_search( Operation *op, SlapR Line 2485  syncprov_op_search( Operation *op, SlapR
                                                         ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );                                                          ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
                                                         ch_free( sop );                                                          ch_free( sop );
                                                 }                                                  }
                                                 rs->sr_err = LDAP_SUCCESS;  
                                                 rs->sr_ctrls = NULL;                                                  rs->sr_ctrls = NULL;
                                                 send_ldap_result( op, rs );                                                  send_ldap_result( op, rs );
                                                 return rs->sr_err;                                                  return rs->sr_err;
Line 2535  no_change:  if ( !(op->o_sync_mode & SLA Line 2539  no_change:  if ( !(op->o_sync_mode & SLA
                                         ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx );                                          ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx );
                                 if ( sids )                                  if ( sids )
                                         op->o_tmpfree( sids, op->o_tmpmemctx );                                          op->o_tmpfree( sids, op->o_tmpmemctx );
                                 send_ldap_error( op, rs, LDAP_SYNC_REFRESH_REQUIRED, "sync cookie is stale" );                                  rs->sr_err = LDAP_SYNC_REFRESH_REQUIRED;
                                 return rs->sr_err;                                  rs->sr_text = "sync cookie is stale";
                                   goto bailout;
                         }                          }
                         if ( srs->sr_state.ctxcsn ) {                          if ( srs->sr_state.ctxcsn ) {
                                 ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx );                                  ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx );

Removed from v.1.303  
changed lines
  Added in v.1.306


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