FreeRADIUS 2.0 should be finished soon.

The past few weeks have seen a major shift in the code base of FreeRADIUS. The old code that performs a linear walk over all of the “live” requests is gone. Its replacement is a timed event subsystem that only does what is necessary, when it is necessary. As these things usually go, the new code is smaller, cleaner, more modular, and easier to understand than the old code. The hard part isn't writing the code. The hard part is coming up with a better design.

Other cleanups include major fixes to the proxying code. Home servers are now independent of realms, which means that they can be used by multiple realms with minimal configuration. If a proxying server notices that a home server is dead, it can now send “are you alive?” messages periodically. Once the home server responds for a configurable time, it is marked “alive”, and put back into the usage pool. In addition, when any home server is marked “dead”, the requests which were being proxied to it get re-written to use another home server from the same pool. These two features mean that proxies will become much more robust and “transparent”. i.e., they will Just Work, which is one of the philosophies behind the server.

More SNMP statistics have been added. The server now keeps track of many more counters for the RADIUS MIBs, meaning that it is easier to monitor the behavior of the your RADIUS installation.

There are also a few “magic” features I'm trying to finalize before the release. I won't say much more, but one should cause some amount of surprise when its added. Stay tuned for more details.