summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2015-12-18 05:44:35 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2015-12-18 05:44:36 -0600
commit62e49a7e20bd19767b3ce6831a115898d1d031a6 (patch)
tree9801fa45f005eda9ce16769b99e019ffe9682026 /main
parent51a2cab780825ecaac9b702ab0b180e887bd5fc8 (diff)
parent59d5bb0613810418f2a618b9a6dee5bcfd45767e (diff)
Merge "res_sorcery_memory_cache: Add support for a full backend cache." into 13
Diffstat (limited to 'main')
-rw-r--r--main/sorcery.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/sorcery.c b/main/sorcery.c
index b75eb8ba7..e78fc5c6a 100644
--- a/main/sorcery.c
+++ b/main/sorcery.c
@@ -1897,7 +1897,7 @@ void *ast_sorcery_retrieve_by_fields(const struct ast_sorcery *sorcery, const ch
}
}
- if ((flags & AST_RETRIEVE_FLAG_MULTIPLE) || !object) {
+ if (((flags & AST_RETRIEVE_FLAG_MULTIPLE) && (!ao2_container_count(object) || !wizard->caching)) || !object) {
continue;
}
@@ -1935,6 +1935,10 @@ struct ao2_container *ast_sorcery_retrieve_by_regex(const struct ast_sorcery *so
}
wizard->wizard->callbacks.retrieve_regex(sorcery, wizard->data, object_type->name, objects, regex);
+
+ if (wizard->caching && ao2_container_count(objects)) {
+ break;
+ }
}
AST_VECTOR_RW_UNLOCK(&object_type->wizards);