mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 19:52:48 +00:00
Not having this epoll specific code in wait_for_answer was causing app_queue to infinitely loop.
This makes it so it doesn't. Thanks to file for pointing out where the problem was and showing a similar function in app_dial as an example of how to fix it. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81632 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2041,9 +2041,16 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
|
||||
char on[80] = "";
|
||||
char membername[80] = "";
|
||||
long starttime = 0;
|
||||
long endtime = 0;
|
||||
long endtime = 0;
|
||||
#ifdef HAVE_EPOLL
|
||||
struct callattempt *epollo;
|
||||
#endif
|
||||
|
||||
starttime = (long) time(NULL);
|
||||
#ifdef HAVE_EPOLL
|
||||
for (epollo = outgoing; epollo; epollo = epollo->q_next)
|
||||
ast_poll_channel_add(in, epollo->chan);
|
||||
#endif
|
||||
|
||||
while (*to && !peer) {
|
||||
int numlines, retry, pos = 1;
|
||||
@@ -2248,6 +2255,11 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
|
||||
rna(orig, qe, on, membername);
|
||||
}
|
||||
|
||||
#ifdef HAVE_EPOLL
|
||||
for(epollo = outgoing; epollo; epollo = epollo->q_next)
|
||||
ast_poll_channel_del(in, epollo->chan);
|
||||
#endif
|
||||
|
||||
return peer;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user