From d0add35348c51d8a3807c6ffb9f14f0bb3009a36 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 26 Dec 2001 15:28:01 +0000 Subject: [PATCH] Changed get_limits to struct berval* --- servers/slapd/back-bdb/search.c | 2 +- servers/slapd/back-ldap/search.c | 2 +- servers/slapd/back-ldbm/search.c | 2 +- servers/slapd/back-meta/search.c | 2 +- servers/slapd/limits.c | 24 ++++++++++++------------ servers/slapd/proto-slap.h | 2 +- servers/slapd/tools/mimic.c | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 12bf7373eb..de33175dad 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -160,7 +160,7 @@ bdb_search( if ( be_isroot( be, &op->o_ndn ) ) { isroot = 1; } else { - ( void ) get_limits( be, op->o_ndn.bv_val, &limit ); + ( void ) get_limits( be, &op->o_ndn, &limit ); } /* The time/size limits come first because they require very little diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index 14dadd3d17..38af2cf4df 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -88,7 +88,7 @@ ldap_back_search( if ( be_isroot( be, &op->o_ndn ) ) { isroot = 1; } else { - ( void ) get_limits( be, op->o_ndn.bv_val, &limit ); + ( void ) get_limits( be, &op->o_ndn, &limit ); } /* if no time limit requested, rely on remote server limits */ diff --git a/servers/slapd/back-ldbm/search.c b/servers/slapd/back-ldbm/search.c index 861581f387..bc5e67989c 100644 --- a/servers/slapd/back-ldbm/search.c +++ b/servers/slapd/back-ldbm/search.c @@ -209,7 +209,7 @@ searchit: if ( be_isroot( be, &op->o_ndn ) ) { isroot = 1; } else { - ( void ) get_limits( be, op->o_ndn.bv_val, &limit ); + ( void ) get_limits( be, &op->o_ndn, &limit ); } /* if candidates exceed to-be-checked entries, abort */ diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c index e27f988b16..dcb304312a 100644 --- a/servers/slapd/back-meta/search.c +++ b/servers/slapd/back-meta/search.c @@ -152,7 +152,7 @@ meta_back_search( if ( be_isroot( be, &op->o_ndn ) ) { isroot = 1; } else { - ( void ) get_limits( be, op->o_ndn.bv_val, &limit ); + ( void ) get_limits( be, &op->o_ndn, &limit ); } /* if no time limit requested, rely on remote server limits */ diff --git a/servers/slapd/limits.c b/servers/slapd/limits.c index dc614779a5..78388097ec 100644 --- a/servers/slapd/limits.c +++ b/servers/slapd/limits.c @@ -16,7 +16,7 @@ int get_limits( Backend *be, - const char *ndn, + struct berval *ndn, struct slap_limits_set **limit ) { @@ -37,10 +37,10 @@ get_limits( for ( lm = be->be_limits; lm[0] != NULL; lm++ ) { switch ( lm[0]->lm_type ) { case SLAP_LIMITS_EXACT: - if ( ndn == NULL || ndn[0] == '\0' ) { + if ( ndn->bv_len == 0 ) { break; } - if ( strcmp( lm[0]->lm_dn_pat->bv_val, ndn ) == 0 ) { + if ( strcmp( lm[0]->lm_dn_pat->bv_val, ndn->bv_val ) == 0 ) { *limit = &lm[0]->lm_limits; return( 0 ); } @@ -51,11 +51,11 @@ get_limits( case SLAP_LIMITS_CHILDREN: { size_t d; - if ( ndn == NULL || ndn[0] == '\0' ) { + if ( ndn->bv_len == 0 ) { break; } - d = strlen( ndn ) - lm[0]->lm_dn_pat->bv_len; + d = ndn->bv_len - lm[0]->lm_dn_pat->bv_len; /* ndn shorter than dn_pat */ if ( d < 0 ) { break; @@ -68,20 +68,20 @@ get_limits( } } else { /* check for unescaped rdn separator */ - if ( !DN_SEPARATOR( ndn[d-1] ) || DN_ESCAPE( ndn[d-2] ) ) { + if ( !DN_SEPARATOR( ndn->bv_val[d-1] ) || DN_ESCAPE( ndn->bv_val[d-2] ) ) { break; } } /* in case of (sub)match ... */ - if ( strcmp( lm[0]->lm_dn_pat->bv_val, &ndn[d] ) == 0 ) { + if ( strcmp( lm[0]->lm_dn_pat->bv_val, &ndn->bv_val[d] ) == 0 ) { /* check for exactly one rdn in case of ONE */ if ( lm[0]->lm_type == SLAP_LIMITS_ONE ) { /* * if ndn is more that one rdn * below dn_pat, continue */ - if ( (size_t) dn_rdnlen( NULL, ndn ) != d - 1 ) { + if ( (size_t) dn_rdnlen( NULL, ndn->bv_val ) != d - 1 ) { break; } } @@ -94,24 +94,24 @@ get_limits( } case SLAP_LIMITS_REGEX: - if ( ndn == NULL || ndn[0] == '\0' ) { + if ( ndn->bv_len == 0 ) { break; } - if ( regexec( &lm[0]->lm_dn_regex, ndn, 0, NULL, 0 ) == 0 ) { + if ( regexec( &lm[0]->lm_dn_regex, ndn->bv_val, 0, NULL, 0 ) == 0 ) { *limit = &lm[0]->lm_limits; return( 0 ); } break; case SLAP_LIMITS_ANONYMOUS: - if ( ndn == NULL || ndn[0] == '\0' ) { + if ( ndn->bv_len == 0 ) { *limit = &lm[0]->lm_limits; return( 0 ); } break; case SLAP_LIMITS_USERS: - if ( ndn != NULL && ndn[0] != '\0' ) { + if ( ndn->bv_len != 0 ) { *limit = &lm[0]->lm_limits; return( 0 ); } diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 173ef010e9..127917ccd3 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -462,7 +462,7 @@ LDAP_SLAPD_F (int) test_filter LDAP_P(( * limits.c */ LDAP_SLAPD_F (int) get_limits LDAP_P(( - Backend *be, const char *ndn, struct slap_limits_set **limit )); + Backend *be, struct berval *ndn, struct slap_limits_set **limit )); LDAP_SLAPD_F (int) add_limits LDAP_P(( Backend *be, int type, const char *pattern, struct slap_limits_set *limit )); diff --git a/servers/slapd/tools/mimic.c b/servers/slapd/tools/mimic.c index 05a8e16529..25d62eb270 100644 --- a/servers/slapd/tools/mimic.c +++ b/servers/slapd/tools/mimic.c @@ -217,7 +217,7 @@ int parse_limit( const char *arg, struct slap_limits_set *limit ) return 0; } -int get_limits( Backend *be, const char *ndn, struct slap_limits_set **limit ) +int get_limits( Backend *be, struct berval *ndn, struct slap_limits_set **limit ) { return 0; } -- 2.39.5