Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.86 and 1.320

version 1.147.2.86, 2011/01/13 19:03:47 version 1.320, 2010/12/12 17:12:05
Line 1 Line 1
 /* $OpenLDAP$ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.319 2010/11/21 18:00:38 rein 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/>.
  *   *
  * Copyright 2004-2011 The OpenLDAP Foundation.   * Copyright 2004-2010 The OpenLDAP Foundation.
  * All rights reserved.   * All rights reserved.
  *   *
  * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
Line 1642  syncprov_playlog( Operation *op, SlapRep Line 1642  syncprov_playlog( Operation *op, SlapRep
                         delcsn[0].bv_len = se->se_csn.bv_len;                          delcsn[0].bv_len = se->se_csn.bv_len;
                         delcsn[0].bv_val[delcsn[0].bv_len] = '\0';                          delcsn[0].bv_val[delcsn[0].bv_len] = '\0';
                 } else {                  } else {
                         if ( se->se_tag == LDAP_REQ_ADD )  
                                 continue;  
                         nmods++;                          nmods++;
                         j = num - nmods;                          j = num - nmods;
                 }                  }
Line 1822  syncprov_op_response( Operation *op, Sla Line 1820  syncprov_op_response( Operation *op, Sla
                          * that changed, and only one can be passed in the csn queue.                           * that changed, and only one can be passed in the csn queue.
                          */                           */
                         Modifications *mod = op->orm_modlist;                          Modifications *mod = op->orm_modlist;
                         unsigned i;                          int i, j, sid;
                         int j, sid;  
   
                         for ( i=0; i<mod->sml_numvals; i++ ) {                          for ( i=0; i<mod->sml_numvals; i++ ) {
                                 sid = slap_parse_csn_sid( &mod->sml_values[i] );                                  sid = slap_parse_csn_sid( &mod->sml_values[i] );
Line 1934  syncprov_op_response( Operation *op, Sla Line 1931  syncprov_op_response( Operation *op, Sla
                 }                  }
   
                 /* Add any log records */                  /* Add any log records */
                 if ( si->si_logs ) {                  if ( si->si_logs && op->o_tag != LDAP_REQ_ADD ) {
                         syncprov_add_slog( op );                          syncprov_add_slog( op );
                 }                  }
 leave:          ldap_pvt_thread_mutex_unlock( &si->si_resp_mutex );  leave:          ldap_pvt_thread_mutex_unlock( &si->si_resp_mutex );
Line 3080  syncprov_db_close( Line 3077  syncprov_db_close(
 {  {
     slap_overinst   *on = (slap_overinst *) be->bd_info;      slap_overinst   *on = (slap_overinst *) be->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;
   #ifdef SLAP_CONFIG_DELETE
           syncops *so, *sonext;
   #endif /* SLAP_CONFIG_DELETE */
   
         if ( slapMode & SLAP_TOOL_MODE ) {          if ( slapMode & SLAP_TOOL_MODE ) {
                 return 0;                  return 0;
Line 3100  syncprov_db_close( Line 3100  syncprov_db_close(
                 syncprov_checkpoint( op, &rs, on );                  syncprov_checkpoint( op, &rs, on );
         }          }
   
   #ifdef SLAP_CONFIG_DELETE
           ldap_pvt_thread_mutex_lock( &si->si_ops_mutex );
           for ( so=si->si_ops, sonext=so;  so; so=sonext  ) {
                   SlapReply rs = {REP_RESULT};
                   rs.sr_err = LDAP_UNAVAILABLE;
                   send_ldap_result( so->s_op, &rs );
                   sonext=so->s_next;
                   syncprov_drop_psearch( so, 0);
           }
           si->si_ops=NULL;
           ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
           overlay_unregister_control( be, LDAP_CONTROL_SYNC );
   #endif /* SLAP_CONFIG_DELETE */
   
     return 0;      return 0;
 }  }
   
Line 3156  syncprov_db_destroy( Line 3170  syncprov_db_destroy(
                                 se = se_next;                                  se = se_next;
                         }                          }
                                                                   
                         ldap_pvt_thread_mutex_destroy(&si->si_logs->sl_mutex);  
                         ch_free( si->si_logs );                          ch_free( si->si_logs );
                 }                  }
                 if ( si->si_ctxcsn )                  if ( si->si_ctxcsn )

Removed from v.1.147.2.86  
changed lines
  Added in v.1.320


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