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

version 1.147.2.76, 2010/12/12 00:47:22 version 1.314, 2010/07/01 09:51:43
Line 1 Line 1
 /* $OpenLDAP$ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.313 2010/06/23 14:34:25 ralf 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 783  syncprov_free_syncop( syncops *so ) Line 783  syncprov_free_syncop( syncops *so )
         GroupAssertion *ga, *gnext;          GroupAssertion *ga, *gnext;
   
         ldap_pvt_thread_mutex_lock( &so->s_mutex );          ldap_pvt_thread_mutex_lock( &so->s_mutex );
         if ( --so->s_inuse > 0 ) {          /* already being freed, or still in use */
           if ( !so->s_inuse || --so->s_inuse > 0 ) {
                 ldap_pvt_thread_mutex_unlock( &so->s_mutex );                  ldap_pvt_thread_mutex_unlock( &so->s_mutex );
                 return;                  return;
         }          }
Line 2483  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, complain to consumer */                                          /* our state is older, tell consumer nothing */
                                                 rs->sr_err = LDAP_UNWILLING_TO_PERFORM;                                                  rs->sr_err = LDAP_SUCCESS;
                                                 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 3015  syncprov_db_close( Line 3015  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 3035  syncprov_db_close( Line 3038  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;
 }  }
   

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


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