Diff for /servers/slapd/overlays/syncprov.c between versions 1.281 and 1.282

version 1.281, 2009/03/14 08:03:30 version 1.282, 2009/03/15 22:05:08
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.280 2009/03/14 06:22:19 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.281 2009/03/14 08:03:30 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 775  syncprov_sendresp( Operation *op, opcook Line 775  syncprov_sendresp( Operation *op, opcook
   
         SlapReply rs = { REP_SEARCH };          SlapReply rs = { REP_SEARCH };
         LDAPControl *ctrls[2];          LDAPControl *ctrls[2];
         struct berval cookie, csns[2];          struct berval cookie = BER_BVNULL, csns[2];
         Entry e_uuid = {0};          Entry e_uuid = {0};
         Attribute a_uuid = {0};          Attribute a_uuid = {0};
   
Line 783  syncprov_sendresp( Operation *op, opcook Line 783  syncprov_sendresp( Operation *op, opcook
                 return SLAPD_ABANDON;                  return SLAPD_ABANDON;
   
         ctrls[1] = NULL;          ctrls[1] = NULL;
         csns[0] = opc->sctxcsn;          if ( !BER_BVISNULL( &opc->sctxcsn )) {
         BER_BVZERO( &csns[1] );                  csns[0] = opc->sctxcsn;
         slap_compose_sync_cookie( op, &cookie, csns, so->s_rid, slap_serverID ? slap_serverID : -1 );                  BER_BVZERO( &csns[1] );
                   slap_compose_sync_cookie( op, &cookie, csns, so->s_rid, slap_serverID ? slap_serverID : -1 );
           }
   
 #ifdef LDAP_DEBUG  #ifdef LDAP_DEBUG
         if ( so->s_sid > 0 ) {          if ( !BER_BVISNULL( &cookie )) {
                 Debug( LDAP_DEBUG_SYNC, "syncprov_sendresp: to=%03x, cookie=%s\n",                  if ( so->s_sid > 0 ) {
                         so->s_sid, cookie.bv_val, 0 );                          Debug( LDAP_DEBUG_SYNC, "syncprov_sendresp: to=%03x, cookie=%s\n",
         } else {                                  so->s_sid, cookie.bv_val , 0 );
                 Debug( LDAP_DEBUG_SYNC, "syncprov_sendresp: cookie=%s\n",                  } else {
                         cookie.bv_val, 0, 0 );                          Debug( LDAP_DEBUG_SYNC, "syncprov_sendresp: cookie=%s\n",
         }                                  cookie.bv_val, 0, 0 );
                   }
           }               
 #endif  #endif
   
         e_uuid.e_attrs = &a_uuid;          e_uuid.e_attrs = &a_uuid;
Line 802  syncprov_sendresp( Operation *op, opcook Line 806  syncprov_sendresp( Operation *op, opcook
         a_uuid.a_nvals = &opc->suuid;          a_uuid.a_nvals = &opc->suuid;
         rs.sr_err = syncprov_state_ctrl( op, &rs, &e_uuid,          rs.sr_err = syncprov_state_ctrl( op, &rs, &e_uuid,
                 mode, ctrls, 0, 1, &cookie );                  mode, ctrls, 0, 1, &cookie );
         op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );          if ( !BER_BVISNULL( &cookie )) {
                   op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );
           }
   
         rs.sr_ctrls = ctrls;          rs.sr_ctrls = ctrls;
         op->o_bd->bd_info = (BackendInfo *)on->on_info;          op->o_bd->bd_info = (BackendInfo *)on->on_info;
Line 2203  syncprov_search_response( Operation *op, Line 2209  syncprov_search_response( Operation *op,
                                 LDAP_SYNC_ADD, rs->sr_ctrls, 0, 0, NULL );                                  LDAP_SYNC_ADD, rs->sr_ctrls, 0, 0, NULL );
                 }                  }
         } else if ( rs->sr_type == REP_RESULT && rs->sr_err == LDAP_SUCCESS ) {          } else if ( rs->sr_type == REP_RESULT && rs->sr_err == LDAP_SUCCESS ) {
                 struct berval cookie;                  struct berval cookie = BER_BVNULL;
   
                 if ( ss->ss_flags & SS_CHANGED ) {                  if ( ( ss->ss_flags & SS_CHANGED ) &&
                           ss->ss_ctxcsn && !BER_BVISNULL( &ss->ss_ctxcsn[0] )) {
                         slap_compose_sync_cookie( op, &cookie, ss->ss_ctxcsn,                          slap_compose_sync_cookie( op, &cookie, ss->ss_ctxcsn,
                                 srs->sr_state.rid, slap_serverID ? slap_serverID : -1 );                                  srs->sr_state.rid, slap_serverID ? slap_serverID : -1 );
   
Line 2229  syncprov_search_response( Operation *op, Line 2236  syncprov_search_response( Operation *op,
                                 LDAP_TAG_SYNC_REFRESH_PRESENT : LDAP_TAG_SYNC_REFRESH_DELETE,                                  LDAP_TAG_SYNC_REFRESH_PRESENT : LDAP_TAG_SYNC_REFRESH_DELETE,
                                 ( ss->ss_flags & SS_CHANGED ) ? &cookie : NULL,                                  ( ss->ss_flags & SS_CHANGED ) ? &cookie : NULL,
                                 1, NULL, 0 );                                  1, NULL, 0 );
                         if ( ss->ss_flags & SS_CHANGED )                          if ( !BER_BVISNULL( &cookie ))
                                 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 */

Removed from v.1.281  
changed lines
  Added in v.1.282


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