From ef74ccb18dd1faab04464640f5e93568c6a97ec7 Mon Sep 17 00:00:00 2001 From: Matt Jordan Date: Wed, 1 Jul 2015 16:04:50 -0500 Subject: [PATCH] sorcery/realtime: Add a bit of debug and warning messages for bad configs When a mapping does not exist between a sorcery.conf defined object and a realtime mapping in extconf, currently, the user will receive a slew of ERROR messages that don't really tell what is happening. Some ERROR messages may even be misleading, as they occur after the sorcery API has already given up on the attempt to load and create the sorcery object. This patch adds a bit of debug and a useful WARNING message for when a wizard's open callback fails for a particular object type. In the bad configurations that resulted in this patch, this provided a 'root cause' WARNING message that pointed in the right direction of the configuration problem. Change-Id: I1cc7344f2b015b8b9c85a7e6ebc8cb4753a8f80b --- main/config.c | 1 + main/sorcery.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/main/config.c b/main/config.c index d6a077b2df..008abffdf5 100644 --- a/main/config.c +++ b/main/config.c @@ -2869,6 +2869,7 @@ int ast_realtime_is_mapping_defined(const char *family) return 1; } } + ast_debug(5, "Failed to find a realtime mapping for %s\n", family); return 0; } diff --git a/main/sorcery.c b/main/sorcery.c index 1ff83de666..20b3d6b2f1 100644 --- a/main/sorcery.c +++ b/main/sorcery.c @@ -991,7 +991,11 @@ enum ast_sorcery_apply_result __ast_sorcery_insert_wizard_mapping(struct ast_sor } } + ast_debug(5, "Calling wizard %s open callback on object type %s\n", + name, object_type->name); if (wizard->callbacks.open && !(object_wizard->data = wizard->callbacks.open(data))) { + ast_log(LOG_WARNING, "Wizard '%s' failed to open mapping for object type '%s' with data: %s\n", + name, object_type->name, S_OR(data, "")); AST_VECTOR_RW_UNLOCK(&object_type->wizards); return AST_SORCERY_APPLY_FAIL; } -- 2.47.2