Diff for /servers/slapd/filter.c between versions 1.125.2.6 and 1.130

version 1.125.2.6, 2005/12/23 01:22:00 version 1.130, 2005/08/25 19:14:26
Line 1 Line 1
 /* filter.c - routines for parsing and dealing with filters */  /* filter.c - routines for parsing and dealing with filters */
 /* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.132 2005/12/23 01:20:11 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.129 2005/07/18 04:22:34 hallvard Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2005 The OpenLDAP Foundation.   * Copyright 1998-2005 The OpenLDAP Foundation.
Line 45  static int get_ssa( Line 45  static int get_ssa(
         SubstringsAssertion **s,          SubstringsAssertion **s,
         const char **text );          const char **text );
   
   static int filter_escape_value_x(
           struct berval *in,
           struct berval *out,
           void *ctx );
   
 static void simple_vrFilter2bv(  static void simple_vrFilter2bv(
         Operation *op,          Operation *op,
         ValuesReturnFilter *f,          ValuesReturnFilter *f,
Line 569  filter2bv_x( Operation *op, Filter *f, s Line 574  filter2bv_x( Operation *op, Filter *f, s
   
                 snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s=%s)",                  snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s=%s)",
                         f->f_av_desc->ad_cname.bv_val,                          f->f_av_desc->ad_cname.bv_val,
                         tmp.bv_len ? tmp.bv_val : "(null)");                          tmp.bv_val );
   
                 ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                  ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 break;                  break;
Line 583  filter2bv_x( Operation *op, Filter *f, s Line 588  filter2bv_x( Operation *op, Filter *f, s
   
                 snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s>=%s)",                  snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s>=%s)",
                         f->f_av_desc->ad_cname.bv_val,                          f->f_av_desc->ad_cname.bv_val,
                         tmp.bv_len ? tmp.bv_val : "(null)");                          tmp.bv_val );
   
                 ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                  ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 break;                  break;
Line 597  filter2bv_x( Operation *op, Filter *f, s Line 602  filter2bv_x( Operation *op, Filter *f, s
   
                 snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s<=%s)",                  snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s<=%s)",
                         f->f_av_desc->ad_cname.bv_val,                          f->f_av_desc->ad_cname.bv_val,
                         tmp.bv_len ? tmp.bv_val : "(null)");                          tmp.bv_val );
   
                 ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                  ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 break;                  break;
Line 611  filter2bv_x( Operation *op, Filter *f, s Line 616  filter2bv_x( Operation *op, Filter *f, s
   
                 snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s~=%s)",                  snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s~=%s)",
                         f->f_av_desc->ad_cname.bv_val,                          f->f_av_desc->ad_cname.bv_val,
                         tmp.bv_len ? tmp.bv_val : "(null)");                          tmp.bv_val );
                 ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                  ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 break;                  break;
   
Line 634  filter2bv_x( Operation *op, Filter *f, s Line 639  filter2bv_x( Operation *op, Filter *f, s
   
                         snprintf( &fstr->bv_val[len-2], tmp.bv_len+3,                          snprintf( &fstr->bv_val[len-2], tmp.bv_len+3,
                                 /* "(attr=" */ "%s*)",                                  /* "(attr=" */ "%s*)",
                                 tmp.bv_len ? tmp.bv_val : "(null)");                                  tmp.bv_val );
   
                         ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                          ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 }                  }
Line 651  filter2bv_x( Operation *op, Filter *f, s Line 656  filter2bv_x( Operation *op, Filter *f, s
   
                                 snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,                                  snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
                                         /* "(attr=[init]*[any*]" */ "%s*)",                                          /* "(attr=[init]*[any*]" */ "%s*)",
                                         tmp.bv_len ? tmp.bv_val : "(null)");                                          tmp.bv_val );
                                 ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                                  ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                         }                          }
                 }                  }
Line 667  filter2bv_x( Operation *op, Filter *f, s Line 672  filter2bv_x( Operation *op, Filter *f, s
   
                         snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,                          snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
                                 /* "(attr=[init*][any*]" */ "%s)",                                  /* "(attr=[init*][any*]" */ "%s)",
                                 tmp.bv_len ? tmp.bv_val : "(null)");                                  tmp.bv_val );
   
                         ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                          ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 }                  }
Line 732  filter2bv_x( Operation *op, Filter *f, s Line 737  filter2bv_x( Operation *op, Filter *f, s
                                 f->f_mr_dnattrs ? ":dn" : "",                                  f->f_mr_dnattrs ? ":dn" : "",
                                 f->f_mr_rule_text.bv_len ? ":" : "",                                  f->f_mr_rule_text.bv_len ? ":" : "",
                                 f->f_mr_rule_text.bv_len ? f->f_mr_rule_text.bv_val : "",                                  f->f_mr_rule_text.bv_len ? f->f_mr_rule_text.bv_val : "",
                                 tmp.bv_len ? tmp.bv_val : "(null)");                                  tmp.bv_val );
                         ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );                          ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                 } break;                  } break;
   
Line 778  filter2bv( Filter *f, struct berval *fst Line 783  filter2bv( Filter *f, struct berval *fst
 }  }
   
 static int  static int
   filter_escape_value_x(
           struct berval *in,
           struct berval *out,
           void *ctx )
   {
           ber_len_t i;
           assert( in != NULL );
           assert( out != NULL );
   
           i = in->bv_len * 3 + 1;
           out->bv_val = ctx ? slap_sl_malloc( i, ctx ) : ch_malloc( i );
           out->bv_len = 0;
   
           for( i=0; i < in->bv_len ; i++ ) {
                   if( FILTER_ESCAPE(in->bv_val[i]) ) {
                           out->bv_val[out->bv_len++] = SLAP_ESCAPE_CHAR;
                           out->bv_val[out->bv_len++] = SLAP_ESCAPE_HI( in->bv_val[i] );
                           out->bv_val[out->bv_len++] = SLAP_ESCAPE_LO( in->bv_val[i] );
                   } else {
                           out->bv_val[out->bv_len++] = in->bv_val[i];
                   }
           }
   
           out->bv_val[out->bv_len] = '\0';
           return LDAP_SUCCESS;
   }
   
   int
   filter_escape_value(
           struct berval *in,
           struct berval *out )
   {
           return filter_escape_value_x( in, out, NULL );
   }
   
   static int
 get_simple_vrFilter(  get_simple_vrFilter(
         Operation *op,          Operation *op,
         BerElement *ber,          BerElement *ber,

Removed from v.1.125.2.6  
changed lines
  Added in v.1.130


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