]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
remove packet from c->queued on timeout or reply
authorAlan T. DeKok <aland@freeradius.org>
Tue, 3 Oct 2017 15:37:11 +0000 (11:37 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 3 Oct 2017 15:37:11 +0000 (11:37 -0400)
src/modules/rlm_radius/rlm_radius_udp.c

index 340225dffc1aa364f3c3c2bf2a0a51ea1e4f74eb..7b35881e29687ee04fc7bc179b6548c1228a24cc 100644 (file)
@@ -444,6 +444,7 @@ static void mod_finished_request(rlm_radius_udp_connection_t *c, rlm_radius_udp_
         *      request from the "sent" list for this connection.
         */
        if (c) {
+               (void) fr_heap_extract(c->queued, u);
                (void) rr_track_delete(c->id, u->rr);
                rad_assert(c->num_requests > 0);
                c->num_requests--;
@@ -622,6 +623,7 @@ redo:
         *      Stop all retransmissions for this packet.
         */
        if (u->timer.ev) (void) fr_event_timer_delete(c->thread->el, &u->timer.ev);
+       (void) fr_heap_extract(c->queued, u);
 
        switch (c->state) {
        default: