version 1.107, 2003/04/09 21:37:00
|
version 1.108, 2003/04/10 04:21:53
|
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.106 2003/04/09 14:52:03 hyc Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.107 2003/04/09 21:37:00 hyc Exp $ */ |
/* |
/* |
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
Line 1195 vrFilter2bv( Operation *op, ValuesReturn
|
Line 1195 vrFilter2bv( Operation *op, ValuesReturn
|
ValuesReturnFilter *p; |
ValuesReturnFilter *p; |
struct berval tmp; |
struct berval tmp; |
ber_len_t len; |
ber_len_t len; |
BER_MEMREALLOC_FN *reallo = op->o_tmpmemctx ? sl_realloc : |
|
(BER_MEMREALLOC_FN *)ch_realloc; |
|
|
|
if ( vrf == NULL ) { |
if ( vrf == NULL ) { |
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr, op->o_tmpmemctx ); |
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr, op->o_tmpmemctx ); |
Line 1214 vrFilter2bv( Operation *op, ValuesReturn
|
Line 1212 vrFilter2bv( Operation *op, ValuesReturn
|
simple_vrFilter2bv( op, p, &tmp ); |
simple_vrFilter2bv( op, p, &tmp ); |
|
|
fstr->bv_len += tmp.bv_len; |
fstr->bv_len += tmp.bv_len; |
fstr->bv_val = reallo( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
|
|
snprintf( &fstr->bv_val[len-1], tmp.bv_len + 2, |
snprintf( &fstr->bv_val[len-1], tmp.bv_len + 2, |
/*"("*/ "%s)", tmp.bv_val ); |
/*"("*/ "%s)", tmp.bv_val ); |
Line 1228 simple_vrFilter2bv( Operation *op, Value
|
Line 1226 simple_vrFilter2bv( Operation *op, Value
|
{ |
{ |
struct berval tmp; |
struct berval tmp; |
ber_len_t len; |
ber_len_t len; |
BER_MEMREALLOC_FN *reallo = op->o_tmpmemctx ? sl_realloc : |
|
(BER_MEMREALLOC_FN *) ch_realloc; |
|
|
|
if ( vrf == NULL ) { |
if ( vrf == NULL ) { |
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr, op->o_tmpmemctx ); |
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr, op->o_tmpmemctx ); |
Line 1306 simple_vrFilter2bv( Operation *op, Value
|
Line 1302 simple_vrFilter2bv( Operation *op, Value
|
filter_escape_value_x( &vrf->vrf_sub_initial, &tmp, op->o_tmpmemctx ); |
filter_escape_value_x( &vrf->vrf_sub_initial, &tmp, op->o_tmpmemctx ); |
|
|
fstr->bv_len += tmp.bv_len; |
fstr->bv_len += tmp.bv_len; |
fstr->bv_val = reallo( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
|
|
snprintf( &fstr->bv_val[len-2], tmp.bv_len+3, |
snprintf( &fstr->bv_val[len-2], tmp.bv_len+3, |
/* "(attr=" */ "%s*)", |
/* "(attr=" */ "%s*)", |
Line 1322 simple_vrFilter2bv( Operation *op, Value
|
Line 1318 simple_vrFilter2bv( Operation *op, Value
|
filter_escape_value_x( &vrf->vrf_sub_any[i], &tmp, op->o_tmpmemctx ); |
filter_escape_value_x( &vrf->vrf_sub_any[i], &tmp, op->o_tmpmemctx ); |
|
|
fstr->bv_len += tmp.bv_len + 1; |
fstr->bv_len += tmp.bv_len + 1; |
fstr->bv_val = reallo( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
|
|
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*)", |
Line 1337 simple_vrFilter2bv( Operation *op, Value
|
Line 1333 simple_vrFilter2bv( Operation *op, Value
|
filter_escape_value_x( &vrf->vrf_sub_final, &tmp, op->o_tmpmemctx ); |
filter_escape_value_x( &vrf->vrf_sub_final, &tmp, op->o_tmpmemctx ); |
|
|
fstr->bv_len += tmp.bv_len; |
fstr->bv_len += tmp.bv_len; |
fstr->bv_val = reallo( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx ); |
|
|
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)", |