Diff for /servers/slapd/overlays/refint.c between versions 1.37 and 1.38

version 1.37, 2007/09/21 06:43:57 version 1.38, 2007/09/21 07:34:31
Line 1 Line 1
 /* refint.c - referential integrity module */  /* refint.c - referential integrity module */
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/refint.c,v 1.36 2007/08/22 15:46:55 ando Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/refint.c,v 1.37 2007/09/21 06:43:57 hyc Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 2004-2007 The OpenLDAP Foundation.   * Copyright 2004-2007 The OpenLDAP Foundation.
Line 54  typedef struct refint_attrs_s { Line 54  typedef struct refint_attrs_s {
         BerVarray               old_nvals;          BerVarray               old_nvals;
         BerVarray               new_vals;          BerVarray               new_vals;
         BerVarray               new_nvals;          BerVarray               new_nvals;
           int                             ra_numvals;
 } refint_attrs;  } refint_attrs;
   
 typedef struct dependents_s {  typedef struct dependents_s {
Line 423  refint_search_cb( Line 424  refint_search_cb(
                                                         ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );                                                          ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );
                                                         ber_dupbv_x( &oldndn, &a->a_nvals[first], op->o_tmpmemctx );                                                          ber_dupbv_x( &oldndn, &a->a_nvals[first], op->o_tmpmemctx );
                                                         ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );                                                          ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );
                                                           na->ra_numvals++;
   
                                                         newsub = a->a_vals[first];                                                          newsub = a->a_vals[first];
                                                         newsub.bv_len -= rq->olddn.bv_len + 1;                                                          newsub.bv_len -= rq->olddn.bv_len + 1;
Line 445  refint_search_cb( Line 447  refint_search_cb(
                                                 ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );                                                  ber_bvarray_add_x( &na->old_vals, &olddn, op->o_tmpmemctx );
                                                 ber_dupbv_x( &oldndn, &a->a_nvals[i], op->o_tmpmemctx );                                                  ber_dupbv_x( &oldndn, &a->a_nvals[i], op->o_tmpmemctx );
                                                 ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );                                                  ber_bvarray_add_x( &na->old_nvals, &oldndn, op->o_tmpmemctx );
                                                   na->ra_numvals++;
   
                                                 newsub = a->a_vals[i];                                                  newsub = a->a_vals[i];
                                                 newsub.bv_len -= rq->olddn.bv_len + 1;                                                  newsub.bv_len -= rq->olddn.bv_len + 1;
Line 687  refint_qtask( void *ctx, void *arg ) Line 690  refint_qtask( void *ctx, void *arg )
                                         } else {                                          } else {
                                                 m->sml_values = ra->new_vals;                                                  m->sml_values = ra->new_vals;
                                                 m->sml_nvalues = ra->new_nvals;                                                  m->sml_nvalues = ra->new_nvals;
                                                   m->sml_numvals = ra->ra_numvals;
                                         }                                          }
                                 }                                  }
   
Line 705  refint_qtask( void *ctx, void *arg ) Line 709  refint_qtask( void *ctx, void *arg )
                                 m->sml_desc = ra->attr;                                  m->sml_desc = ra->attr;
                                 m->sml_type = ra->attr->ad_cname;                                  m->sml_type = ra->attr->ad_cname;
                                 if ( ra->old_vals == NULL ) {                                  if ( ra->old_vals == NULL ) {
                                           m->sml_numvals = 1;
                                         m->sml_values = (BerVarray)(m+1);                                          m->sml_values = (BerVarray)(m+1);
                                         m->sml_nvalues = m->sml_values+2;                                          m->sml_nvalues = m->sml_values+2;
                                         m->sml_values[0] = rq->olddn;                                          m->sml_values[0] = rq->olddn;
Line 714  refint_qtask( void *ctx, void *arg ) Line 719  refint_qtask( void *ctx, void *arg )
                                 } else {                                  } else {
                                         m->sml_values = ra->old_vals;                                          m->sml_values = ra->old_vals;
                                         m->sml_nvalues = ra->old_nvals;                                          m->sml_nvalues = ra->old_nvals;
                                           m->sml_numvals = ra->ra_numvals;
                                 }                                  }
                                 op->o_tmpfree( ra, op->o_tmpmemctx );                                  op->o_tmpfree( ra, op->o_tmpmemctx );
                         }                          }

Removed from v.1.37  
changed lines
  Added in v.1.38


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