Merged revisions 95095 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r95095 | mmichelson | 2007-12-27 18:16:15 -0600 (Thu, 27 Dec 2007) | 8 lines I found a bug while browsing the queue code and managed to reproduce it in a small setup. If a queue uses the ringall strategy, it was possible through unfortunate coincidence for a single member at a given penalty level to make app_queue think that all members at that penalty level were unavailable and cause the members at the next penalty level to be rung. With this patch, we will only move to the next penalty level if ALL the members at a given penalty level are unreachable. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@95096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
c8f970936d
commit
af080add62
1 changed files with 2 additions and 4 deletions
|
@ -2158,16 +2158,14 @@ static int ring_one(struct queue_ent *qe, struct callattempt *outgoing, int *bus
|
||||||
for (cur = outgoing; cur; cur = cur->q_next) {
|
for (cur = outgoing; cur; cur = cur->q_next) {
|
||||||
if (cur->stillgoing && !cur->chan && cur->metric <= best->metric) {
|
if (cur->stillgoing && !cur->chan && cur->metric <= best->metric) {
|
||||||
ast_debug(1, "(Parallel) Trying '%s' with metric %d\n", cur->interface, cur->metric);
|
ast_debug(1, "(Parallel) Trying '%s' with metric %d\n", cur->interface, cur->metric);
|
||||||
ring_entry(qe, cur, busies);
|
ret |= ring_entry(qe, cur, busies);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Ring just the best channel */
|
/* Ring just the best channel */
|
||||||
ast_debug(1, "Trying '%s' with metric %d\n", best->interface, best->metric);
|
ast_debug(1, "Trying '%s' with metric %d\n", best->interface, best->metric);
|
||||||
ring_entry(qe, best, busies);
|
ret = ring_entry(qe, best, busies);
|
||||||
}
|
}
|
||||||
if (best->chan) /* break out with result = 1 */
|
|
||||||
ret = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue