]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't retransmit packet if we're not synchronous
authorAlan T. DeKok <aland@freeradius.org>
Wed, 9 Jan 2019 21:47:49 +0000 (16:47 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 11 Jan 2019 18:51:43 +0000 (13:51 -0500)
src/modules/rlm_radius/rlm_radius_udp.c

index 47e156006f53b46d389e75b86b892fd6b2e765dd..584c4329b81fd931ec89b2cc5db0fa051c6201aa 100644 (file)
@@ -2836,18 +2836,20 @@ static rlm_rcode_t mod_push(void *instance, REQUEST *request, void *request_io_c
 }
 
 
-static void mod_signal(REQUEST *request, UNUSED void *instance, UNUSED void *thread, void *request_io_ctx, fr_state_signal_t action)
+static void mod_signal(REQUEST *request, void *instance, UNUSED void *thread, void *request_io_ctx, fr_state_signal_t action)
 {
+       rlm_radius_udp_t *inst = talloc_get_type_abort(instance, rlm_radius_udp_t);
        fr_io_request_t *u = talloc_get_type_abort(request_io_ctx, fr_io_request_t);
        struct timeval now;
 
        if (action != FR_SIGNAL_DUP) return;
 
        /*
-        *      Sychronous mode means that we don't do any
-        *      retransmission, and instead we rely on the
-        *      retransmission from the NAS.
+        *      ASychronous mode means that we do retransmission, and
+        *      we don't rely on the retransmission from the NAS.
         */
+       if (!inst->parent->synchronous) return;
+
        RDEBUG("retransmitting proxied request");
 
        gettimeofday(&now, NULL);