From: Alan T. DeKok Date: Wed, 8 Sep 2021 17:18:28 +0000 (-0400) Subject: bail from functions early X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75e56d337b9dd938970c2e8afa13f731163d0c00;p=thirdparty%2Ffreeradius-server.git bail from functions early so that the code has fewer levels of indentation, and is somewhat easier to read --- diff --git a/src/lib/server/state.c b/src/lib/server/state.c index 147ffe157e8..0a24b926f9b 100644 --- a/src/lib/server/state.c +++ b/src/lib/server/state.c @@ -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.");