Ensure that there is a cleanup event for proxied packets
authorAlan T. DeKok <aland@freeradius.org>
Tue, 6 Oct 2009 08:21:45 +0000 (10:21 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 6 Oct 2009 08:21:45 +0000 (10:21 +0200)
If there was no reply, clean up, reject, etc. the request.

This doesn't matter so much for normal clients, as they will retransmit
and cause the old request to be deleted from the request hash.
But detail requests have random ports (for other reasons), so
they won't be cleaned up by new packets.  Therefore, we need to clean
them up...

src/main/event.c

index 139b918..3637ba5 100644 (file)
@@ -1115,6 +1115,12 @@ static void no_response_to_proxied_request(void *ctx)
                       request->proxy->dst_port);
 
                post_proxy_fail_handler(request);
+       } else {
+               /*
+                *      Ensure that there is a callback for the request.
+                */
+               request->child_state = REQUEST_RUNNING;
+               wait_a_bit(request);
        }
 
        /*