From: Alan T. DeKok Date: Wed, 27 Jan 2021 15:51:06 +0000 (-0500) Subject: add flag / assertion for request is finished X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17ea3e188dc387fd71d5cbcd19d94fe8644fbfef;p=thirdparty%2Ffreeradius-server.git add flag / assertion for request is finished so that we don't erroneously refuse to clean it up --- diff --git a/src/lib/io/master.c b/src/lib/io/master.c index 620c5702b1..d3769bfa0b 100644 --- a/src/lib/io/master.c +++ b/src/lib/io/master.c @@ -1547,6 +1547,7 @@ have_client: } if (!track->reply) { + fr_assert(!track->finished); DEBUG("Ignoring retransmit from client %s - we are still processing the request", client->radclient->shortname); return 0; } @@ -2160,6 +2161,8 @@ static ssize_t mod_write(fr_listen_t *li, void *packet_ctx, fr_time_t request_ti if (client->state != PR_CLIENT_PENDING) { ssize_t packet_len; + track->finished = true; + /* * The request later received a conflicting * packet, so we discard this one. diff --git a/src/lib/io/master.h b/src/lib/io/master.h index 57d8728cbb..3413b996c4 100644 --- a/src/lib/io/master.h +++ b/src/lib/io/master.h @@ -48,6 +48,7 @@ typedef struct { bool discard; //!< whether or not we discard the packet bool do_not_respond; //!< don't respond + bool finished; //!< are we finished the request? /* * We can't set the "process" function here, because a