Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.68 and 1.147.2.69

version 1.147.2.68, 2009/11/22 16:32:30 version 1.147.2.69, 2009/11/22 16:54:47
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 981  syncprov_qtask( void *ctx, void *arg ) Line 984  syncprov_qtask( void *ctx, void *arg )
         Operation *op;          Operation *op;
         BackendDB be;          BackendDB be;
         int rc;          int rc;
         OpExtra oex;  
   
         op = &opbuf.ob_op;          op = &opbuf.ob_op;
         *op = *so->s_op;          *op = *so->s_op;
Line 1000  syncprov_qtask( void *ctx, void *arg ) Line 1002  syncprov_qtask( void *ctx, void *arg )
         be.be_flags |= SLAP_DBFLAG_OVERLAY;          be.be_flags |= SLAP_DBFLAG_OVERLAY;
         op->o_bd = &be;          op->o_bd = &be;
         LDAP_SLIST_FIRST(&op->o_extra) = NULL;          LDAP_SLIST_FIRST(&op->o_extra) = NULL;
   
         /* Let syncprov_operational know it's us */  
         oex.oe_key = (void *)syncprov_qtask;  
         LDAP_SLIST_INSERT_HEAD(&op->o_extra, &oex, oe_next);  
   
         op->o_callback = NULL;          op->o_callback = NULL;
   
         rc = syncprov_qplay( op, so );          rc = syncprov_qplay( op, so );
Line 2637  syncprov_operational( Line 2634  syncprov_operational(
 {  {
         slap_overinst           *on = (slap_overinst *)op->o_bd->bd_info;          slap_overinst           *on = (slap_overinst *)op->o_bd->bd_info;
         syncprov_info_t         *si = (syncprov_info_t *)on->on_bi.bi_private;          syncprov_info_t         *si = (syncprov_info_t *)on->on_bi.bi_private;
         OpExtra         *oex;  
   
         /* short-circuit, don't want backends handling this */  
         LDAP_SLIST_FOREACH(oex, &op->o_extra, oe_next) {  
                 if ( oex->oe_key == (void *)syncprov_qtask )  
                         return LDAP_SUCCESS;  
         }  
   
         /* This prevents generating unnecessarily; frontend will strip          /* This prevents generating unnecessarily; frontend will strip
          * any statically stored copy.           * any statically stored copy.

Removed from v.1.147.2.68  
changed lines
  Added in v.1.147.2.69


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