summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2006-03-31 00:53:32 +0000
committerJoshua Colp <jcolp@digium.com>2006-03-31 00:53:32 +0000
commit5880a7f5136cdb10edc90f7074b3eeaf38b960f8 (patch)
tree8932175c034fd8d0fb23fa92af7f3a9c12005c12
parentd80f3bc20ec94c37a72fbb22242d8295d844e2b3 (diff)
Do not leave a thread in limbo if an error occurs, or if testing packet loss.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@16617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_iax2.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 67bfdea57..33c140630 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -6558,11 +6558,12 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
if (errno != ECONNREFUSED)
ast_log(LOG_WARNING, "Error: %s\n", strerror(errno));
handle_error();
+ ASTOBJ_CONTAINER_LINK_END(&idlelist, thread);
return 1;
}
- if(test_losspct) { /* simulate random loss condition */
- if( (100.0*rand()/(RAND_MAX+1.0)) < test_losspct)
- return 1;
+ if (test_losspct && ((100.0*rand()/(RAND_MAX+1.0)) < test_losspct)) { /* simulate random loss condition */
+ ASTOBJ_CONTAINER_LINK_END(&idlelist, thread);
+ return 1;
}
/* Mark as ready and send on its way */
thread->iostate = IAX_IOSTATE_READY;