]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
The diff on this looks pretty big but all I did was remove a pointless if statement...
authorMark Michelson <mmichelson@digium.com>
Thu, 19 Jul 2007 18:59:30 +0000 (18:59 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 19 Jul 2007 18:59:30 +0000 (18:59 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@75978 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index b4255a2a7db0f6e9e1b60e4700b2c781e5668c8d..241a8b8698899952fea05693dcf8a30626af850d 100644 (file)
@@ -3395,102 +3395,99 @@ check_turns:
                if (res)
                        goto stop;
 
-               /* always true... */
-               if (!res) {
-                       int makeannouncement = 0;
+               int makeannouncement = 0;
 
-                       for (;;) {
-                               /* This is the wait loop for the head caller*/
-                               /* To exit, they may get their call answered; */
-                               /* they may dial a digit from the queue context; */
-                               /* or, they may timeout. */
+               for (;;) {
+                       /* This is the wait loop for the head caller*/
+                       /* To exit, they may get their call answered; */
+                       /* they may dial a digit from the queue context; */
+                       /* or, they may timeout. */
 
-                               enum queue_member_status stat;
+                       enum queue_member_status stat;
 
-                               /* Leave if we have exceeded our queuetimeout */
-                               if (qe.expire && (time(NULL) > qe.expire)) {
-                                       record_abandoned(&qe);
-                                       reason = QUEUE_TIMEOUT;
-                                       res = 0;
-                                       ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
-                                       break;
-                               }
-
-                               if (makeannouncement) {
-                                       /* Make a position announcement, if enabled */
-                                       if (qe.parent->announcefrequency && !ringing)
-                                               if ((res = say_position(&qe)))
-                                                       goto stop;
-
-                               }
-                               makeannouncement = 1;
+                       /* Leave if we have exceeded our queuetimeout */
+                       if (qe.expire && (time(NULL) > qe.expire)) {
+                               record_abandoned(&qe);
+                               reason = QUEUE_TIMEOUT;
+                               res = 0;
+                               ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
+                               break;
+                       }
 
-                               /* Make a periodic announcement, if enabled */
-                               if (qe.parent->periodicannouncefrequency && !ringing)
-                                       if ((res = say_periodic_announcement(&qe)))
+                       if (makeannouncement) {
+                               /* Make a position announcement, if enabled */
+                               if (qe.parent->announcefrequency && !ringing)
+                                       if ((res = say_position(&qe)))
                                                goto stop;
 
-                               /* Try calling all queue members for 'timeout' seconds */
-                               res = try_calling(&qe, args.options, args.announceoverride, args.url, &go_on, args.agi);
-                               if (res)
+                       }
+                       makeannouncement = 1;
+
+                       /* Make a periodic announcement, if enabled */
+                       if (qe.parent->periodicannouncefrequency && !ringing)
+                               if ((res = say_periodic_announcement(&qe)))
                                        goto stop;
 
-                               stat = get_member_status(qe.parent, qe.max_penalty);
+                       /* Try calling all queue members for 'timeout' seconds */
+                       res = try_calling(&qe, args.options, args.announceoverride, args.url, &go_on, args.agi);
+                       if (res)
+                               goto stop;
 
-                               /* exit after 'timeout' cycle if 'n' option enabled */
-                               if (go_on) {
-                                       if (option_verbose > 2)
-                                               ast_verbose(VERBOSE_PREFIX_3 "Exiting on time-out cycle\n");
-                                       ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
-                                       record_abandoned(&qe);
-                                       reason = QUEUE_TIMEOUT;
-                                       res = 0;
-                                       break;
-                               }
+                       stat = get_member_status(qe.parent, qe.max_penalty);
 
-                               /* leave the queue if no agents, if enabled */
-                               if (qe.parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) {
-                                       record_abandoned(&qe);
-                                       reason = QUEUE_LEAVEEMPTY;
-                                       ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start));
-                                       res = 0;
-                                       break;
-                               }
+                       /* exit after 'timeout' cycle if 'n' option enabled */
+                       if (go_on) {
+                               if (option_verbose > 2)
+                                       ast_verbose(VERBOSE_PREFIX_3 "Exiting on time-out cycle\n");
+                               ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
+                               record_abandoned(&qe);
+                               reason = QUEUE_TIMEOUT;
+                               res = 0;
+                               break;
+                       }
 
-                               /* leave the queue if no reachable agents, if enabled */
-                               if ((qe.parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) {
-                                       record_abandoned(&qe);
-                                       reason = QUEUE_LEAVEUNAVAIL;
-                                       ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start));
-                                       res = 0;
-                                       break;
-                               }
+                       /* leave the queue if no agents, if enabled */
+                       if (qe.parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) {
+                               record_abandoned(&qe);
+                               reason = QUEUE_LEAVEEMPTY;
+                               ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start));
+                               res = 0;
+                               break;
+                       }
 
-                               /* Leave if we have exceeded our queuetimeout */
-                               if (qe.expire && (time(NULL) > qe.expire)) {
-                                       record_abandoned(&qe);
-                                       reason = QUEUE_TIMEOUT;
-                                       res = 0;
-                                       ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
-                                       break;
-                               }
+                       /* leave the queue if no reachable agents, if enabled */
+                       if ((qe.parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) {
+                               record_abandoned(&qe);
+                               reason = QUEUE_LEAVEUNAVAIL;
+                               ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start));
+                               res = 0;
+                               break;
+                       }
 
-                               /* OK, we didn't get anybody; wait for 'retry' seconds; may get a digit to exit with */
-                               res = wait_a_bit(&qe);
-                               if (res)
-                                       goto stop;
+                       /* Leave if we have exceeded our queuetimeout */
+                       if (qe.expire && (time(NULL) > qe.expire)) {
+                               record_abandoned(&qe);
+                               reason = QUEUE_TIMEOUT;
+                               res = 0;
+                               ast_queue_log(args.queuename, chan->uniqueid, "NONE", "EXITWITHTIMEOUT", "%d", qe.pos);
+                               break;
+                       }
 
+                       /* OK, we didn't get anybody; wait for 'retry' seconds; may get a digit to exit with */
+                       res = wait_a_bit(&qe);
+                       if (res)
+                               goto stop;
 
-                               /* Since this is a priority queue and
-                                * it is not sure that we are still at the head
-                                * of the queue, go and check for our turn again.
-                                */
-                               if (!is_our_turn(&qe)) {
-                                       if (option_debug)
-                                               ast_log(LOG_DEBUG, "Darn priorities, going back in queue (%s)!\n",
-                                                       qe.chan->name);
-                                       goto check_turns;
-                               }
+
+                       /* Since this is a priority queue and
+                        * it is not sure that we are still at the head
+                        * of the queue, go and check for our turn again.
+                        */
+                       if (!is_our_turn(&qe)) {
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Darn priorities, going back in queue (%s)!\n",
+                                               qe.chan->name);
+                               goto check_turns;
                        }
                }