diff options
author | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-09 01:34:59 +0000 |
---|---|---|
committer | seanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-11-09 01:34:59 +0000 |
commit | 457786b0a72867e9153db746b73626f1affb3872 (patch) | |
tree | c4ec458bd6ccc96d0a4f31ae33890b45626608ce /apps/app_queue.c | |
parent | 43715a8e2b7cc0021a4764e979cb1403e770e36e (diff) |
Merged revisions 155554 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r155554 | seanbright | 2008-11-08 20:27:00 -0500 (Sat, 08 Nov 2008) | 14 lines
Merged revisions 155553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r155553 | seanbright | 2008-11-08 20:08:07 -0500 (Sat, 08 Nov 2008) | 6 lines
Use static functions here instead of nested ones. This requires a small
change to the ast_bridge_config struct as well. To understand the reason
for this change, see the following post:
http://gcc.gnu.org/ml/gcc-help/2008-11/msg00049.html
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@155555 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_queue.c')
-rw-r--r-- | apps/app_queue.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c index 7f7f0db4a..2f87a0f51 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -3144,6 +3144,15 @@ static void setup_transfer_datastore(struct queue_ent *qe, struct member *member ast_channel_unlock(qe->chan); } +static void end_bridge_callback(void *data) +{ + struct queue_ent *qe = data; + + ao2_lock(qe->parent); + set_queue_variables(qe); + ao2_unlock(qe->parent); +} + /*! \brief A large function which calls members, updates statistics, and bridges the caller and a member * * Here is the process of this function @@ -3211,13 +3220,6 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce int callcompletedinsl; struct ao2_iterator memi; struct ast_datastore *datastore; - auto void end_bridge_callback(void); - void end_bridge_callback(void) - { - ao2_lock(qe->parent); - set_queue_variables(qe); - ao2_unlock(qe->parent); - } ast_channel_lock(qe->chan); datastore = ast_channel_datastore_find(qe->chan, &dialed_interface_info, NULL); @@ -3289,6 +3291,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce } bridge_config.end_bridge_callback = end_bridge_callback; + bridge_config.end_bridge_callback_data = qe; /* Hold the lock while we setup the outgoing calls */ if (use_weight) |