On Fri 04 May 2007, Alan DeKok wrote:
OK... the code to handle the detail file is now in.
radiusd.conf:
listen { type = detail filename = foo max_outstanding = 10 # this will be deleted later }
If one thread is waiting for something to do, then ONE packet is read from the detail file, and handed to a child thread.
This means that if the server is busy handling authentication and/or accounting requests, it completely ignores the detail file. As it should.
I've also updated the "detail" module so that in the post-proxy section, it writes the accounting packet IF there's no reply from the home server. This lets the detail module sit in Post-Proxy-Type Fail, and Just Do The Right Thing.
Please test. I've done some basic work, and it should be OK. It doesn't hit assertions, it doesn't crash, and I've run 1000's of packets through it.
Sounds great. I will test it asap. Only thing that comes to mind is that you may want to add a "delay" option that pauses the read thread for X milliseconds in between packets to allow throttling of packets. This is not critical, but rather a "nice to have" option that should be trivial to implement while you are digging around in that section of the code.. Cheers -- Peter Nixon http://www.peternixon.net/ PGP Key: http://www.peternixon.net/public.asc