Diff for /servers/slapd/overlays/syncprov.c between versions 1.216 and 1.219

version 1.216, 2008/03/08 01:00:36 version 1.219, 2008/03/12 21:31:28
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.215 2008/02/10 23:19:43 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.218 2008/03/08 22:51: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 837  syncprov_sendresp( Operation *op, opcook Line 837  syncprov_sendresp( Operation *op, opcook
   
 /* Play back queued responses */  /* Play back queued responses */
 static int  static int
 syncprov_qplay( Operation *op, slap_overinst *on, syncops *so )  syncprov_qplay( Operation *op, struct re_s *rtask )
 {  {
           syncops *so = rtask->arg;
           slap_overinst *on = so->s_op->o_private;
         syncres *sr;          syncres *sr;
         Entry *e;          Entry *e;
         opcookie opc;          opcookie opc;
Line 910  syncprov_qtask( void *ctx, void *arg ) Line 912  syncprov_qtask( void *ctx, void *arg )
 {  {
         struct re_s *rtask = arg;          struct re_s *rtask = arg;
         syncops *so = rtask->arg;          syncops *so = rtask->arg;
         slap_overinst *on = so->s_op->o_private;  
         OperationBuffer opbuf;          OperationBuffer opbuf;
         Operation *op;          Operation *op;
         BackendDB be;          BackendDB be;
Line 935  syncprov_qtask( void *ctx, void *arg ) Line 936  syncprov_qtask( void *ctx, void *arg )
         op->o_private = NULL;          op->o_private = NULL;
         op->o_callback = NULL;          op->o_callback = NULL;
   
         rc = syncprov_qplay( op, on, so );          rc = syncprov_qplay( op, rtask );
   
         /* decrement use count... */          /* decrement use count... */
         syncprov_free_syncop( so );          syncprov_free_syncop( so );
Line 1213  syncprov_matchops( Operation *op, opcook Line 1214  syncprov_matchops( Operation *op, opcook
                 }                  }
   
                 /* check if current o_req_dn is in scope and matches filter */                  /* check if current o_req_dn is in scope and matches filter */
                 if ( fc.fscope && test_filter( op, e, ss->s_op->ors_filter ) ==                  if ( fc.fscope && test_filter( ss->s_op, e, ss->s_op->ors_filter ) ==
                         LDAP_COMPARE_TRUE ) {                          LDAP_COMPARE_TRUE ) {
                         if ( saveit ) {                          if ( saveit ) {
                                 sm = op->o_tmpalloc( sizeof(syncmatches), op->o_tmpmemctx );                                  sm = op->o_tmpalloc( sizeof(syncmatches), op->o_tmpmemctx );
Line 1779  syncprov_op_mod( Operation *op, SlapRepl Line 1780  syncprov_op_mod( Operation *op, SlapRepl
                         /* wait for this op to get to head of list */                          /* wait for this op to get to head of list */
                         while ( mt->mt_mods != mi ) {                          while ( mt->mt_mods != mi ) {
                                 ldap_pvt_thread_mutex_unlock( &mt->mt_mutex );                                  ldap_pvt_thread_mutex_unlock( &mt->mt_mutex );
                                 ldap_pvt_thread_yield();                                  /* FIXME: if dynamic config can delete overlays or
                                    * databases we'll have to check for cleanup here.
                                    * Currently it's not an issue because there are
                                    * no dynamic config deletes...
                                    */
                                   if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
                                           ldap_pvt_thread_yield();
                                 ldap_pvt_thread_mutex_lock( &mt->mt_mutex );                                  ldap_pvt_thread_mutex_lock( &mt->mt_mutex );
   
                                 /* clean up if the caller is giving up */                                  /* clean up if the caller is giving up */

Removed from v.1.216  
changed lines
  Added in v.1.219


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