Diff for /servers/slapd/overlays/syncprov.c between versions 1.229 and 1.231

version 1.229, 2008/04/16 22:03:06 version 1.231, 2008/04/28 10:53:04
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.227 2008/04/03 06:43:48 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.230 2008/04/24 16:35:35 hyc 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 737  syncprov_free_syncop( syncops *so ) Line 737  syncprov_free_syncop( syncops *so )
                 ldap_pvt_thread_mutex_unlock( &so->s_mutex );                  ldap_pvt_thread_mutex_unlock( &so->s_mutex );
                 return;                  return;
         }          }
           if ( so->s_qtask ) {
                   ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
                   if ( ldap_pvt_runqueue_isrunning( &slapd_rq, so->s_qtask ) )
                           ldap_pvt_runqueue_stoptask( &slapd_rq, so->s_qtask );
                   ldap_pvt_runqueue_remove( &slapd_rq, so->s_qtask );
                   ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
           }
         ldap_pvt_thread_mutex_unlock( &so->s_mutex );          ldap_pvt_thread_mutex_unlock( &so->s_mutex );
         if ( so->s_flags & PS_IS_DETACHED ) {          if ( so->s_flags & PS_IS_DETACHED ) {
                 filter_free( so->s_op->ors_filter );                  filter_free( so->s_op->ors_filter );
Line 2389  syncprov_operational( Line 2396  syncprov_operational(
   
                                 if ( !ap ) {                                  if ( !ap ) {
                                         if ( !(rs->sr_flags & REP_ENTRY_MODIFIABLE) ) {                                          if ( !(rs->sr_flags & REP_ENTRY_MODIFIABLE) ) {
                                                 rs->sr_entry = entry_dup( rs->sr_entry );                                                  Entry *e = entry_dup( rs->sr_entry );
                                                   if ( rs->sr_flags & REP_ENTRY_MUSTRELEASE ) {
                                                           overlay_entry_release_ov( op, rs->sr_entry, 0, on );
                                                           rs->sr_flags ^= REP_ENTRY_MUSTRELEASE;
                                                   } else if ( rs->sr_flags & REP_ENTRY_MUSTBEFREED ) {
                                                           entry_free( rs->sr_entry );
                                                   }
                                                   rs->sr_entry = e;
                                                 rs->sr_flags |=                                                  rs->sr_flags |=
                                                         REP_ENTRY_MODIFIABLE|REP_ENTRY_MUSTBEFREED;                                                          REP_ENTRY_MODIFIABLE|REP_ENTRY_MUSTBEFREED;
                                                 a = attr_find( rs->sr_entry->e_attrs,                                                  a = attr_find( rs->sr_entry->e_attrs,

Removed from v.1.229  
changed lines
  Added in v.1.231


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