- af = (Filter *) ch_malloc( sizeof(Filter) );
- af->f_next = NULL;
- af->f_choice = LDAP_FILTER_OR;
- af->f_or = (Filter *) ch_malloc( sizeof(Filter) );
- af->f_or->f_choice = LDAP_FILTER_EQUALITY;
- af->f_or->f_avtype = ch_strdup( "objectclass" );
- af->f_or->f_avvalue.bv_val = ch_strdup( "ALIAS" );
- af->f_or->f_avvalue.bv_len = sizeof("ALIAS")-1;
- af->f_or->f_next = f;
- f = af;
- } else {
- af = NULL;
- }
-
- if ( scope == LDAP_SCOPE_SUBTREE ) {
- lf = (Filter *) ch_malloc( sizeof(Filter) );
- lf->f_next = NULL;
- lf->f_choice = LDAP_FILTER_AND;
- lf->f_and = (Filter *) ch_malloc( sizeof(Filter) );
-
- lf->f_and->f_choice = SLAPD_FILTER_DN_SUBTREE;
- lf->f_and->f_dn = e->e_ndn;
-
- lf->f_and->f_next = f;
- f = lf;
-
- } else if ( scope == LDAP_SCOPE_ONELEVEL ) {
- lf = (Filter *) ch_malloc( sizeof(Filter) );
- lf->f_next = NULL;
- lf->f_choice = LDAP_FILTER_AND;
- lf->f_and = (Filter *) ch_malloc( sizeof(Filter) );
-
- lf->f_and->f_choice = SLAPD_FILTER_DN_ONE;
- lf->f_and->f_dn = e->e_ndn;
-
- lf->f_and->f_next = f;
- f = lf;
-
- } else {
- lf = NULL;
- }
-
- candidates = filter_candidates( be, f );
-
- /* free up filter additions we allocated above */
- if( lf != NULL ) {
- free( lf->f_and );
- free( lf );
- }
-
- if( af != NULL ) {
- af->f_or->f_next = NULL;
- filter_free( af );
+ af.f_choice = LDAP_FILTER_EQUALITY;
+ af.f_ava = &aa_alias;
+ af.f_av_desc = slap_schema.si_ad_objectClass;
+ af.f_av_value = bv_alias;
+ af.f_next = xf.f_or;
+ xf.f_or = ⁡