Diff for /servers/slapd/overlays/unique.c between versions 1.8.2.8 and 1.8.2.9

version 1.8.2.8, 2005/11/26 23:54:52 version 1.8.2.9, 2005/12/20 23:00:12
Line 1 Line 1
 /* unique.c - attribute uniqueness module */  /* unique.c - attribute uniqueness module */
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/unique.c,v 1.8.2.7 2005/10/11 17:42:19 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/unique.c,v 1.19 2005/12/19 22:53:25 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-2005 The OpenLDAP Foundation.   * Copyright 2004-2005 The OpenLDAP Foundation.
Line 384  static int unique_search( Line 384  static int unique_search(
         nop->o_bd = on->on_info->oi_origdb;          nop->o_bd = on->on_info->oi_origdb;
         rc = nop->o_bd->be_search(nop, &nrs);          rc = nop->o_bd->be_search(nop, &nrs);
         filter_free_x(nop, nop->ors_filter);          filter_free_x(nop, nop->ors_filter);
         ch_free( key );          op->o_tmpfree( key, op->o_tmpmemctx );
   
         if(rc != LDAP_SUCCESS && rc != LDAP_NO_SUCH_OBJECT) {          if(rc != LDAP_SUCCESS && rc != LDAP_NO_SUCH_OBJECT) {
                 op->o_bd->bd_info = (BackendInfo *) on->on_info;                  op->o_bd->bd_info = (BackendInfo *) on->on_info;
Line 404  static int unique_search( Line 404  static int unique_search(
         return(SLAP_CB_CONTINUE);          return(SLAP_CB_CONTINUE);
 }  }
   
   #define ALLOC_EXTRA     16      /* extra slop */
   
 static int unique_add(  static int unique_add(
         Operation *op,          Operation *op,
         SlapReply *rs          SlapReply *rs
Line 415  static int unique_add( Line 417  static int unique_add(
   
         Attribute *a;          Attribute *a;
         char *key, *kp;          char *key, *kp;
         int ks = 16;          int ks = 0;
   
         Debug(LDAP_DEBUG_TRACE, "==> unique_add <%s>\n", op->o_req_dn.bv_val, 0, 0);          Debug(LDAP_DEBUG_TRACE, "==> unique_add <%s>\n", op->o_req_dn.bv_val, 0, 0);
   
Line 438  static int unique_add( Line 440  static int unique_add(
                 ks = count_filter_len(ud, a->a_desc, a->a_vals, ks);                  ks = count_filter_len(ud, a->a_desc, a->a_vals, ks);
         }          }
   
         key = ch_malloc(ks);          if ( !ks )
                   return SLAP_CB_CONTINUE;
   
           ks += ALLOC_EXTRA;
           key = op->o_tmpalloc(ks, op->o_tmpmemctx);
   
         kp = key + sprintf(key, "(|");          kp = key + sprintf(key, "(|");
   
Line 465  static int unique_modify( Line 471  static int unique_modify(
   
         Modifications *m;          Modifications *m;
         char *key, *kp;          char *key, *kp;
         int ks = 16;            /* a handful of extra bytes */          int ks = 0;
   
         Debug(LDAP_DEBUG_TRACE, "==> unique_modify <%s>\n", op->o_req_dn.bv_val, 0, 0);          Debug(LDAP_DEBUG_TRACE, "==> unique_modify <%s>\n", op->o_req_dn.bv_val, 0, 0);
   
Line 489  static int unique_modify( Line 495  static int unique_modify(
                 ks = count_filter_len(ud, m->sml_desc, m->sml_values, ks);                  ks = count_filter_len(ud, m->sml_desc, m->sml_values, ks);
         }          }
   
         key = ch_malloc(ks);          if ( !ks )
                   return SLAP_CB_CONTINUE;
   
           ks += ALLOC_EXTRA;
           key = op->o_tmpalloc(ks, op->o_tmpmemctx);
   
         kp = key + sprintf(key, "(|");          kp = key + sprintf(key, "(|");
   
Line 516  static int unique_modrdn( Line 526  static int unique_modrdn(
         Operation nop = *op;          Operation nop = *op;
   
         char *key, *kp;          char *key, *kp;
         int i, ks = 16;                 /* a handful of extra bytes */          int i, ks = 0;
         LDAPRDN newrdn;          LDAPRDN newrdn;
         struct berval bv[2];          struct berval bv[2];
   
Line 553  static int unique_modrdn( Line 563  static int unique_modrdn(
                 ks = count_filter_len(ud, newrdn[i]->la_private, bv, ks);                  ks = count_filter_len(ud, newrdn[i]->la_private, bv, ks);
         }          }
   
         key = ch_malloc(ks);          if ( !ks )
                   return SLAP_CB_CONTINUE;
   
           ks += ALLOC_EXTRA;
           key = op->o_tmpalloc(ks, op->o_tmpmemctx);
         kp = key + sprintf(key, "(|");          kp = key + sprintf(key, "(|");
   
         for(i = 0; newrdn[i]; i++) {          for(i = 0; newrdn[i]; i++) {

Removed from v.1.8.2.8  
changed lines
  Added in v.1.8.2.9


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