From: Alan T. DeKok Date: Tue, 4 Jul 2023 13:12:33 +0000 (-0400) Subject: add basic tmpl_rules_debug() function X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=215a778e9130cbcb30a046d207b0dc0739ccd1a8;p=thirdparty%2Ffreeradius-server.git add basic tmpl_rules_debug() function --- diff --git a/src/lib/server/tmpl.h b/src/lib/server/tmpl.h index d9e3355a882..4671bafaf71 100644 --- a/src/lib/server/tmpl.h +++ b/src/lib/server/tmpl.h @@ -1340,6 +1340,8 @@ int tmpl_value_list_insert_tail(fr_value_box_list_t *list, fr_value_box_t *vb, void tmpl_rules_child_init(TALLOC_CTX *ctx, tmpl_rules_t *out, tmpl_rules_t const *parent, tmpl_t *vpt) CC_HINT(nonnull); +void tmpl_rules_debug(tmpl_rules_t const *rules) CC_HINT(nonnull); + int tmpl_global_init(void); void tmpl_global_free(void); diff --git a/src/lib/server/tmpl_tokenize.c b/src/lib/server/tmpl_tokenize.c index 33fd88767b6..dc732f0645a 100644 --- a/src/lib/server/tmpl_tokenize.c +++ b/src/lib/server/tmpl_tokenize.c @@ -5422,3 +5422,29 @@ void tmpl_rules_child_init(TALLOC_CTX *ctx, tmpl_rules_t *out, tmpl_rules_t cons * grouping attributes to appear anywhere. */ } + +static void tmpl_attr_rules_debug(tmpl_attr_rules_t const *at_rules) +{ + FR_FAULT_LOG("\tdict_def = %s", at_rules->dict_def ? fr_dict_root(at_rules->dict_def)->name : ""); + FR_FAULT_LOG("\tnamespace = %s", at_rules->namespace ? at_rules->namespace->name : ""); + + FR_FAULT_LOG("\tlist_def = %s", at_rules->list_def ? at_rules->list_def->name : ""); + + FR_FAULT_LOG("\tallow_unknown = %u", at_rules->allow_unknown); + FR_FAULT_LOG("\tallow_unresolved = %u", at_rules->allow_unresolved); + FR_FAULT_LOG("\tallow_wildcard = %u", at_rules->allow_wildcard); + FR_FAULT_LOG("\tallow_foreign = %u", at_rules->allow_foreign); + FR_FAULT_LOG("\tdisallow_filters = %u", at_rules->disallow_filters); +} + + +void tmpl_rules_debug(tmpl_rules_t const *rules) +{ + FR_FAULT_LOG("\tparent = %p", rules->parent); + FR_FAULT_LOG(" attr {"); + tmpl_attr_rules_debug(&rules->attr); + FR_FAULT_LOG(" }"); + FR_FAULT_LOG("\tenumv = %s", rules->enumv ? rules->enumv->name : ""); + FR_FAULT_LOG("\tcast = %s", fr_type_to_str(rules->cast)); + FR_FAULT_LOG("\tat_runtime = %u", rules->at_runtime); +}