proxy server goes deaf after "Client has closed connection" (RadSec to home server)

Alan DeKok aland at deployingradius.com
Fri Mar 16 19:10:57 CET 2012


Brian Julin wrote:
> request_proxy_anew was assuming its argument would be installed in the
> proxy_list, which wasn't the case, so it was removing it twice causing 
> .num_outgoing counters to roll over.  Then, request_proxy was not expecting
> the case where the argument was already in the proxy_list (put there by
> request_proxy_anew) and was failing when attempting to add it a second
> time.  The latter makes me wonder why or if request_proxy_anew works at all.

  It was tested at one point.  But the code has changed since then.

  It's nice to know that code was understandable.  The state machine in
process.c is complicated enough that I try not to touch it too much.

> The attached patch seems to do the trick.  Some caveats:
> 
> This bypasses (for certain situations) the attempts to make sure that
> a duplicate packet does not reuse the proxy_list ID of its predecessor.
> Not knowing the reasoning behind that, I don't know if that's important
> or not.

  It's not important.

> request_proxy has a "retransmit" flag as a parameter, which might be the
> better test to avoid inserting the entry twice, or might not be.

  I think that flag is independent of the issue you found.

> Off topic, JOOC, while reading through the source I was left wondering what
> prevents proxy_wait_for_reply from entering master-only functions from a
> non-master thread when it falls through the DUP case into the TIMER case.

  Whoops.  You're right.  I'll go commit a fix for that.

  Alan DeKok.


More information about the Freeradius-Users mailing list