From 6f9bd7d0727bb5a5adb742777ab94fd16188c597 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Mon, 18 Aug 2008 20:01:14 +0000 Subject: [PATCH] Change the inequalities used in app_queue with regards to timeouts from being strict to non-strict for more accuracy. (closes issue #13239) Reported by: atis Patches: app_queue_timeouts_v2.patch uploaded by atis (license 242) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@138685 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_queue.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index d303aa55f9..f04e517982 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2426,7 +2426,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r break; /* If we have timed out, break out */ - if (qe->expire && (time(NULL) > qe->expire)) { + if (qe->expire && (time(NULL) >= qe->expire)) { *reason = QUEUE_TIMEOUT; break; } @@ -2455,7 +2455,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r break; /* If we have timed out, break out */ - if (qe->expire && (time(NULL) > qe->expire)) { + if (qe->expire && (time(NULL) >= qe->expire)) { *reason = QUEUE_TIMEOUT; break; } @@ -2466,7 +2466,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r break; /* If we have timed out, break out */ - if (qe->expire && (time(NULL) > qe->expire)) { + if (qe->expire && (time(NULL) >= qe->expire)) { *reason = QUEUE_TIMEOUT; break; } @@ -2480,7 +2480,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r } /* If we have timed out, break out */ - if (qe->expire && (time(NULL) > qe->expire)) { + if (qe->expire && (time(NULL) >= qe->expire)) { *reason = QUEUE_TIMEOUT; break; } @@ -2725,7 +2725,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce * This should be extremely rare. queue_exec will take care * of removing the caller and reporting the timeout as the reason. */ - if (qe->expire && now > qe->expire) { + if (qe->expire && now >= qe->expire) { res = 0; goto out; } @@ -3941,7 +3941,7 @@ check_turns: enum queue_member_status stat; /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { + if (qe.expire && (time(NULL) >= qe.expire)) { record_abandoned(&qe); reason = QUEUE_TIMEOUT; res = 0; @@ -3959,7 +3959,7 @@ check_turns: makeannouncement = 1; /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { + if (qe.expire && (time(NULL) >= qe.expire)) { record_abandoned(&qe); reason = QUEUE_TIMEOUT; res = 0; @@ -3972,7 +3972,7 @@ check_turns: goto stop; /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { + if (qe.expire && (time(NULL) >= qe.expire)) { record_abandoned(&qe); reason = QUEUE_TIMEOUT; res = 0; @@ -4016,7 +4016,7 @@ check_turns: } /* Leave if we have exceeded our queuetimeout */ - if (qe.expire && (time(NULL) > qe.expire)) { + if (qe.expire && (time(NULL) >= qe.expire)) { record_abandoned(&qe); reason = QUEUE_TIMEOUT; res = 0;