]> git.sur5r.net Git - openldap/commitdiff
Changed get_limits to struct berval*
authorHoward Chu <hyc@openldap.org>
Wed, 26 Dec 2001 15:28:01 +0000 (15:28 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 26 Dec 2001 15:28:01 +0000 (15:28 +0000)
servers/slapd/back-bdb/search.c
servers/slapd/back-ldap/search.c
servers/slapd/back-ldbm/search.c
servers/slapd/back-meta/search.c
servers/slapd/limits.c
servers/slapd/proto-slap.h
servers/slapd/tools/mimic.c

index 12bf7373eb23f598ae9faca7c89a2319ea849413..de33175dad0ffd7f8079fdebdd7a61cecf388c5e 100644 (file)
@@ -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
index 14dadd3d17d9d20d436a6653cd26543463230fcc..38af2cf4dfa415f52c7e45873d943d10913bba4c 100644 (file)
@@ -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 */
index 861581f387357ab89a9388fc419bffec951a927e..bc5e67989c27158f2550073f9d04359e05a0a6fc 100644 (file)
@@ -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 */
index e27f988b16848fa8131637020a5cd8d30c8da2b6..dcb304312abef09c33cc71caccd37bfc699eb90f 100644 (file)
@@ -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 */
index dc614779a51328792a249f2899d9f3db1244a7d5..78388097ec16962b77e0a118d5f068304f2fca49 100644 (file)
@@ -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 );
                        }
index 173ef010e99752f985d435ae7b3040097545721c..127917ccd3fae493f97bbbcfe5d3fa9e7aa64971 100644 (file)
@@ -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 ));
index 05a8e16529a73b429899aefffe472bafd4e15289..25d62eb270da959fd439d7cd26696fd641cf82ee 100644 (file)
@@ -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;
 }