From: Arran Cudbard-Bell Date: Thu, 3 Dec 2020 21:04:23 +0000 (-0700) Subject: Fix ext debugging X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b2826903524de2fad34fbe52625fd1e3f07acfcb;p=thirdparty%2Ffreeradius-server.git Fix ext debugging --- diff --git a/src/lib/util/dict_ext.c b/src/lib/util/dict_ext.c index 10bc6b35fe6..d219564e84a 100644 --- a/src/lib/util/dict_ext.c +++ b/src/lib/util/dict_ext.c @@ -30,12 +30,14 @@ RCSID("$Id$") #include static fr_table_num_ordered_t const dict_attr_ext_table[] = { - { L("name"), FR_DICT_ATTR_EXT_NAME }, - { L("children"), FR_DICT_ATTR_EXT_CHILDREN }, - { L("vendor"), FR_DICT_ATTR_EXT_REF }, - { L("enumv"), FR_DICT_ATTR_EXT_VENDOR }, - { L("da_stack"), FR_DICT_ATTR_EXT_ENUMV }, - { L("name"), FR_DICT_ATTR_EXT_DA_STACK } + { L("name"), FR_DICT_ATTR_EXT_NAME }, + { L("children"), FR_DICT_ATTR_EXT_CHILDREN }, + { L("ref"), FR_DICT_ATTR_EXT_REF }, + { L("vendor"), FR_DICT_ATTR_EXT_VENDOR }, + { L("da_stack"), FR_DICT_ATTR_EXT_DA_STACK }, + { L("enumv"), FR_DICT_ATTR_EXT_ENUMV }, + { L("namespace"), FR_DICT_ATTR_EXT_NAMESPACE }, + { L("protocol-specific"), FR_DICT_ATTR_EXT_PROTOCOL_SPECIFIC } }; static size_t dict_attr_ext_table_len = NUM_ELEMENTS(dict_attr_ext_table); @@ -188,6 +190,11 @@ static fr_table_num_ordered_t const dict_enum_ext_table[] = { }; static size_t dict_enum_ext_table_len = NUM_ELEMENTS(dict_enum_ext_table); +void fr_dict_attr_ext_debug(fr_dict_attr_t const *da) +{ + fr_ext_debug(&fr_dict_attr_ext_def, da->name, da); +} + /** Holds additional information about extension structures * */ diff --git a/src/lib/util/dict_ext.h b/src/lib/util/dict_ext.h index 0d23071b9ca..edaa974e482 100644 --- a/src/lib/util/dict_ext.h +++ b/src/lib/util/dict_ext.h @@ -209,6 +209,8 @@ static inline fr_dict_attr_t const *fr_dict_vendor_da_by_da(fr_dict_attr_t const /** @} */ +void fr_dict_attr_ext_debug(fr_dict_attr_t const *da); + #ifdef __cplusplus } #endif diff --git a/src/lib/util/ext.c b/src/lib/util/ext.c index de42c25da81..bee011b29cd 100644 --- a/src/lib/util/ext.c +++ b/src/lib/util/ext.c @@ -239,9 +239,9 @@ void fr_ext_debug(fr_ext_t const *def, char const *name, void const *chunk) { int i; - FR_FAULT_LOG("%sext total_len=%zu", name, talloc_get_size(chunk)); + FR_FAULT_LOG("%s ext total_len=%zu", name, talloc_get_size(chunk)); for (i = 0; i < (int)def->max; i++) { - uint8_t *chunk_ext = CHUNK_EXT(def->info, def->offset_of_exts); + uint8_t *chunk_ext = CHUNK_EXT(chunk, def->offset_of_exts); if (chunk_ext[i]) { void *ext = CHUNK_EXT_PTR(chunk, chunk_ext, i); size_t ext_len = fr_ext_len(def, chunk, i); @@ -251,12 +251,12 @@ void fr_ext_debug(fr_ext_t const *def, char const *name, void const *chunk) i, ""); if (ext_len > 1024) { - FR_FAULT_LOG("%sext id=%s - possibly bad length %zu - limiting dump to 1024", + FR_FAULT_LOG("%s ext id=%s - possibly bad length %zu - limiting dump to 1024", name, ext_name, ext_len); ext_len = 1024; } - FR_FAULT_LOG("%sext id=%s start=%p end=%p len=%zu", + FR_FAULT_LOG("%s ext id=%s start=%p end=%p len=%zu", name, ext_name, ext, ((uint8_t *)ext) + ext_len, ext_len); FR_FAULT_LOG_HEX(ext, ext_len); }