diff options
-rw-r--r-- | main/sorcery.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/main/sorcery.c b/main/sorcery.c index fbbd14662..790e782cc 100644 --- a/main/sorcery.c +++ b/main/sorcery.c @@ -1945,9 +1945,7 @@ static int sorcery_wizard_create(void *obj, void *arg, int flags) const struct sorcery_details *details = arg; if (!object_wizard->wizard->callbacks.create) { - ast_assert(0); - ast_log(LOG_ERROR, "Sorcery wizard '%s' doesn't contain a 'create' virtual function.\n", - object_wizard->wizard->callbacks.name); + ast_debug(5, "Sorcery wizard '%s' does not support creation\n", object_wizard->wizard->callbacks.name); return 0; } return (!object_wizard->caching && !object_wizard->wizard->callbacks.create(details->sorcery, object_wizard->data, details->obj)) ? CMP_MATCH | CMP_STOP : 0; @@ -2040,7 +2038,12 @@ static int sorcery_wizard_update(void *obj, void *arg, int flags) const struct ast_sorcery_object_wizard *object_wizard = obj; const struct sorcery_details *details = arg; - return (object_wizard->wizard->callbacks.update && !object_wizard->wizard->callbacks.update(details->sorcery, object_wizard->data, details->obj) && + if (!object_wizard->wizard->callbacks.update) { + ast_debug(5, "Sorcery wizard '%s' does not support updating\n", object_wizard->wizard->callbacks.name); + return 0; + } + + return (!object_wizard->wizard->callbacks.update(details->sorcery, object_wizard->data, details->obj) && !object_wizard->caching) ? CMP_MATCH | CMP_STOP : 0; } @@ -2108,7 +2111,12 @@ static int sorcery_wizard_delete(void *obj, void *arg, int flags) const struct ast_sorcery_object_wizard *object_wizard = obj; const struct sorcery_details *details = arg; - return (object_wizard->wizard->callbacks.delete && !object_wizard->wizard->callbacks.delete(details->sorcery, object_wizard->data, details->obj) && + if (!object_wizard->wizard->callbacks.delete) { + ast_debug(5, "Sorcery wizard '%s' does not support deletion\n", object_wizard->wizard->callbacks.name); + return 0; + } + + return (!object_wizard->wizard->callbacks.delete(details->sorcery, object_wizard->data, details->obj) && !object_wizard->caching) ? CMP_MATCH | CMP_STOP : 0; } |