]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
move "delete timer" to state_transition() function
authorAlan T. DeKok <aland@freeradius.org>
Fri, 20 Oct 2017 22:48:09 +0000 (18:48 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 20 Oct 2017 22:48:09 +0000 (18:48 -0400)
src/modules/rlm_radius/rlm_radius_udp.c

index 7096bb7ad9d46f2809a2532edefd50efaa03fb07..63c1d2470278c0ae3db0ea8729f886e876c18c10 100644 (file)
@@ -482,10 +482,12 @@ static void state_transition(rlm_radius_udp_request_t *u, rlm_radius_request_sta
                break;
 
        case PACKET_STATE_RESUMABLE:
+               if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
                unlang_resumable(u->link->request);
                break;
 
        case PACKET_STATE_FINISHED:
+               if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
                break;
 
        default:
@@ -498,8 +500,6 @@ static void mod_finished_request(rlm_radius_udp_connection_t *c, rlm_radius_udp_
 {
        rad_assert(u->state != PACKET_STATE_FINISHED);
 
-       if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
-
        /*
         *      Delete the tracking table entry, and remove the
         *      request from the "sent" list for this connection.
@@ -1796,8 +1796,6 @@ static int udp_request_free(rlm_radius_udp_request_t *u)
 {
        struct timeval when, now;
 
-       if (u->timer.ev) fr_event_timer_delete(u->thread->el, &u->timer.ev);
-
        state_transition(u, PACKET_STATE_FINISHED);
 
        /*