]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
Import ITS#2506, ITS#2507 fix from HEAD
authorHoward Chu <hyc@openldap.org>
Wed, 14 May 2003 19:53:28 +0000 (19:53 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 14 May 2003 19:53:28 +0000 (19:53 +0000)
servers/slapd/back-bdb/filterindex.c

index bcfc898f28bdf8a5ad41978d9e3f4cc4bf14be61..ca48a456ebf921b31ad444dc942127e088e6c267 100644 (file)
@@ -60,6 +60,11 @@ bdb_filter_candidates(
        switch ( f->f_choice ) {
        case SLAPD_FILTER_COMPUTED:
                switch( f->f_result ) {
+               case SLAPD_COMPARE_UNDEFINED:
+               /* This technically is not the same as FALSE, but it
+                * certainly will produce no matches.
+                */
+               /* FALLTHRU */
                case LDAP_COMPARE_FALSE:
                        BDB_IDL_ZERO( ids );
                        break;
@@ -67,8 +72,6 @@ bdb_filter_candidates(
                                struct bdb_info *bdb = (struct bdb_info *) be->be_private;
                                BDB_IDL_ALL( bdb, ids );
                        } break;
-               case SLAPD_COMPARE_UNDEFINED:
-                       break;
                }
                break;
 
@@ -325,7 +328,7 @@ presence_candidates(
                        "returned=%d\n",
                        desc->ad_cname.bv_val, rc, 0 );
 #endif
-               return 0;
+               return rc;
        }
 
        if( db == NULL ) {
@@ -339,7 +342,7 @@ presence_candidates(
                        "<= bdb_presence_candidates: (%s) not indexed\n",
                        desc->ad_cname.bv_val, 0, 0 );
 #endif
-               return 0;
+               return -1;
        }
 
        if( prefix.bv_val == NULL ) {
@@ -352,7 +355,7 @@ presence_candidates(
                        "<= bdb_presence_candidates: (%s) no prefix\n",
                        desc->ad_cname.bv_val, 0, 0 );
 #endif
-               return 0;
+               return -1;
        }
 
        rc = bdb_key_read( be, db, NULL, &prefix, ids );
@@ -488,7 +491,7 @@ equality_candidates(
                        "<= bdb_equality_candidates: (%s) no keys\n",
                        ava->aa_desc->ad_cname.bv_val, 0, 0 );
 #endif
-               return 0;
+               return -1;
        }
 
        for ( i= 0; keys[i].bv_val != NULL; i++ ) {
@@ -657,7 +660,7 @@ approx_candidates(
                        "<= bdb_approx_candidates: (%s) no keys (%s)\n",
                        prefix.bv_val, ava->aa_desc->ad_cname.bv_val, 0 );
 #endif
-               return 0;
+               return -1;
        }
 
        for ( i= 0; keys[i].bv_val != NULL; i++ ) {
@@ -820,7 +823,7 @@ substring_candidates(
                        "<= bdb_substring_candidates: (0x%04lx) no keys (%s)\n",
                        mask, sub->sa_desc->ad_cname.bv_val, 0 );
 #endif
-               return 0;
+               return -1;
        }
 
        for ( i= 0; keys[i].bv_val != NULL; i++ ) {
@@ -882,6 +885,6 @@ substring_candidates(
                (long) BDB_IDL_FIRST(ids),
                (long) BDB_IDL_LAST(ids) );
 #endif
-       return( 0 );
+       return( rc );
 }