summaryrefslogtreecommitdiff
path: root/apps/app_directed_pickup.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2009-10-21 21:08:47 +0000
committerKevin P. Fleming <kpfleming@digium.com>2009-10-21 21:08:47 +0000
commitcdd1f9e29607351b683663832e25e76a051cdf7a (patch)
treefc090fae29428e50ebaebee71709d20ea2681aee /apps/app_directed_pickup.c
parent1ebf7767d0c7fe090b4dd41e110a18988b99985c (diff)
Finish implementaton of astobj2 OBJ_MULTIPLE, and convert ast_channel_iterator to use it.
This patch finishes the implementation of OBJ_MULTIPLE in astobj2 (the case where multiple results need to be returned; OBJ_NODATA mode already was supported). In addition, it converts ast_channel_iterators (only the targeted versions, not the ones that iterate over all channels) to use this method. During this work, I removed the 'ao2_flags' arguments to the ast_channel_iterator constructor functions; there were no uses of that argument yet, there is only one possible flag to pass, and it made the iterators less 'opaque'. If at some point in the future someone really needs an ast_channel_iterator that does not lock the container, we can provide constructor(s) for that purpose. Review: https://reviewboard.asterisk.org/r/379/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_directed_pickup.c')
-rw-r--r--apps/app_directed_pickup.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/apps/app_directed_pickup.c b/apps/app_directed_pickup.c
index a6ca09ac5..bc25defe2 100644
--- a/apps/app_directed_pickup.c
+++ b/apps/app_directed_pickup.c
@@ -210,7 +210,7 @@ static int pickup_by_exten(struct ast_channel *chan, const char *exten, const ch
struct ast_channel_iterator *iter;
int res = -1;
- if (!(iter = ast_channel_iterator_by_exten_new(0, exten, context))) {
+ if (!(iter = ast_channel_iterator_by_exten_new(exten, context))) {
return -1;
}
@@ -223,6 +223,8 @@ static int pickup_by_exten(struct ast_channel *chan, const char *exten, const ch
target = ast_channel_unref(target);
}
+ ast_channel_iterator_destroy(iter);
+
if (target) {
res = pickup_do(chan, target);
ast_channel_unlock(target);