version 1.5, 1998/10/27 01:07:12
|
version 1.8, 1998/11/27 19:21:55
|
Line 9
|
Line 9
|
|
|
#include "slap.h" |
#include "slap.h" |
|
|
static int get_filter_list(); |
static int get_filter_list(Connection *conn, BerElement *ber, Filter **f, char **fstr); |
static int get_substring_filter(); |
static int get_substring_filter(Connection *conn, BerElement *ber, Filter *f, char **fstr); |
|
|
extern int get_ava(); |
|
extern char *ch_malloc(); |
|
extern char *ch_realloc(); |
|
|
|
int |
int |
get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr ) |
get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr ) |
Line 138 get_filter( Connection *conn, BerElement
|
Line 134 get_filter( Connection *conn, BerElement
|
Debug( LDAP_DEBUG_FILTER, "AND\n", 0, 0, 0 ); |
Debug( LDAP_DEBUG_FILTER, "AND\n", 0, 0, 0 ); |
if ( (err = get_filter_list( conn, ber, &f->f_and, &ftmp )) |
if ( (err = get_filter_list( conn, ber, &f->f_and, &ftmp )) |
== 0 ) { |
== 0 ) { |
if (ftmp == NULL) ftmp = strdup(""); |
if (ftmp == NULL) ftmp = ch_strdup(""); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
sprintf( *fstr, "(&%s)", ftmp ); |
sprintf( *fstr, "(&%s)", ftmp ); |
free( ftmp ); |
free( ftmp ); |
Line 149 get_filter( Connection *conn, BerElement
|
Line 145 get_filter( Connection *conn, BerElement
|
Debug( LDAP_DEBUG_FILTER, "OR\n", 0, 0, 0 ); |
Debug( LDAP_DEBUG_FILTER, "OR\n", 0, 0, 0 ); |
if ( (err = get_filter_list( conn, ber, &f->f_or, &ftmp )) |
if ( (err = get_filter_list( conn, ber, &f->f_or, &ftmp )) |
== 0 ) { |
== 0 ) { |
if (ftmp == NULL) ftmp = strdup(""); |
if (ftmp == NULL) ftmp = ch_strdup(""); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
sprintf( *fstr, "(|%s)", ftmp ); |
sprintf( *fstr, "(|%s)", ftmp ); |
free( ftmp ); |
free( ftmp ); |
Line 160 get_filter( Connection *conn, BerElement
|
Line 156 get_filter( Connection *conn, BerElement
|
Debug( LDAP_DEBUG_FILTER, "NOT\n", 0, 0, 0 ); |
Debug( LDAP_DEBUG_FILTER, "NOT\n", 0, 0, 0 ); |
(void) ber_skip_tag( ber, &len ); |
(void) ber_skip_tag( ber, &len ); |
if ( (err = get_filter( conn, ber, &f->f_not, &ftmp )) == 0 ) { |
if ( (err = get_filter( conn, ber, &f->f_not, &ftmp )) == 0 ) { |
if (ftmp == NULL) ftmp = strdup(""); |
if (ftmp == NULL) ftmp = ch_strdup(""); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
*fstr = ch_malloc( 4 + strlen( ftmp ) ); |
sprintf( *fstr, "(!%s)", ftmp ); |
sprintf( *fstr, "(!%s)", ftmp ); |
free( ftmp ); |
free( ftmp ); |
Line 168 get_filter( Connection *conn, BerElement
|
Line 164 get_filter( Connection *conn, BerElement
|
break; |
break; |
|
|
default: |
default: |
Debug( LDAP_DEBUG_ANY, "unknown filter type %d\n", f->f_choice, |
Debug( LDAP_DEBUG_ANY, "unknown filter type %lu\n", |
0, 0 ); |
f->f_choice, 0, 0 ); |
err = LDAP_PROTOCOL_ERROR; |
err = LDAP_PROTOCOL_ERROR; |
break; |
break; |
} |
} |
Line 375 filter_free( Filter *f )
|
Line 371 filter_free( Filter *f )
|
break; |
break; |
|
|
default: |
default: |
Debug( LDAP_DEBUG_ANY, "unknown filter type %d\n", f->f_choice, |
Debug( LDAP_DEBUG_ANY, "unknown filter type %lu\n", |
0, 0 ); |
f->f_choice, 0, 0 ); |
break; |
break; |
} |
} |
free( f ); |
free( f ); |
Line 447 filter_print( Filter *f )
|
Line 443 filter_print( Filter *f )
|
break; |
break; |
|
|
default: |
default: |
fprintf( stderr, "unknown type %d", f->f_choice ); |
fprintf( stderr, "unknown type %lu", f->f_choice ); |
break; |
break; |
} |
} |
} |
} |