]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Status-Server packets are left in the TCP proxy hash
authorAlan T. DeKok <aland@freeradius.org>
Wed, 4 Aug 2021 23:05:10 +0000 (19:05 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 4 Aug 2021 23:05:10 +0000 (19:05 -0400)
until such time as the listener is being shut down

src/main/process.c

index f309092ce0df46410a6ea2b2dddfe7f567c7aa4c..38b49360e4012c9d946afafcc46ef7421a164d47 100644 (file)
@@ -2298,6 +2298,18 @@ static void remove_from_proxy_hash(REQUEST *request)
         */
        if (!request->in_proxy_hash) return;
 
+#ifdef WITH_TCP
+       /*
+        *      Status-Server packets aren't removed from the proxy hash.  They're reused.
+        *
+        *      Unless we're tearing down the listener.
+        */
+       if ((request->proxy->proto == IPPROTO_TCP) && (request->proxy->code == PW_CODE_STATUS_SERVER) &&
+           request->proxy_listener && (request->proxy_listener->status < RAD_LISTEN_STATUS_EOL)) {
+               return;
+       }
+#endif
+
        /*
         *      The "not in hash" flag is definitive.  However, if the
         *      flag says that it IS in the hash, there might still be