Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.81 and 1.147.2.85

version 1.147.2.81, 2011/01/04 17:23:13 version 1.147.2.85, 2011/01/11 19:19:14
Line 2 Line 2
 /* 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-2010 The OpenLDAP Foundation.   * Copyright 2004-2011 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 785  syncprov_free_syncop( syncops *so ) Line 785  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 1641  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 1930  syncprov_op_response( Operation *op, Sla Line 1933  syncprov_op_response( Operation *op, Sla
                 }                  }
   
                 /* Add any log records */                  /* Add any log records */
                 if ( si->si_logs && op->o_tag != LDAP_REQ_ADD ) {                  if ( si->si_logs ) {
                         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 3152  syncprov_db_destroy( Line 3155  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.81  
changed lines
  Added in v.1.147.2.85


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