Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.43 and 1.257

version 1.147.2.43, 2009/01/26 20:53:59 version 1.257, 2009/02/11 21:00:00
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.147.2.42 2009/01/22 00:01:13 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.256 2009/01/28 01:03:07 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 1339  syncprov_checkpoint( Operation *op, Slap Line 1339  syncprov_checkpoint( Operation *op, Slap
         SlapReply rsm = { 0 };          SlapReply rsm = { 0 };
         slap_callback cb = {0};          slap_callback cb = {0};
         BackendDB be;          BackendDB be;
   #ifdef CHECK_CSN
           Syntax *syn = slap_schema.si_ad_contextCSN->ad_type->sat_syntax;
   
           int i;
           for ( i=0; i<si->si_numcsns; i++ ) {
                   assert( !syn->ssyn_validate( syn, si->si_ctxcsn+i ));
           }
   #endif
         mod.sml_numvals = si->si_numcsns;          mod.sml_numvals = si->si_numcsns;
         mod.sml_values = si->si_ctxcsn;          mod.sml_values = si->si_ctxcsn;
         mod.sml_nvalues = NULL;          mod.sml_nvalues = NULL;
Line 1367  syncprov_checkpoint( Operation *op, Slap Line 1374  syncprov_checkpoint( Operation *op, Slap
         if ( mod.sml_next != NULL ) {          if ( mod.sml_next != NULL ) {
                 slap_mods_free( mod.sml_next, 1 );                  slap_mods_free( mod.sml_next, 1 );
         }          }
   #ifdef CHECK_CSN
           for ( i=0; i<si->si_numcsns; i++ ) {
                   assert( !syn->ssyn_validate( syn, si->si_ctxcsn+i ));
           }
   #endif
 }  }
   
 static void  static void
Line 2123  syncprov_search_response( Operation *op, Line 2135  syncprov_search_response( Operation *op,
                                 op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );                                  op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );
   
                         /* Detach this Op from frontend control */                          /* Detach this Op from frontend control */
                         ldap_pvt_thread_mutex_lock( &ss->ss_so->s_mutex );  
                         ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );                          ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
   
                         /* But not if this connection was closed along the way */                          /* But not if this connection was closed along the way */
                         if ( op->o_abandon ) {                          if ( op->o_abandon ) {
                                 ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );                                  ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
                                 ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex );  
                                 /* syncprov_ab_cleanup will free this syncop */                                  /* syncprov_ab_cleanup will free this syncop */
                                 return SLAPD_ABANDON;                                  return SLAPD_ABANDON;
   
                         } else {                          } else {
                                   ldap_pvt_thread_mutex_lock( &ss->ss_so->s_mutex );
                                 /* Turn off the refreshing flag */                                  /* Turn off the refreshing flag */
                                 ss->ss_so->s_flags ^= PS_IS_REFRESHING;                                  ss->ss_so->s_flags ^= PS_IS_REFRESHING;
   
Line 2144  syncprov_search_response( Operation *op, Line 2155  syncprov_search_response( Operation *op,
                                 /* If there are queued responses, fire them off */                                  /* If there are queued responses, fire them off */
                                 if ( ss->ss_so->s_res )                                  if ( ss->ss_so->s_res )
                                         syncprov_qstart( ss->ss_so );                                          syncprov_qstart( ss->ss_so );
                                   ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex );
                         }                          }
                         ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex );  
   
                         return LDAP_SUCCESS;                          return LDAP_SUCCESS;
                 }                  }

Removed from v.1.147.2.43  
changed lines
  Added in v.1.257


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