Prepare for 2.2.1
[freeradius.git] / doc / ChangeLog
1 FreeRADIUS 2.2.1 Mon 10 Sep 2012 12:00:00 CEST, urgency=medium
2         Feature improvements
3         * Updated dictionary.alcatel, dictionary.bskyb
4         * Added %{randstr:..} support.  Creates random strings in a
5           controllable format.
6
7         Bug fixes
8         * Skip OCSP if there's no host / port / url, with soft_fail
9         * Properly decode AT_IDENTITY in EAP-SIM.  Patch from Iliya Peregoudov
10         * Thread max_queue_size has better bounds checking.
11         * Use correct variable for warning message if the user misconfigures
12           the server.
13         * radtest is more generous about parsing ppphint
14         * radeapclient now accepts -4 and -6, just like radclient.
15           Patch from John Dennis.
16
17
18 FreeRADIUS 2.2.0 Mon 10 Sep 2012 12:00:00 CEST, urgency=medium
19         Feature improvements
20         * 100% configuration file compatible with 2.1.x.
21           The only fix needed is to disallow "hashsize=0" for rlm_passwd
22         * Update Aruba, Alcatel Lucent, APC, BT, PaloAlto, Pureware,
23           Redback, and Mikrotik dictionaries
24         * Switch to using SHA1 for certificate digests instead of MD5.
25           See raddb/certs/*.cnf
26         * Added copyright statements to the dictionaries, so that we know
27           when people are using them.
28         * Better documentation for radrelay and detail file writer.
29           See raddb/modules/radrelay and raddb/radrelay.conf
30         * Added TLS-Cert-Subject-Alt-Name-Email from patch by Luke Howard
31         * Added -F <file> to radwho
32         * Added query timeouts to MySQL driver.  Patch from Brian De Wolf.
33         * Add /etc/default/freeradius to debian package.
34           Patch from Matthew Newton
35         * Finalize DHCP and DHCP relay code.  It should now work everywhere.
36           See raddb/sites-available/dhcp, src_ipaddr and src_interface.
37         * DHCP capabilitiies are now compiled in by default.
38           It runs as a DHCP server ONLY when manually enabled.
39         * Added one letter expansions: %G - request minute and %I request
40           ID.
41         * Added script to convert ISC DHCP lease files to SQL pools.
42           See scripts/isc2ippool.pl
43         * Added rlm_cache to cache arbitrary attributes.
44         * Added max_use to rlm_ldap to force connection to be re-established
45           after a given number of queries.
46         * Added configtest option to Debian init scripts, and automatic
47           config test on restart.
48         * Added cache config item to rlm_krb5. When set to "no" ticket
49           caching is disabled which may increase performance.
50
51         Bug fixes
52         * Fix CVE-2012-3547.  All users of 2.1.10, 2.1.11, 2.1.12,
53           and 802.1X should upgrade immediately.
54         * Fix typo in detail file writer, to skip writing if the packet
55           was read from this detail file.
56         * Free cached replies when closing resumed SSL sessions.
57         * Fix a number of issues found by Coverity.
58         * Fix memory leak and race condition in the EAP-TLS session cache.
59           Thanks to Phil Mayers for tracking down OpenSSL APIs.
60         * Restrict ATTRIBUTE names to character sets that make sense.
61         * Fix EAP-TLS session Id length so that OpenSSL doesn't get
62           excited.
63         * Fix SQL IPPool logic for non-timer attributes.  Closes bug #181
64         * Change some informational messages to DEBUG rather than error.
65         * Portability fixes for FreeBSD.  Closes bug #177
66         * A much better fix for the _lt__PROGRAM__LTX_preloaded_symbols
67           nonsense.
68         * Safely handle extremely long lines in conf file variable expansion
69         * Fix for Debian bug #606450
70         * Mutex lock around rlm_perl Clone routines. Patch from Eike Dehling
71         * The passwd module no longer permits "hashsize = 0".  Setting that
72           is pointless for a host of reasons.  It will also break the server.
73         * Fix proxied inner-tunnel packets sometimes having zero authentication
74           vector.  Found by Brian Julin.
75         * Added $(EXEEXT) to Makefiles for portability.  Closes bug #188.
76         * Fix minor build issue which would cause rlm_eap to be built twice.
77         * When using "status_check=request" for a home server, the username
78           and password must be specified, or the server will not start.
79         * EAP-SIM now calculates keys from the SIM identity, not from the
80           EAP-Identity.  Changing the EAP type via NAK may result in
81           identities changing.  Bug reported by Microsoft EAP team.
82         * Use home server src_ipaddr when sending Status-Server packets
83         * Decrypt encrypted ERX attributes in CoA packets.
84         * Fix registration of internal xlat's so %{mschap:...} doesn't
85           disappear after a HUP.
86         * Can now reference tagged attributes in expansions.
87           e.g. %{Tunnel-Type:1} and %{Tunnel-Type:1[0]} now work.
88         * Correct calculation of Message-Authenticator for CoA and Disconnect
89           replies.  Patch from Jouni Malinen
90         * Install rad_counter, for managing rlm_counter files.
91         * Add unique index constraint to all SQL flavours so that alternate
92           queries work correctly.
93         * The TTLS diameter decoder is now more lenient.  It ignores
94           unknown attributes, instead of rejecting the TTLS session.
95         * Use "globfree" in detail file reader.  Prevents very slow leak.
96           Closes bug #207.
97         * Operator =~ shouldn't copy the attribute, like :=.  It should
98           instead behave more like ==.
99         * Build main Debian package without SQL dependencies
100         * Use max_queue_size in threading code
101         * Update permissions in raddb/sql/postgresql/admin.sql
102         * Added OpenSSL_add_all_algorithms() to fix issues where OpenSSL
103           wouldn't use methods it knew about.
104         * Add more sanity checks in dynamic_clients code so the server won't
105           crash if it attempts to load a badly formated client definition.
106
107 FreeRADIUS 2.1.12 Fri 30 Sept 2011 16:57:38 CEST, urgency=medium
108         Feature improvements
109         * Updates to dictionary.erx, dictionary.siemens, dictionary.starent,
110           dictionary.starent.vsa1, dictionary.zyxel, added dictionary.symbol
111         * Added support for PCRE from Phil Mayers
112         * Configurable file permission in rlm_linelog
113         * Added "relaxed" option to rlm_attr_filter.  This copies attributes
114           if at least one match occurred.
115         * Added documentation on dynamic clients.
116           See raddb/modules/dynamic_clients.
117         * Added support for elliptical curve cryptography.
118           See ecdh_curve in raddb/eap.conf.
119         * Added support for 802.1X MIBs in checkrad
120         * Added support for %{rand:...}, which generates a uniformly
121           distributed number between 0 and the number you specify.
122         * Created "man" pages for all installed commands, and documented
123           options for all commands.  Patch from John Dennis.
124         * Allow radsniff to decode encrypted VSAs and CoA packets.
125           Patch from Bjorn Mork.
126         * Always send Message-Authenticator in radtest. Patch from John Dennis.
127           radclient continues to be more flexible.
128         * Updated Oracle schema and queries
129         * Added SecurID module.  See src/modules/rlm_securid/README
130
131         Bug fixes
132         * Fix memory leak in rlm_detail
133         * Fix "failed to insert event"
134         * Allow virtual servers to be reloaded on HUP.
135           It no longer complains about duplicate virtual servers.
136         * Fix %{string:...} expansion
137         * Fix "server closed socket" loop in radmin
138         * Set ownership of control socket when starting up
139         * Always allow root to connect to control socket, even if
140           "uid" is set.  They're root.  They can already do anything.
141         * Save all attributes in Access-Accept when proxying inner-tunnel
142           EAP-MSCHAPv2
143         * Fixes for DHCP relaying.
144         * Check certificate validity when using OCSP.
145         * Updated Oracle "configure" script
146         * Fixed typos in dictionary.alvarion
147         * WARNING on potential proxy loop.
148         * Be more aggressive about clearing old requests from the
149           internal queue
150         * Don't open network sockets when using -C
151
152 FreeRADIUS 2.1.11 Mon 20 Jun 2011 12:57:38 CEST, urgency=medium
153         Feature improvements
154         * Added doc/rfc/rfc6158.txt: RADIUS Design Guidelines.
155           All vendors need to read it and follow its directions.
156         * Microsoft SoH support for PEAP from Phil Mayers.
157           See doc/SoH.txt
158         * Certificate "bootstrap" script now checks for certificate expiry.
159           See comments in raddb/eap.conf, and then "make_cert_command".
160         * Support for dynamic expansion of EAP-GTC challenges.
161           Patch from Alexander Clouter.
162         * OCSP support from Alex Bergmann.  See raddb/eap.conf, "ocsp"
163           section.
164         * Updated dictionary.huawei, dictionary.3gpp, dictionary.3gpp3.
165         * Added dictionary.eltex, dictionary.motorola, and dictionary.ukerna.
166         * Experimental redis support from Gabriel Blanchard.
167           See raddb/modules/redis and raddb/modules/rediswho
168         * Add "key" to rlm_fastusers.  Closes bug #126.
169         * Added scripts/radtee from original software at
170           http://horde.net/~jwm/software/misc/comparison-tee
171         * Updated radmin "man" page for new commands.
172         * radsniff now prints the hex decoding of the packet (-x -x -x)
173         * mschap module now reloads its configuration on HUP
174         * Added experimental "replicate" module.  See raddb/modules/replicate
175         * Policy "foo" can now refer to module "foo".  This lets you
176           over-ride the behavior of a module.
177         * Policy "foo.authorize" can now over-ride the behavior of module
178           "foo", "authorize" method.
179         * Produce errors in more situations when the configuration files
180           have invalid syntax.
181
182         Bug fixes
183         * Ignore pre/post-proxy sections if proxying is disabled
184         * Add configure checks for pcap_fopen*.
185         * Fix call to otp_write in rlm_otp
186         * Fix issue with Access-Challenge checking from 2.1.10, when the
187           debug flag was set after server startup.  Closes #116 and #117.
188         * Fix typo in zombie period start time.
189         * Fix leak in src/main/valuepair.c.  Patch from James Ballantine.
190         * Allow radtest to use spaces in shared secret.
191           Patch from Cedric Carree.
192         * Remove extra calls to HMAC_CTX_init() in rlm_wimax, fixing leak.
193           Patch from James Ballantine.
194         * Remove MN-FA key generation.  The NAS does this, not AAA.
195           Patch from Ben Weichman.
196         * Include dictionary.mikrotik by default.  Closes bug #121.
197         * Add group membership query to MS-SQL examples.  Closes bug #120.
198         * Don't cast NAS-Port to integer in Postgresql queries.
199           Closes bug #112.
200         * Fixes for libtool and autoconf from Sam Hartman.
201         * radsniff should read the dictionaries in more situations.
202         * Use fnmatch to check for detail file reader==writer.
203           Closes bug #128.
204         * Check for short writes (i.e. disk full) in rlm_detail.
205           Closes bug #130.  Patches and testing from John Morrissey.
206         * Fix typo in src/lib/token.c.  Closes bug #124
207         * Allow workstation trust accounts to use MS-CHAP.
208           Closes bug #123.
209         * Assigning foo=`/bin/echo hello` now produces a syntax error
210           if it is done outside of an "update" section.
211         * Fix "too many open file descriptors" problem when using
212           "verify client" in eap.conf.
213         * Many fixes to dialup_admin for PHP5, by Stefan Winter.
214         * Allow preprocess module to have "hints = " and "huntgroups =",
215           which allows them to be empty or non-existent.
216         * Renamed "php3" files to "php" in dialup_admin/
217         * Produce error when sub-TLVs are used in a dictionary.  They are
218           supported only in the "master" branch, and not in 2.1.x.
219         * Minor fix in dictionary.redback.  Closes bug #138.
220         * Fixed MySQL "NULL" issues in ippool.conf.  Closes bug #129.
221         * Fix to Access-Challenge warning from Ken-ichirou Matsuzawa.
222           Closes bug #118.
223         * DHCP fixes to send unicast packets in more situations.
224         * Fix to udpfromto, to enable it to work on IPv6 networks.
225         * Fixes to the Oracle accounting_onoff_query.
226         * When using both IPv4 and IPv6 home servers, ensure that we use the
227           correct local socket for proxying.  Closes bug #143.
228         * Suppress messages when thread pool is nearly full, all threads
229           are busy, and we can't create new threads.
230         * IPv6 is now enabled for udpfromto.  Closes bug #141
231         * Make sqlippool query buffer the same size as sql module.
232           Closes bug #139.
233         * Make Coa / Disconnect proxying work again.
234         * Configure scripts for rlm_caching from Nathaniel McCallum
235         * src/lib/dhcp.c and src/include/libradius.h are LGPL, not GPL.
236         * Updated password routines to use time-insensitive comparisons.
237           This prevents timing attacks (though none are known).
238         * Allow sqlite module to do normal SELECT queries.
239         * rlm_wimax now has a configure script
240         * Moved Ascend, USR, and Motorola "illegal" dictionaries to separate
241           files.  See share/dictionary for explanations.
242         * Check for duplicate module definitions in the modules{} section,
243           and refuse to start if duplicates are found.
244         * Check for duplicate virtual servers, and refuse to start if
245           duplicates are found.
246         * Don't use udpfromto if source is INADDR_ANY.  Closes bug #148.
247         * Check pre-conditions before running radmin "inject file".
248         * Don't over-ride "no match" with "match" for regexes.
249           Closes bug #152.
250         * Make retry and error message configurable in mschap.
251           See raddb/modules/mschap
252         * Allow EAP-MSCHAPv2 to send error message to client.  This change
253           allows some clients to prompt the user for a new password.
254           See raddb/eap.conf, mschapv2 section, "send_error".
255         * Load the default virtual server before any others.
256           This matches what users expect, and reduces confusion.
257         * Fix configure checks for udpfromto.  Fixes Debian bug #606866
258         * Definitive fix for bug #35, where the server could crash under
259           certain loads.  Changes src/lib/packet.c to use RB trees.
260         * Updated "configure" checks to allow IPv6 udpfromto on Linux.
261         * SQL module now returns NOOP if the accounting start/interim/stop
262           queries don't do anything.
263         * Allow %{outer.control: ... } in string expansions
264         * home_server coa config now matches raddb/proxy.conf
265         * Never send a reply to a DHCP Release.
266
267 FreeRADIUS 2.1.10 Tue 28 Sep 12:00:00 CEST 2010, urgency=medium
268         Feature improvements
269         * Install the "radcrypt" program.
270         * Enable radclient to send requests containing MS-CHAPv1
271           Send packets with: MS-CHAP-Password = "password".  It will
272           be automatically converted to the correct MS-CHAP attributes.
273         * Added "-t" command-line option to radtest.  You can use "-t pap",
274          "-t chap", "-t mschap", or "-t eap-md5".  The default is "-t pap"
275         * Make the "inner-tunnel" virtual server listen on 127.0.0.1:18120
276           This change and the previous one makes PEAP testing much easier.
277         * Added more documentation and examples for the "passwd" module.
278         * Added dictionaries for RFC 5607 and RFC 5904.
279         * Added note in proxy.conf that we recommend setting
280           "require_message_authenticator = yes" for all home servers.
281         * Added example of second "files" configuration, with documentation.
282           This shows how and where to use two instances of a module.
283         * Updated radsniff to have it write pcap files, too.  See '-w'.
284         * Print out large WARNING message if we send an Access-Challenge
285           for EAP, and receive no follow-up messages from the client.
286         * Added Cached-Session-Policy for EAP session resumption.  See
287           raddb/eap.conf.
288         * Added support for TLS-Cert-* attributes. For details, see
289           raddb/sites-available/default, "post-auth" section.
290         * Added sample raddb/modules/{opendirectory,dynamic_clients}
291         * Updated Cisco and Huawei, HP, Redback, and ERX dictionaries.
292         * Added RFCs 5607, 5904, and 5997.
293         * For EAP-TLS, client certificates can now be validated using an
294           external command.  See eap.conf, "validate" subsection of "tls".
295         * Made rlm_pap aware of {nthash} prefix, for compatibility with
296           legacy RADIUS systems.
297         * Add Module-Failure-Message for mschap module (ntlm_auth)
298         * made rlm_sql_sqlite database configurable.  Use "filename"
299           in sql{} section.
300         * Added %{tolower: ...string ... }, which returns the lowercase
301           version of the string.  Also added %{toupper: ... } for uppercase.
302
303         Bug fixes
304         * Fix endless loop when there are multiple sub-options for
305           DHCP option 82.
306         * More debug output when sending / receiving DHCP packets.
307         * EAP-MSCHAPv2 should return the MPPE keys when used outside
308           of a TLS tunnel.  This is needed for IKE.
309         * Added SSL "no ticket" option to prevent SSL from creating sessions
310           without IDs.  We need the IDs, so this option should be set.
311         * Fix proxying of packets from inside a TTLS/PEAP tunnel.
312           Closes bug #25.
313         * Allow IPv6 address attributes to be created from domain names
314           Closes bug #82.
315         * Set the string length to the correct value when parsing double
316           quotes.  Closes bug #88.
317         * No longer look users up in /etc/passwd in the default configuration.
318           This can be reverted by enabling "unix" in the "authorize" section.
319         * More #ifdef's to enable building on systems without certain
320           features.
321         * Fixed SQL-Group comparison to register only if the group
322           query is defined.
323         * Fixed SQL-Group comparison to register <instance>-SQL-Group,
324           just like rlm_ldap.  This lets you have multiple SQL group checks.
325         * Fix scanning of octal numbers in "unlang".  Closes bug #89.
326         * Be less aggressive about freeing "stuck" requests.  Closes bug #35.
327         * Fix example in "originate-coa" to refer to the correct packet.
328         * Change default timeout for dynamic clients to 1 hour, not 1 day.
329         * Allow passwd module to map IP addresses, too.
330         * Allow passwd module to be used for CoA packets
331         * Put boot filename into DHCP header when DHCP-Boot-Filename
332           is specified.
333         * raddb/certs/Makefile no longer has certs depend on index.txt and
334            serial.  Closes bug #64.
335         * Ignore NULL errorcode in PostgreSQL client.  Closes bug #39
336         * Made Exec-Program and Exec-Program-Wait work in accounting
337           section again.  See sites-available/default.
338         * Fix long-standing memory leak in esoteric conditions.  Found
339           by Jerry Nichols.
340         * Added "Password-With-Header == userPassword" to raddb/ldap.attrmap
341           This will automatically convert more passwords.
342         * Updated rlm_pap to decode Password-With-Header, if it was base64
343           encoded, and to treat the contents as potentially binary data.
344         * Fix Novell eDir code to use the right function parameters.
345           Closes bug #86.
346         * Allow spaces to be escaped when executing external programs.
347           Closes bug #93.
348         * Be less restrictive about checking permissions on control socket.
349           If we're root, allow connecting to a non-root socket.
350         * Remove control socket on normal server exit.  If the server isn't
351           running, the control socket should not exist.
352         * Use MS-CHAP-User-Name as Name field from EAP-MSCHAPv2 for MS-CHAP
353           calculations.  It *MAY* be different (upper / lower case) from
354           the User-Name attribute.  Closes bug #17.
355         * If the EAP-TLS methods have problems, more SSL errors are now
356           available in the Module-Failure-Message attribute.
357         * Update Oracle configure scripts.  Closes bug #57.
358         * Added text to DESC fields of doc/examples/openldap.schema
359         * Updated more documentation to use "Restructured Text" format.
360           Thanks to James Lockie.
361         * Fixed typos in raddb/sql/mssql/dialup.conf.  Closes bug #11.
362         * Return error for potential proxy loops when using "-XC"
363         * Produce better error messages when slow databases block
364           the server.
365         * Added notes on DHCP broadcast packets for FreeBSD.
366         * Fixed crash when parsing some date strings.  Closes bug #98
367         * Improperly formatted Attributes are now printed as "Attr-##".
368           If they are not correct, they should not use the dictionary name.
369         * Fix rlm_digest to be check the format of the Digest attributes,
370           and return "noop" rather than "fail" if they're not right.
371         * Enable "digest" in raddb/sites-available/default.  This change
372           enables digest authentication to work "out of the box".
373         * Be less aggressive about marking home servers as zombie.
374           If they are responding to some packets, they are still alive.
375         * Added Packet-Transmit-Counter, to track detail file retransmits.
376           Closes bug #13.
377         * Added configure check for lt_dladvise_init().  If it exists, then
378           using it solves some issues related to libraries loading libraries.
379         * Added indexes to the MySQL IP Pool schema.
380         * Print WARNING message if too many attributes are put into a packet.
381         * Include dhcp test client (not built by default)
382         * Added checks for LDAP constraint violation.  Closes bug #18.
383         * Change default raddebug timeout to 60 seconds.
384         * Made error / warning messages more consistent.
385         * Correct back-slash handling in variable expansion.  Closes bug #46.
386           You SHOULD check your configuration for backslash expansion!
387         * Fix typo in "configure" script (--enable-libltdl-install)
388         * Use local libltdl in more situations.  This helps to avoid
389           compile issues complaining about lt__PROGRAM__LTX_preloaded_symbols.
390         * Fix hang on startup when multiple home servers were defined
391           with "src_ipaddr" field.
392         * Fix 32/64 bit issue in rlm_ldap.  Closes bug #105.
393         * If the first "listen" section defines 127.0.0.1, don't use that
394           as a source IP for proxying.  It won't work.
395         * When Proxy-To-Realm is set to a non-existent realm, the EAP module
396           should handle the request, rather than expecting it to be proxied.
397         * Fix IPv4 issues with udpfromto.  Closes bug #110.
398         * Clean up child processes of raddebug.  Closes bugs #108 and #109
399         * retry OTP if the OTP daemon fails.  Closes bug #58.
400         * Multiple calls to ber_printf seem to work better.  Closes #106.
401         * Fix "unlang" so that "attribute not found" is treated as a "false"
402           comparison, rather than a syntax error in the configuration.
403         * Fix issue with "Group" attribute.
404
405 FreeRADIUS 2.1.9 Mon 24 May 8:00:00 CEST 2010, urgency=medium
406         Feature improvements
407         * Add radmin command "stats detail <file>" to see what
408           is going on inside of a detail file reader.
409         * Added documentation for CoA.  See raddb/sites-available/coa
410         * Add sub-option support for Option 82.  See dictionary.dhcp
411         * Add "server" field to default SQL NAS table, and documented it.
412
413         Bug fixes
414         * Reset "received ping" counter for Status-Server checks.  In some
415           corner cases it was not getting reset.
416         * Handle large VMPS attributes.
417         * Count accounting responses from a home server in SNMP / statistics
418           code.
419         * Set EAP-Session-Resumed = Yes, not "No" when session is resumed.
420         * radmin packet counter statistics are now unsigned, for numbers
421           2^31..2^32.  After that they roll over to zero.
422         * Be more careful about expanding data in PAP and MS-CHAP modules.
423           This prevents login failures when passwords contain '{'.
424         * Clean up zombie children if there were many "exec" modules being
425           run for one packet, all with "wait = no".
426         * re-open log file after HUP.  Closes bug #63.
427         * Fix "no response to proxied packet" complaint for Coa / Disconnect
428           packets.  It shouldn't ignore replies to packets it sent.
429         * Calculate IPv6 netmasks correctly.  Closes bug #69.
430         * Fix SQL module to re-open sockets if they unexpectedly close.
431         * Track scope for IPv6 addresses.  This lets us use link-local
432           addresses properly.  Closes bug #70.
433         * Updated Makefiles to no longer use the shell for recursing into
434           subdirs.  "make -j 2" should now work.
435         * Updated raddb/sql/mysql/ippool.conf to use "= NULL".  Closes
436           bug #75.
437         * Updated Makefiles so that "make reconfig" no longer uses the shell
438           for recursing into subdirs, and re-builds all "configure" files.
439         * Used above method to regenerate all configure scripts.
440           Closes bug #34.
441         * Updated SQL module to allow "server" field of "nas" table
442           to be blank: "".  This means the same as it being NULL.
443         * Fixed regex realm example.  Create Realm attribute with value
444           of realm from User-Name, not from regex.  Closes bug #40.
445         * If processing a DHCP Discover returns "fail / reject", ignore
446           the packet rather than sending a NAK.
447         * Allow '%' to be escaped in sqlcounter module.
448         * Fix typo internal hash table.
449         * For PEAP and TTLS, the tunneled reply is added to the reply,
450           rather than integrated via the operators.  This allows multiple
451           VSAs to be added, where they would previously be discarded.
452         * Make request number unsigned.  This changes nothing other than
453           the debug output when the server receives more than 2^31 packets.
454         * Don't block when reading child output in 'exec wait'.  This means
455           that blocked children get killed, instead of blocking the server.
456         * Enabled building without any proxy functionality
457         * radclient now prefers IPv4, to match the default server config.
458         * Print useful error when a realm regex is invalid
459         * relaxed rules for preprocess module "with_cisco_vsa_hack".  The
460           attributes can now be integer, ipaddr, etc.  (i.e. non-string)
461         * Allow rlm_ldap to build if ldap_set_rebind_proc() has only
462           2 arguments.
463         * Update configure script for rlm_python to avoid dynamic linking
464           problems on some platforms.
465         * Work-around for bug #35
466         * Do suid to "user" when running in debug mode as root
467         * Make "allow_core_dumps" work in more situations.
468         * In detail file reader, treat bad records as EOF.
469           This allows it to continue working when the disk is full.
470         * Fix Oracle default accounting queries to work when there are no
471           gigawords attributes.  Other databases already had the fix.
472         * Fix rlm_sql to show when it opens and closes sockets.  It already
473           says when it cannot connect, so it should say when it can connect.
474         * "chmod -x" for a few C source files.
475         * Pull update spec files, etc. from RedHat into the redhat/ directory.
476         * Allow spaces when parsing integer values.  This helps people who
477           put "too much" into an SQL value field.
478
479 FreeRADIUS 2.1.8 Wed 30 Dec 16:44:50 CEST 2009, urgency=medium
480         Feature improvements
481         * Print more descriptive error message for too many EAP sessions.
482           This gives hints on what to do when "failed to store handler"
483         * Commands received from radmin are now printed on stdout when
484           in debugging mode.
485         * Allow accounting packets to be written to a detail file, even
486           if they were read from a different detail file.
487         * Added OpenSSL license exception (src/LICENSE.openssl)
488
489         Bug fixes
490         * DHCP sockets can now set the broadcast flag before binding to a
491           socket.  You need to set "broadcast = yes" in the DHCP listener.
492         * Be more restrictive on string parsing in the config files
493         * Fix password length in scripts/create-users.pl
494         * Be more flexible about parsing the detail file.  This allows
495           it to read files where the attributes have been edited.
496         * Ensure that requests read from the detail file are cleaned up
497           (i.e. don't leak) if they are proxied without a response.
498         * Write the PID file after opening sockets, not before
499           (closes bug #29)
500         * Proxying large numbers of packets no longer gives error
501           "unable to open proxy socket".
502         * Avoid mutex locks in libc after fork
503         * Retry packet from detail file if there was no response.
504         * Allow old-style dictionary formats, where the vendor name is the
505           last field in an ATTRIBUTE definition.
506         * Removed all recursive use of mutexes.  Some systems just don't
507           support this.
508         * Allow !* to work as documented.
509         * make templates work (see templates.conf)
510         * Enabled "allow_core_dumps" to work again
511         * Print better errors when reading invalid dictionaries
512         * Sign client certificates with CA, rather than server certs.
513         * Fix potential crash in rlm_passwd when file was closed
514         * Fixed corner cases in conditional dynamic expansion.
515         * Use InnoDB for MySQL IP Pools, to gain transactional support
516         * Apply patch to libltdl for CVE-2009-3736.
517         * Fixed a few issues found by LLVM's static checker
518         * Keep track of "bad authenticators" for accounting packets
519         * Keep track of "dropped packets" for auth/acct packets
520         * Synced the "debian" directory with upstream
521         * Made "unlang" use unsigned 32-bit integers, to match the
522           dictionaries.
523
524 FreeRADIUS 2.1.7 Mon Sept 14 11:20:00 CEST 2009;  , urgency=medium
525         Feature improvements
526         * Full support for CoA and Disconnect packets as per RFC 3576
527           and RFC 5176.  Both receiving and proxying CoA is supported.
528         * Added "src_ipaddr" configuration to "home_server".  See
529           proxy.conf for details.
530         * radsniff now accepts -I, to read from a filename instead of
531           a device.
532         * radsniff also prints matching requests and any responses to those
533           requests when '-r' is used.
534         * Added example of attr_filter for Access-Challenge packets
535         * Added support for udpfromto in DHCP code
536         * radmin can now selectively mark modules alive/dead.
537           See "set module state".
538         * Added customizable messages on login success/fail.
539           See msg_goodpass && msg_badpass in log{} section of radiusd.conf
540         * Document "chase_referrals" and "rebind" in raddb/modules/ldap
541         * Preliminary implementation of DHCP relay.
542         * Made thread pool section optional.  If it doesn't exist,
543           the server will run single-threaded.
544         * Added sample radrelay.conf for people upgrading from 1.x
545         * Made proxying more stable by failing over, rather than
546           rejecting the first request.  See "response_window" in proxy.conf
547         * Allow home_server_pools to exist without realms.
548         * Add dictionary.iea (closes bug #7)
549         * Added support for RFC 5580
550         * Added experimental sql_freetds module from Gabriel Blanchard.
551         * Updated dictionary.foundry
552         * Added sample configuration for MySQL cluster in raddb/sql/ndb
553           See the README file for explanations.
554
555         Bug fixes
556         * Fixed corner case where proxied packets could have extra
557           character in User-Password attribute.  Fix from Niko Tyni.
558         * Extended size of "attribute" field in SQL to 64.
559         * Fixes to ruby module to be more careful about when it builds.
560         * Updated Perl module "configure" script to check for broken
561           Perl installations.
562         * Fix "status_check = none".  It would still send packets
563           in some cases.
564         * Set recursive flag on the proxy mutex, which enables safer
565           cleanup on some platforms.
566         * Copy the EAP username verbatim, rather than escaping it.
567         * Update handling so that robust-proxy-accounting works when
568           all home servers are down for extended periods of time.
569         * Look for DHCP option 53 anywhere in the packet, not just 
570           at the start.
571         * Fix processing of proxy fail handler with virtual servers.
572         * DHCP code now prints out correct src/dst IP addresses
573           when sending packets.
574         * Removed requirement for DHCP to have clients
575         * Fixed handling of DHCP packets with message-type buried in the packet
576         * Fixed corner case with negation in unlang.
577         * Minor fixes to default MySQL & PostgreSQL schemas
578         * Suppress MSCHAP complaints in debugging mode.
579         * Fix SQL module for multiple instance, and possible crash on HUP
580         * Fix permissions for radius.log for sites that change user/group,
581           but which don't create the file before starting radiusd.
582         * Fix double counting of packets when proxying
583         * Make %l work
584         * Fix pthread keys in rlm_perl
585         * Log reasons for EAP failure (closes bug #8)
586         * Load home servers and pools that aren't referenced from a realm.
587         * Handle return codes from virtual attributes in "unlang"
588           (e.g. LDAP-Group).  This makes "!(expr)" work for them.
589         * Enable VMPS to see contents of virtual server again
590         * Fix WiMAX module to be consistent with examples.  (closes bug #10)
591         * Fixed crash with policies dependent on NAS-Port comparisons
592         * Allowed vendor IDs to be be higher than 32767.
593         * Fix crash on startup with certain regexes in "hints" file.
594         * Fix crash in attr_filter module when packets don't exist
595         * Allow detail file reader to be faster when "load_factor = 100"
596         * Add work-around for build failures with errors related to
597           lt__PROGRAM__LTX_preloaded_symbols.  libltdl / libtool are horrible.
598         * Made ldap module "rebind" option aware of older, incompatible
599           versions of OpenLDAP.
600         * Check value of Fall-Through in attr_filter module.
601
602 FreeRADIUS 2.1.6 Mon May 18 10:00:00 CEST 2009;   urgency=medium
603         Feature improvements
604         * radclient exits with 0 on successful (accept / ack), and 1
605           otherwise (no response / reject)
606         * Added support for %{sql:UPDATE ..}, and insert/delete
607           Patch from Arran Cudbard-Bell
608         * Added sample "do not respond" policy.  See raddb/policy.conf
609           and raddb/sites-available/do_not_respond
610         * Cleanups to Suse spec file from Norbert Wegener
611         * New VSAs for Juniper from Bjorn Mork
612         * Include more RFC dictionaries in the default install
613         * More documentation for the WiMAX module
614         * Added "chase_referrals" and "rebind" configuration to rlm_ldap.
615           This helps with Active Directory.  See raddb/modules/ldap
616         * Don't load pre/post-proxy if proxying is disabled.
617         * Added %{md5:...}, which returns MD5 hash in hex.
618         * Added configurable "retry_interval" and "poll_interval"
619           for "detail" listeners.
620         * Added "delete_mppe_keys" configuration option to rlm_wimax.
621           Apparently some WiMAX clients misbehave when they see those keys.
622         * Added experimental rlm_ruby from
623           http://github.com/Antti/freeradius-server/tree/master
624         * Add Tunnel attributes to ldap.attrmap
625         * Enable virtual servers to be reloaded on HUP.  For now, only
626           the "authorize", "authenticate", etc. processing sections are
627           reloaded.  Clients and "listen" sections are NOT reloaded.
628         * Updated "radwatch" script to be more robust.  See scripts/radwatch
629         * Added certificate compatibility notes in raddb/certs/README,
630           for compatibility with different operating systems. (i.e. Windows)
631
632         Bug fixes
633         * Minor changes to allow building without VQP.
634         * Minor fixes from John Center
635         * Fixed raddebug example
636         * Don't crash when deleting attributes via unlang
637         * Be friendlier to very fast clients
638         * Updated the "detail" listener so that it only polls once,
639           and not many times in a row, leaking memory each time...
640         * Update comparison for Packet-Src-IP-Address (etc.) so that
641           the operators other than '==' work.
642         * Did autoconf magic to work around weird libtool bug
643         * Make rlm_perl keep tags for tagged attributes in more situations
644         * Update UID checking for radmin
645         * Added "include_length" field for TTLS.  It's needed for RFC
646           compliance, but not (apparently) for interoperability.
647
648 FreeRADIUS 2.1.5 Sun Jan 1 1:1:00 CEST 2009;  , urgency=medium
649         * Release number skipped due to procedural issues.
650
651 FreeRADIUS 2.1.4 Tue Mar 10 17:05:00 CEST 2009;  , urgency=medium
652         Feature improvements
653         * Permit multiple "-e" in radmin.
654         * Add support for originating CoA-Request and Disconnect-Request.
655           See raddb/sites-available/originate-coa.
656         * Added "lifetime" and "max_queries" to raddb/sql.conf.
657           This helps address the problem of hung SQL sockets.
658         * Allow packets to be injected via radmin.  See "inject help"
659           in radmin.
660         * Answer VMPS reconfirmation request.  Patch from Hermann Lauer.
661         * Sample logrotate script in scripts/logrotate.freeradius
662         * Add configurable poll interval for "detail" listeners
663         * New "raddebug" command.  This prints debugging information from
664           a running server.  See "man raddebug.
665         * Add "require_message_authenticator" configuration to home_server
666           configuration.  This makes the server add Message-Authenticator
667           to all outgoing Access-Request packets.
668         * Added smsotp module, as contributed by Siemens.
669         * Enabled the administration socket in the default install.
670           See raddb/sites-available/control-socket, and "man radmin"
671         * Handle duplicate clients, such as with replicated or
672           load-balanced SQL servers and "readclients = yes"
673
674         Bug fixes
675         * Clean up control sockets when they are closed, so that we don't
676           leak memory.
677         * Define SUN_LEN for systems that don't have it.
678         * Correct some boundary conditions in the conditional checker ("if")
679           in "unlang".  Bug noted by Arran Cudbard-Bell.
680         * Work around minor building issues in gmake.  This should only
681           have affected developers.
682         * Change how we manage unprivileged user/group, so that we do not
683           create control sockets owned by root.
684         * Fixed more minor issues found by Coverity.
685         * Allow raddb/certs/bootstrap to run when there is no "make"
686           command installed.
687         * In radiusd.conf, run_dir depends on the name of the program,
688           and isn't hard-coded to "..../radiusd"
689         * Check for EOF in more places in the "detail" file reader.
690         * Added Freeswitch dictionary.
691         * Chop ethernet frames in VMPS, rather than droppping packets.
692         * Fix EAP-TLS bug.  Patch from Arnaud Ebalard
693         * Don't lose string for regex-compares in the "users" file.
694         * Expose more functions in rlm_sql to rlm_sqlippool, which 
695           helps on systems where RTLD_GLOBAL is off.
696         * Fix typos in MySQL schemas for ippools.
697         * Remove macro that was causing build issues on some platforms.
698         * Fixed issues with dead home servers.  Bug noted by Chris Moules.
699         * Fixed "access after free" with some dynamic clients.
700
701 FreeRADIUS 2.1.3 Fri Dec 5 17:40:00 CEST 2008;  , urgency=medium
702         Feature improvements
703         * Allow running with "user=radiusd" and binding to secure
704           sockets.
705         * Start sending Status-Server "are you alive" messages earlier,
706           which helps with proxying multiple realms to a home server.
707         * Removed thread pool code from rlm_perl.  It's not necessary.
708         * Added example Perl configuration to raddb/modules/perl
709         * Force OpenSSL to support certificates with SHA256.
710           This seems to be necessary for WiMAX certs.
711
712         Bug fixes
713         * Fix Debian patch to allow it to build.
714         * Fix potential NULL dereference in debugging mode on certain
715           platforms for TTLS and PEAP inner tunnels.
716         * Fix uninitialized memory in handling of vendor definitions
717         * Fix parsing of quoted (but non-string) attributes in the "users"
718           file.
719         * Initialize uknown NAS IP to 255.255.255.255, rather than 0.0.0.0
720         * use SUN_LEN in control socket, to avoid truncation on some
721           platforms.
722         * Correct internal handling of "debug condition" to prevent it
723           from being over-written.
724         * Check return code of regcomp in "unlang", so that invalid
725           regular expressions are caught rather than mishandled.
726         * Make rlm_sql use <ltdl.h>.  Addresses bug #610.
727         * Document list "type = status" better.  Closes bug #580.
728         * Set "default days" for certificates, because OpenSSL won't
729           do it.  This closes bug #615.
730         * Reference correct list in example raddb/modules/ldap.
731           Closes #596.
732         * Increase default schema size for Acct-Session-Id to 64.
733           Closes #540.
734         * Fix use of temporary files in dialup-admin.  Closes #605
735           and addresses CVE-2008-4474.
736         * Addressed a number of minor issues found by Coverity.
737         * Added DHCP option 150 to the dictionary.  Closes #618.
738
739 FreeRADIUS 2.1.2 Thurs Dec 3 10:47:00 CEST 2008;  , urgency=medium
740         Due to packaging issues, 2.1.2 has been pulled from the net.
741
742 FreeRADIUS 2.1.1 Thu Sep 25 11:03:00 CEST 2008;  , urgency=medium
743         Feature improvements
744         * Many more options and features in radmin.  See "man radmin" and
745           raddb/sites-available/control-socket
746         * Many more commands available via the control socket.  Connect
747           via "radmin", and type "help" for more information.
748         * Added dictionary.networkphysics and dictionary.lancom.
749         * Calculate WiMAX MIP keys, and added sample WiMAX SQL tables.
750
751         Bug fixes
752         * Fixed bug that made radmin not work
753         * Fixed Suse && Debian package scripts
754         * Fixed issues with dynamic clients
755         * Fixed configure checks for -lreadline
756         * rlm_sqlippool no longer needs to be linked to rlm_sql.
757         * Add statistics for detail file listeners.  This closes bug #593.
758         * Fixed printing of some WiMAX attributes.
759         * Fix double free on exit() in rlm_attr_filter
760         * Fixed build issues on Solaris.
761         * Fixed fast session resumption for EAP-TLS
762
763 FreeRADIUS 2.1.0 Fri Sep  5 13:20:01 CEST 2008;  , urgency=medium
764         Feature improvements
765         * Clients may now be defined dynamically, based on IP address.
766           See raddb/sites-available/dynamic-clients.
767         * SNMP support is now available through an experimental Perl script.
768           See scripts/snmp-proxy/README
769         * SNMP statistics are available through Status-Server packets.
770           See raddb/sites-available/status
771         * Added more Microsoft attributes from bug #568.
772         * The "linelog" module has more functionality and flexibility.
773           See raddb/modules/linelog.
774         * The debugging output has been sanitized.  It should be much
775           more readable.
776         * Debug logs can now be turned on/off while the server is running, for
777           a user, group, realm, etc.  See the "log" section of radiusd.conf.
778         * Added support for WiMAX Forum attributes.  The dynamic keys
779           are not yet calculated.  See share/dictionary.wimax
780         * Added session resumption for PEAP and TTLS.
781           See raddb/eap.conf, "cache" sub-section.
782         * Added "radmin" command-line tool for administering a running server.
783           See "man radmin" and raddb/sites-available/control-socket.
784
785         Bug fixes
786         * Double escaping of '\\' in the "users" (and some other) files
787           has been fixed.  If you have '\\' in the "users" file, your
788           configuration WILL NEED TO BE CHECKED, AND FIXED!
789         * Parse "security" section in radiusd.conf.  This was accidentally
790           deleted in 2.0.5.  Closes bug #566.
791         * Bind to interface before IP, which allows DHCP sockets to
792           listen on "*" for multiple interfaces.
793         * Fix handling of giaddr in DHCP responses.
794         * Corrected parsing of status_check in home_server so that it works.
795         * Fix hints so that "Puser" works again.
796         * Removed length restrictions on attribute names in the dictionaries.
797         * Update socket code to avoid C compiler optimizations.
798
799 FreeRADIUS 2.0.5 ; Date: 2008/06/07 17:17:00 , urgency=medium
800         Feature improvements
801         * Permit SQL authorize_reply_query to be empty.
802         * Allow setting response packet type in Post-Proxy-Type Fail
803           handler.
804         * Added install-chown target to set correct permission and ownership
805           make RADMIN=radmin RGROUP=radius install-chown
806         * Support for LDAP-Group and other dynamic comparison attributes
807           in unlang.  Developed from a patch by Jason Alderfer.
808         * Added chroot support.  See radiusd.conf for comments.
809         * Allow clients of 0/0.  We do not recommend using this, though.
810         * Moved many module configurations into raddb/modules/*
811         
812         Bug fixes
813         * Allow proxying to virtual servers for accounting packets, too.
814         * Added "num fields" function to PostgreSQL client.
815         * Updated proxy fallback mechanism to validate fallback servers,
816           and to process fallback requests in a child thread.
817         * rlm_realm returns "ok" for LOCAL realms, not "noop".
818         * Fixed some DHCP code handling.  The examples should now work.
819
820 FreeRADIUS 2.0.4 ; Date: 2008/04/30 08:56:40  , urgency=medium
821         Feature improvements
822         * Allow "virtual_server" in "realm" and "home_server" sections.
823           See raddb/proxy.conf and raddb/sites-available/virtual.example.com.
824         * Allow "passwd" module to be listed in "accounting" and "post-auth".
825         * Added "fallback" to "home_server_pool" configuration, to handle
826           the case of all home servers being dead.  See raddb/proxy.conf.
827         * Added sample text to raddb/sites-available/inner-tunnel which
828           can simplify debugging of inner tunnel configurations.
829         * Added regular expression matching in realm names.  See
830           raddb/proxy.conf for examples.
831         * Added simple DHCP server functionality.  For comments, see
832           raddb/sites-available/dhcp.
833         * Added file globbing capabilities to detail file reader
834         * Added sample raddb/sites-available/robust-proxy-accounting
835         * Clients in SQL can now refer to a virtual server.
836           Patch from Michael Bretterklieber.
837         * Added some examples of creating RADIUS administrator in SQL,
838           and assigning appropriate access rights.
839         
840         Bug fixes
841         * Install all files in raddb/sites-available
842         * Allow non-threaded builds.
843         * Don't treat '0x' as special for known attributes that are not
844           of type "octets".
845         * Fix log error in rlm_pap.
846         * Remove documentation about non-existent functionality.
847         * Updated warning messages in debug output.
848         * Fix handling of timeouts in rlm_ldap that affected 64-bit systems.
849           This fix was supposed to go into 2.0.3, but did not make it.
850         * Fix event handling in debug mode for failed proxy requests.
851         * Fix memleak in fifos.  Closes #537.
852         * Fix memleak on blocked threads.  Closes #538.
853         * Perform additional checks on NULL realms.  Closes #541.
854         * Fix handling of "clients" in "listen" section.
855         * When detail file cannot process a packet, sleep for longer
856           to let the rest of the server do something.
857         * Add missing table to raddb/sql/mssql/schema.sql.  Closes #545.
858         * Updated rlm_sql_postgresql to build with PostgreSQL 7.x. 
859           Closes #533.
860         * Fix "postauth" of rlm_ldap to look for LDAP-UserDn in the
861           correct place.
862         * Update rlm_attr_filter for some corner cases.  Closes #543.
863         * Fixed memory leak in libfreeradius event handler.
864         * In the SQL Accounting on/off queries, remove the restriction
865           that the session time had to be zero.
866         
867 FreeRADIUS 2.0.3 ; Date: 2008/03/17 09:22:17  , urgency=medium
868         Feature improvements
869         * Updated raddb/certs/ca.cnf with extensions to allow ca.der
870           to be imported as a CA on Symbian and Windows Mobile devices.
871           Closes bug #524
872         * Enable multiple matches in "hints" via Fall-Through = Yes.
873           Closes bug #477
874         * Added preliminary SQLite driver, contibuted by Apple.
875           Untested, with no sample configuration.  This address bug #470.
876         * Updated logging sub-system so that log messages from libfreeradius
877           can go to the log file, and not stdout.
878         * Added dictionary.rfc5176
879         * EAP module now checks for instance name, and uses that for
880           authentication.  This avoids the need to set Auth-Type when
881           there are multiple instances of the EAP module.
882         * Added Module-Return-Code attribute, which contains the value
883           returned by the previous module (ok/fail/update/etc.)
884
885         Bug fixes
886         * Corrected typos in rlm_dbm.  Closes bugs #521 and #522.
887         * Detail file "listen" sections now work much better.
888         * Don't allow old "log_*" to over-ride new format.  Closes bug #525
889         * Initialize allocated memory in Oracle SQL driver.  This fixes
890           occasional crashes on some systems.  Closes bug #518
891         * Call correct function in rlm_protocol_filter.  This enables the
892           module to build.  Closes bug #512.
893         * Added deprecated flag to build for rlm_krb5.  This allows it to
894           run on 64-bit systems.  Closes bug #491
895         * Corrected error message when parsing invalid configurations
896           so it doesn't crash.  Closes bug #527
897         * Fix handling of timeouts in rlm_ldap that affected 64-bit systems.
898         * Handle $INCLUDE's in "instantiate" section.  Closes #528.
899         * Format updates to "man" pages from Stephen Gran.
900
901 FreeRADIUS 2.0.2 ; Date: 2008/02/14 11:13:48  , urgency=medium
902         Feature improvements
903         * Added notes on how to debug the server in radiusd.conf
904         * Moved all "log_*" in radiusd.conf to log{} section.
905           The old configurations are still accepted, though.
906         * Added ca.der target in raddb/certs/Makefile.  This is
907           needed for importing CA certs into Windows.
908         * Added ability send raw attributes via "Raw-Attribute = 0x0102..."
909           This is available only debug builds.  It can be used
910           to create invalid packets! Use it with care.
911         * Permit "unlang" policies inside of Auth-Type{} sub-sections
912           of the authenticate{} section.  This makes some policies easier
913           to implement.
914         * "listen" sections can now have "type = proxy".  This lets you
915           control which IP is used for sending proxied requests.
916         * Added note on SSL performance to raddb/certs/README
917
918         Bug fixes
919         * Fixed reading of "detail" files.
920         * Allow inner EAP tunneled sessions to be proxied.
921         * Corrected MySQL schemas
922         * syslog now works in log{} section.
923         * Corrected typo in raddb/certs/client.cnf
924         * Updated raddb/sites-available/proxy-inner-tunnel to
925           permit authentication to work.
926         * Ignore zero-length attributes in received packets.
927         * Correct memcpy when dealing with unknown attributes.
928         * Corrected debugging messages in attr_rewrite.
929         * Corrected generation of State attribute in EAP.  This
930           fixes the "failed to remember handler" issues.
931         * Fall back to DEFAULT realm if no realm was found.
932           Based on a patch from Vincent Magnin.
933         * Updated example raddb/sites-available/proxy-inner-tunnel
934         * Corrected behavior of attr_filter to match documentation.
935           This is NOT backwards compatible with previous versions!
936           See "man rlm_attr_filter" for details.
937
938 FreeRADIUS 2.0.1 ; Date: 2008/01/22 13:29:37  , urgency=low
939         Feature improvements
940         * "unlang" has been expanded to do less run-time expansion,
941           and to have better handling of typed data.  See "man unlang"
942           for documentation and new examples.
943         
944         Bug fixes
945         * The 'acct_unique' module has been updated to understand
946           the deprecated (but still used) Client-IP-Address attribute.
947         * The EAP-MSCHAPv2 module no longer leaks MS-CHAP2-Success in
948           packets.
949         * Fixed crash in rlm_dbm.
950         * Fixed parsing of syslog configuration.
951
952 FreeRADIUS 2.0.0 ; Date: 2007/11/24 08:33:09 , urgency=low
953         Feature improvements
954         * Debugging mode is much clearer and easier to read.
955         * A new policy language makes many configurations trivial.
956           See "man unlang" for a complete description.
957         * Virtual servers are now supported.  This permits clear separation
958           of policies.  See raddb/sites-available/README
959         * EAP-TLS (PEAP, EAP-TTLS) and OpenSSL certificates "just work".
960           See raddb/certs/README for details.
961         * Proxying is much more configurable than before.
962           See proxy.conf for documentation on pools, and new config items.
963         * Full support for IPv6.
964         * Much more complete support for the RADIUS SNMP MIBs.
965         * HUP now works.  Only some modules are re-loaded,
966           and the server configuation is *not* reloaded.
967         * "check config" option now works.  See "man radiusd"
968         * radrelay functionality is now included in the server core.
969           See raddb/sites-available/copy-acct-to-home-server
970         * VMPS support.  It is minimal, but functional.
971         * Cleaned up internal API's and names, including library names.
972         
973         Bug fixes
974         * Many.