]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
use do/while instead of goto
authorAlan T. DeKok <aland@freeradius.org>
Tue, 10 Jan 2017 15:12:56 +0000 (10:12 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 10 Jan 2017 16:13:21 +0000 (11:13 -0500)
src/util/worker.c

index 990d8b482ff56b481a4cc824cddff27dbecd6f07..03ae3e71e62928a2512d6f440adbf91abd5371f8 100644 (file)
@@ -621,24 +621,25 @@ static REQUEST *fr_worker_get_request(fr_worker_t *worker, fr_time_t now)
         *      Find either a localized message, or one which is in
         *      the "to_decode" queue.
         */
-redo:
-       WORKER_HEAP_POP(localized, cd, request.list);
-       if (!cd) {
-               WORKER_HEAP_POP(to_decode, cd, request.list);
-       }
-       if (!cd) return NULL;
+       do {
+               WORKER_HEAP_POP(localized, cd, request.list);
+               if (!cd) {
+                       WORKER_HEAP_POP(to_decode, cd, request.list);
+               }
+               if (!cd) return NULL;
 
-       worker->num_decoded++;
+               worker->num_decoded++;
 
-       /*
-        *      This message has asynchronously aged out while it was
-        *      in the queue.  Delete it, and go get another one.
-        */
-       if (cd->request.start_time && (cd->m.when != *cd->request.start_time)) {
-               MPRINT("\tIGNORING old message\n");
-               fr_worker_nak(worker, cd, fr_time());
-               goto redo;
-       }
+               /*
+                *      This message has asynchronously aged out while it was
+                *      in the queue.  Delete it, and go get another one.
+                */
+               if (cd->request.start_time && (cd->m.when != *cd->request.start_time)) {
+                       MPRINT("\tIGNORING old message\n");
+                       fr_worker_nak(worker, cd, fr_time());
+                       cd = NULL;
+               }
+       } while (!cd);
 
 #ifndef HAVE_TALLOC_POOLED_OBJECT
        /*