From: Arran Cudbard-Bell Date: Fri, 10 Apr 2020 21:09:35 +0000 (-0500) Subject: trunk: Do tconn assignment earlier X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48d4a1d6edc19f7a22957dd10cc2bb69266f20f4;p=thirdparty%2Ffreeradius-server.git trunk: Do tconn assignment earlier --- diff --git a/src/lib/server/trunk.c b/src/lib/server/trunk.c index 5940d250c9f..c9a21c1ba9b 100644 --- a/src/lib/server/trunk.c +++ b/src/lib/server/trunk.c @@ -857,9 +857,11 @@ static void trunk_request_enter_pending(fr_trunk_request_t *treq, fr_trunk_conne switch (treq->pub.state) { case FR_TRUNK_REQUEST_STATE_INIT: case FR_TRUNK_REQUEST_STATE_UNASSIGNED: + rad_assert(!treq->tconn); break; case FR_TRUNK_REQUEST_STATE_BACKLOG: + rad_assert(!treq->tconn); REQUEST_EXTRACT_BACKLOG(treq); break; @@ -871,10 +873,15 @@ static void trunk_request_enter_pending(fr_trunk_request_t *treq, fr_trunk_conne REQUEST_BAD_STATE_TRANSITION(FR_TRUNK_REQUEST_STATE_PENDING); } + /* + * Assign the new connection first this first so + * it appears in the state log. + */ + treq->pub.tconn = tconn; + REQUEST_STATE_TRANSITION(FR_TRUNK_REQUEST_STATE_PENDING); DEBUG4("[%" PRIu64 "] Trunk connection assigned request %"PRIu64, tconn->pub.conn->id, treq->id); fr_heap_insert(tconn->pending, treq); - treq->pub.tconn = tconn; /* * Check if we need to automatically transition the