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

version 1.306, 2009/11/23 21:13:42 version 1.310, 2010/04/13 20:18:25
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.305 2009/11/22 16:43:48 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.309 2010/01/21 12:33:21 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/>.
  *   *
  * Copyright 2004-2009 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 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 931  syncprov_qplay( Operation *op, syncops * Line 932  syncprov_qplay( Operation *op, syncops *
                 ldap_pvt_thread_mutex_unlock( &so->s_mutex );                  ldap_pvt_thread_mutex_unlock( &so->s_mutex );
   
                 if ( sr->s_mode == LDAP_SYNC_NEW_COOKIE ) {                  if ( sr->s_mode == LDAP_SYNC_NEW_COOKIE ) {
                     SlapReply rs = { REP_INTERMEDIATE };                          SlapReply rs = { REP_INTERMEDIATE };
   
                     rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,                          rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,
                                 &sr->s_csn, 0, NULL, 0 );                                  &sr->s_csn, 0, NULL, 0 );
                 } else {                  } else {
                         opc.sdn = sr->s_dn;                          opc.sdn = sr->s_dn;
Line 945  syncprov_qplay( Operation *op, syncops * Line 946  syncprov_qplay( Operation *op, syncops *
   
                         rc = syncprov_sendresp( op, &opc, so, sr->s_mode );                          rc = syncprov_sendresp( op, &opc, so, sr->s_mode );
   
                         if ( opc.se ) {                  }
                                 if ( !dec_mutexint( opc.se->e_private )) {                  if ( sr->s_e ) {
                                         opc.se->e_private = NULL;                          if ( !dec_mutexint( sr->s_e->e_private )) {
                                         entry_free ( opc.se );                                  sr->s_e->e_private = NULL;
                                 }                                  entry_free ( sr->s_e );
                         }                          }
                 }                  }
   
Line 2561  no_change:  if ( !(op->o_sync_mode & SLA Line 2562  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_result( op, rs );                                  goto bailout;
                                 return rs->sr_err;  
                         }                          }
                 }                  }
         } else {          } else {

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


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