summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2017-08-25 09:07:53 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-08-25 09:07:53 -0500
commit28857047da01fec681656802ea3f0981170ac9b1 (patch)
tree0fcd771083640dc2c3bb9442789f3f518645cf74 /apps
parentc0251ae004815ee8d4925db5e78c89d99d29272b (diff)
parent579d4593acbd9bb2f07fa3c71a0e6ba9447ec5ca (diff)
Merge "app_queue: Evaluate realtime queues when running dialplan functions" into 13
Diffstat (limited to 'apps')
-rw-r--r--apps/app_queue.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 678b4a737..3fed5dcb6 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -7460,12 +7460,10 @@ static int set_member_value(const char *queuename, const char *interface, int pr
static int get_member_penalty(char *queuename, char *interface)
{
int foundqueue = 0, penalty;
- struct call_queue *q, tmpq = {
- .name = queuename,
- };
+ struct call_queue *q;
struct member *mem;
- if ((q = ao2_t_find(queues, &tmpq, OBJ_POINTER, "Search for queue"))) {
+ if ((q = find_load_queue_rt_friendly(queuename))) {
foundqueue = 1;
ao2_lock(q);
if ((mem = interface_exists(q, interface))) {
@@ -8216,10 +8214,7 @@ stop:
static int queue_function_var(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
{
int res = -1;
- struct call_queue *q, tmpq = {
- .name = data,
- };
-
+ struct call_queue *q;
char interfacevar[256] = "";
float sl = 0;
@@ -8228,7 +8223,7 @@ static int queue_function_var(struct ast_channel *chan, const char *cmd, char *d
return -1;
}
- if ((q = ao2_t_find(queues, &tmpq, OBJ_POINTER, "Find for QUEUE() function"))) {
+ if ((q = find_load_queue_rt_friendly(data))) {
ao2_lock(q);
if (q->setqueuevar) {
sl = 0;
@@ -8547,9 +8542,7 @@ static int queue_function_queuewaitingcount(struct ast_channel *chan, const char
/*! \brief Dialplan function QUEUE_MEMBER_LIST() Get list of members in a specific queue */
static int queue_function_queuememberlist(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
{
- struct call_queue *q, tmpq = {
- .name = data,
- };
+ struct call_queue *q;
struct member *m;
/* Ensure an otherwise empty list doesn't return garbage */
@@ -8560,7 +8553,7 @@ static int queue_function_queuememberlist(struct ast_channel *chan, const char *
return -1;
}
- if ((q = ao2_t_find(queues, &tmpq, OBJ_POINTER, "Find for QUEUE_MEMBER_LIST()"))) {
+ if ((q = find_load_queue_rt_friendly(data))) {
int buflen = 0, count = 0;
struct ao2_iterator mem_iter;