]> git.sur5r.net Git - openldap/commitdiff
Tweak mask_to_verbs for multiple-bit masks
authorHoward Chu <hyc@openldap.org>
Thu, 9 Jun 2005 22:55:21 +0000 (22:55 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 9 Jun 2005 22:55:21 +0000 (22:55 +0000)
servers/slapd/bconfig.c
servers/slapd/config.c

index dbe56c88fc8ef5fa82cf1b5317ce44b8593c8a05..941a4c9399abcaefa2ac42a829d5e0500d89d051 100644 (file)
@@ -1834,6 +1834,7 @@ config_loglevel(ConfigArgs *c) {
        int i;
        char *next;
        slap_verbmasks loglevel_ops[] = {
+               { BER_BVC("Any"),       -1 },
                { BER_BVC("Trace"),     LDAP_DEBUG_TRACE },
                { BER_BVC("Packets"),   LDAP_DEBUG_PACKETS },
                { BER_BVC("Args"),      LDAP_DEBUG_ARGS },
@@ -1849,7 +1850,6 @@ config_loglevel(ConfigArgs *c) {
                { BER_BVC("Cache"),     LDAP_DEBUG_CACHE },
                { BER_BVC("Index"),     LDAP_DEBUG_INDEX },
                { BER_BVC("Sync"),      LDAP_DEBUG_SYNC },
-               { BER_BVC("Any"),       -1 },
                { BER_BVNULL,   0 }
        };
 
index 980e2ab105cb38b1010798cf84938dfd53d01917..62fc13e91eff25e3b4f09510aa8960c3ac1c3eb2 100644 (file)
@@ -719,6 +719,9 @@ verbs_to_mask(int argc, char *argv[], slap_verbmasks *v, slap_mask_t *m) {
        return(0);
 }
 
+/* Mask keywords that represent multiple bits should occur before single
+ * bit keywords in the verbmasks array.
+ */
 int
 mask_to_verbs(slap_verbmasks *v, slap_mask_t m, BerVarray *bva) {
        int i;
@@ -728,6 +731,7 @@ mask_to_verbs(slap_verbmasks *v, slap_mask_t m, BerVarray *bva) {
                if (!v[i].mask) continue;
                if (( m & v[i].mask ) == v[i].mask ) {
                        value_add_one( bva, &v[i].word );
+                       m ^= v[i].mask;
                }
        }
        return 0;