Tweak mask_to_verbs for multiple-bit masks

This commit is contained in:
Howard Chu 2005-06-09 22:55:21 +00:00
parent 884ebf9142
commit 0658ff91b7
2 changed files with 5 additions and 1 deletions

View 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 }
};

View 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;