]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
bail from functions early
authorAlan T. DeKok <aland@freeradius.org>
Wed, 8 Sep 2021 17:18:28 +0000 (13:18 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 8 Sep 2021 19:01:36 +0000 (15:01 -0400)
so that the code has fewer levels of indentation, and is somewhat
easier to read

src/lib/server/state.c

index 147ffe157e8baa4fd6514d04447c15deebf2f61f..0a24b926f9bac5056c913bbb39401e25b74ebfac 100644 (file)
@@ -653,30 +653,30 @@ int fr_state_to_request(fr_state_tree_t *state, request_t *request)
 
        PTHREAD_MUTEX_LOCK(&state->mutex);
        entry = state_entry_find(state, &vp->data);
-       if (entry) {
-               (void)talloc_get_type_abort(entry, fr_state_entry_t);
-               if (entry->thawed) {
-                       REDEBUG("State entry has already been thawed by a request %"PRIu64, entry->thawed->number);
-                       PTHREAD_MUTEX_UNLOCK(&state->mutex);
-                       return -2;
-               }
-               if (request->session_state_ctx) old_ctx = request->session_state_ctx;   /* Store for later freeing */
-
-               fr_assert(entry->ctx);
-
-               request->seq_start = entry->seq_start;
-               request->session_state_ctx = entry->ctx;
-               request_data_restore(request, &entry->data);
-
-               entry->ctx = NULL;
-               entry->thawed = request;
-               PTHREAD_MUTEX_UNLOCK(&state->mutex);
-       } else {
+       if (!entry) {
                PTHREAD_MUTEX_UNLOCK(&state->mutex);
                RDEBUG2("No state entry matching &request.%pP found", vp);
                return 2;
        }
 
+       (void)talloc_get_type_abort(entry, fr_state_entry_t);
+       if (entry->thawed) {
+               REDEBUG("State entry has already been thawed by a request %"PRIu64, entry->thawed->number);
+               PTHREAD_MUTEX_UNLOCK(&state->mutex);
+               return -2;
+       }
+       if (request->session_state_ctx) old_ctx = request->session_state_ctx;   /* Store for later freeing */
+
+       fr_assert(entry->ctx);
+
+       request->seq_start = entry->seq_start;
+       request->session_state_ctx = entry->ctx;
+       request_data_restore(request, &entry->data);
+
+       entry->ctx = NULL;
+       entry->thawed = request;
+       PTHREAD_MUTEX_UNLOCK(&state->mutex);
+
        if (!fr_pair_list_empty(&request->session_state_pairs)) {
                RDEBUG2("Restored &session-state");
                log_request_pair_list(L_DBG_LVL_2, request, NULL, &request->session_state_pairs, "&session-state.");