X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=attribute.c;h=a28de6358248e7cd59dcb977227f6f46a69b3fcf;hp=638e22ea70fe5e5bb5ebac55f0e296db387adc5c;hb=a8573c4bfa41a407247fb1cae56cf9dfb890d6ca;hpb=02dd632ab2a6696aff7b6c6d108069704cfe871a diff --git a/attribute.c b/attribute.c index 638e22ea..a28de635 100644 --- a/attribute.c +++ b/attribute.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2012 Andre Noll + * Copyright (C) 1997-2013 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -226,10 +226,10 @@ static void com_setatt_callback(__a_unused int fd, const struct osl_object *quer int ret; size_t len; struct osl_object obj; - struct osl_row *row; for (p = query->data; p < (char *)query->data + query->size; p += len + 1) { char c; + unsigned char bitnum; len = strlen(p); ret = -E_ATTR_SYNTAX; @@ -239,19 +239,13 @@ static void com_setatt_callback(__a_unused int fd, const struct osl_object *quer if (c != '+' && c != '-') break; p[len - 1] = '\0'; - obj.data = p; - obj.size = len + 1; - ret = osl(osl_get_row(attribute_table, ATTCOL_NAME, &obj, &row)); - if (ret < 0) - goto out; - ret = osl(osl_get_object(attribute_table, row, ATTCOL_BITNUM, - &obj)); + ret = get_attribute_bitnum_by_name(p, &bitnum); if (ret < 0) goto out; if (c == '+') - add_mask |= (1UL << *(unsigned char *)obj.data); + add_mask |= (1UL << bitnum); else - del_mask |= (1UL << *(unsigned char *)obj.data); + del_mask |= (1UL << bitnum); } ret = -E_ATTR_SYNTAX; if (!add_mask && !del_mask)