typedef struct attr_flags {
unsigned int is_root : 1; //!< Is root of a dictionary.
unsigned int is_unknown : 1; //!< Attribute number or vendor is unknown.
+ unsigned int is_raw : 1; //!< raw attribute, unknown or malformed
unsigned int internal : 1; //!< Internal attribute, should not be received
//!< in protocol packets, should not be encoded.
new = fr_dict_attr_alloc(ctx, da->name, da->vendor, da->attr, da->type, da->flags);
new->flags.is_unknown = 1;
+ new->flags.is_raw = 1;
new->parent = parent;
new->depth = da->depth;
memcpy(&flags, &old->flags, sizeof(flags));
flags.is_unknown = false;
+ flags.is_raw = true;
/*
* Ensure the vendor is present in the
}
/*
- * Add the attribute by bioth name and number.
+ * Add the attribute by both name and number.
*/
if (fr_dict_attr_add(dict, parent, old->name, old->attr, old->type, flags) < 0) return NULL;
memset(&flags, 0, sizeof(flags));
flags.is_unknown = 1;
+ flags.is_raw = 1;
flags.type_size = 1;
flags.length = 1;
da->vendor = vendor;
da->type = PW_TYPE_OCTETS;
da->flags.is_unknown = true;
+ da->flags.is_raw = true;
da->flags.is_pointer = true;
da->parent = parent;
da->depth = parent->depth + 1;
vendor_da->parent = parent;
vendor_da->depth = parent->depth + 1;
vendor_da->flags.is_unknown = 1;
+ vendor_da->flags.is_raw = 1;
vendor_da->flags.type_size = 1;
vendor_da->flags.length = 1;
snprintf(vendor_da->name, FR_DICT_ATTR_MAX_NAME_LEN, "Vendor-%u", vendor);
FLAG_SET(is_root);
FLAG_SET(is_unknown);
+ FLAG_SET(is_raw);
FLAG_SET(internal);
FLAG_SET(has_tag);
FLAG_SET(array);