version 1.53, 2000/10/09 17:13:17
|
version 1.54, 2000/10/13 18:41:56
|
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.52 2000/08/28 16:38:48 kurt Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.53 2000/10/09 17:13:17 jsanchez Exp $ */ |
/* |
/* |
* Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
Line 255 get_filter(
|
Line 255 get_filter(
|
break; |
break; |
|
|
case LDAP_FILTER_EXT: |
case LDAP_FILTER_EXT: |
/* not yet implemented */ |
Debug( LDAP_DEBUG_FILTER, "EXTENSIBLE\n", 0, 0, 0 ); |
Debug( LDAP_DEBUG_ANY, "extensible match not yet implemented.\n", |
|
0, 0, 0 ); |
err = get_mra( ber, &f->f_mra, text ); |
(void) ber_skip_tag( ber, &len ); |
if ( err != LDAP_SUCCESS ) { |
f->f_choice = SLAPD_FILTER_COMPUTED; |
break; |
f->f_result = SLAPD_COMPARE_UNDEFINED; |
} |
*fstr = ch_strdup( "(extended)" ); |
|
|
assert( f->f_mra != NULL ); |
|
|
|
filter_escape_value( f->f_mr_value, &escaped ); |
|
|
|
*fstr = ch_malloc( sizeof("(:dn::=)") |
|
+ (f->f_mr_desc ? f->f_mr_desc->ad_cname->bv_len : 0) |
|
+ (f->f_mr_rule ? strlen(f->f_mr_rule) : 0) |
|
+ escaped.bv_len ); |
|
|
|
sprintf( *fstr, "(%s%s%s%s:=%s)", |
|
(f->f_mr_desc ? f->f_mr_desc->ad_cname->bv_val : ""), |
|
(f->f_mr_dnattrs ? ":dn" : ""), |
|
(f->f_mr_rule ? ":" : ""), |
|
(f->f_mr_rule ? f->f_mr_rule : ""), |
|
f->f_mr_desc->ad_cname->bv_val, |
|
escaped.bv_val ); |
|
|
|
ber_memfree( escaped.bv_val ); |
break; |
break; |
|
|
default: |
default: |