version 1.111, 2003/04/18 02:44:06
|
version 1.112, 2003/04/29 03:58:28
|
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.110 2003/04/12 03:12:40 hyc Exp $ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.111 2003/04/18 02:44:06 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 212 get_filter(
|
Line 212 get_filter(
|
if ( err != LDAP_SUCCESS ) { |
if ( err != LDAP_SUCCESS ) { |
break; |
break; |
} |
} |
|
if ( f.f_and == NULL ) { |
|
f.f_choice = SLAPD_FILTER_COMPUTED; |
|
f.f_result = LDAP_COMPARE_TRUE; |
|
} |
/* no assert - list could be empty */ |
/* no assert - list could be empty */ |
break; |
break; |
|
|
Line 226 get_filter(
|
Line 230 get_filter(
|
if ( err != LDAP_SUCCESS ) { |
if ( err != LDAP_SUCCESS ) { |
break; |
break; |
} |
} |
|
if ( f.f_or == NULL ) { |
|
f.f_choice = SLAPD_FILTER_COMPUTED; |
|
f.f_result = LDAP_COMPARE_FALSE; |
|
} |
/* no assert - list could be empty */ |
/* no assert - list could be empty */ |
break; |
break; |
|
|
Line 243 get_filter(
|
Line 251 get_filter(
|
} |
} |
|
|
assert( f.f_not != NULL ); |
assert( f.f_not != NULL ); |
|
if ( f.f_not->f_choice == SLAPD_FILTER_COMPUTED ) { |
|
if ( f.f_not->f_result == LDAP_COMPARE_TRUE ) { |
|
op->o_tmpfree( f.f_not, op->o_tmpmemctx ); |
|
f.f_not = NULL; |
|
f.f_choice = SLAPD_FILTER_COMPUTED; |
|
f.f_result = LDAP_COMPARE_FALSE; |
|
} else if ( f.f_not->f_result == LDAP_COMPARE_FALSE ) { |
|
op->o_tmpfree( f.f_not, op->o_tmpmemctx ); |
|
f.f_not = NULL; |
|
f.f_choice = SLAPD_FILTER_COMPUTED; |
|
f.f_result = LDAP_COMPARE_TRUE; |
|
} |
|
/* Leave UNDEFINED alone */ |
|
} |
|
|
break; |
break; |
|
|
case LDAP_FILTER_EXT: |
case LDAP_FILTER_EXT: |