]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't delay proxied rejects from a real home server
authorAlan T. DeKok <aland@freeradius.org>
Thu, 7 Dec 2023 11:45:29 +0000 (06:45 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 7 Dec 2023 11:45:29 +0000 (06:45 -0500)
src/main/process.c

index dd092505b8ee20725cd88335239bee6f8a7853bd..ff3263bbe760b7c0bc0751a61ab6ba92e5855e8e 100644 (file)
@@ -1591,9 +1591,14 @@ static void request_finish(REQUEST *request, int action)
 #ifdef WITH_PROXY
                /*
                 *      If we timed out a proxy packet, don't delay
-                *      the reject any more.
+                *      the reject any more.  Or, if we proxied it to
+                *      a real home server, then don't delay it.
+                *
+                *      We don't want to have each proxy in a chain
+                *      adding their own reject delay, which would
+                *      result in N*reject_delays being applied.
                 */
-               if (request->proxy && !request->proxy_reply) {
+               if (request->proxy && (!request->proxy_reply || request->proxy->dst_port != 0)) {
                        request->response_delay.tv_sec = 0;
                        request->response_delay.tv_usec = 0;
                }