backport from HEAD
[freeradius.git] / doc / ChangeLog
1 FreeRADIUS 1.1.0 ; $Date$, urgency=low
2         * Copied dictionaries from the CVS head (many, many, more vendors)
3         * Enabled support for weird VSA formats, like Lucent and Starent.
4         * Support encrypted IP address and integers, for Juniper clients.
5         * Don't leak memory in module "rlm_sql".
6         * Update the dictionaries, so that VALUEs with the same name,
7           but different numbers, aren't allowed.
8         * Add PEAP machine authentication support in module "rlm_mschap".
9         * Queue the request before looking for available threads.
10         * Don't free the check items after we received the proxy reply.
11         * Expand config variables in included files, too.
12         * Check the return value of accounting modules and don't proxy
13           invalid requests.
14         * In rlm_passwd, don't close a file stream more than once.
15         * Fix format string errors in rlm_sql.c, spotted by Primoz Bratanic.
16         * Walk the whole string in when escaping strings in rlm_ldap.
17         * Include crypt.h if it is available so we get a prototype for crypt(),
18           spotted by Konstantin Kubatkin.
19         * Removed (for almost all uses) length restrictions on vendor names
20           and VALUE names.
21         * rlm_x99_token has become rlm_otp (with lots of changes).
22
23 FreeRADIUS 1.0.5 ; Date: 2005/09/04 16:23:00, urgency=medium
24         Security Fixes
25         * SQL injection attack in the module "rlm_sqlcounter".
26         * Buffer overflows in the module "rlm_sqlcounter".
27         * Expansion of variable %t may write 26 bytes beyond the buffer
28           bound. Primoz Bratanic is credited with the discovery of these
29           three bugs.
30
31         Bug fixes
32         * Don't de-reference a NULL pointer if the auth-type is unknown
33           in the function rad_check_password().
34         * Escape more characters in the LDAP queries.
35           Bug found by Suse engineers.
36         * In rlm_sql_unixodbc, don't call rad_malloc from sql_error(),
37           it leaks memory.
38         * Fix an off-by-one error in the module rlm_sql_unixodbc.
39           Bug found by Suse engineers.
40         * In rlm_sql, resize the buffer for the value of SQL-User-Name.
41         * Initialize memory for a new SQL socket in the module rlm_sql.
42         * Don't add too many attributes after running an external program.
43           Bug found by Suse engineers.
44         * Fix an off-by-one error in the function getthing().
45         * snprintf() and vsnprintf() replacements were not compiled if
46           the autoconf tests didn't find the functions.
47         * Don't use vsprintf() anymore, but the replacement for vsnprintf()
48           in libradius instead.
49         * The function decode_attribute() may write beyond buffer bounds.
50           Bug found by Suse engineers.
51         * Fix a memset() in the function request_enqueue() which was
52           begining at the wrong address. Bug found by Matthias Ruttman.
53         * Fix an off-by-one error in the function xlat_copy().
54           Bug found by Primoz Bratanic.
55         * Fix other off-by-one errors in module "rlm_unix", too.
56           Bug found by Allan Bazinet.
57         * Fix a 2-byte over-run read in function rad_decode().
58         * Update thread pool queue properly.
59         * Autonconf tests try first any user-specified directory,
60           otherwise they may pick up the wrong version.
61         * Delete the autoconf tests for the libldap dependancies.
62         * Install all the regular files under the "doc" directory.
63         * Distinguish between exit code <0 (failure) and >0 (reject)
64           in Exec-Program-Wait. Patch from Thor Spruyt.
65         * Make Expiration work.
66         * Clean up the code for opening a proxy socket.
67         * When finding a realm to proxy to, if all are dead, wake them
68           if wake_all_if_all_dead is true.
69         * In radwho, print the NAS-Port as unsigned int.
70         * Use extended regex instead of basic regex in rlm_attr_filter.
71         * Catch the case where someone deletes a directory that rlm_detail
72           is using.
73         * Use the variable $(LDFLAGS) when linking a module.
74         * Ignore the Stripped-User-Name when a realm has the "nostrip"
75           directive.
76         * Add support for NT-Password in rlm_pap.
77         * In rlm_sqlcounter, use the time left to the next reset if it's
78           inferior to the time left in the counter.
79         * Calculate Message-Authenticator correctly for Accounting-Request
80           and Accounting-Response.  Bug found by Paolo Rotela.
81         * Build on MAC OS X.  Still need --disable-shared, though.
82         * Fix bug #255 (crash with expired CRL's, etc.)
83         * Fix quote removal of the values from a SQL database.
84         * Reap the zombie process after a command run from "Exec-Program".
85         * Allow to cancel proxy of accounting with "Proxy-To-Realm := LOCAL".
86         * Don't copy VSA's to an Access-Reject packet.
87
88 FreeRADIUS 1.0.4 ; Date: 2005/06/11 22:46:52, urgency=medium
89         * Fix installation problem.
90         * Increase a buffer size, so radrelay doesn't truncate values.
91         * Updates in the documentation. Patches from Thor Spruyt.
92
93 FreeRADIUS 1.0.3 ; Date: 2005/06/03 17:15:11, urgency=high
94         Security Fixes
95         * Always escape the strings in the SQL module.
96         * Check buffer bound when input character needs escaping in
97           the SQL module. Bug found by Primoz Bratanic.
98
99         Bug fixes
100         * Return EAP-Fail in Access-Reject, rather than an empty Access-Reject
101         * Don't send Proxy-State from home server in TTLS.
102         * Fixes for forking external programs, so the server doesn't
103           suddenly stop processing requests, or stop forking programs.
104         * radzap now works, but it's command-line options have changed
105           completely, and it's a shell script.
106         * radwho has updated command-line options, and no longer reads
107           Unix "utmp" files.
108         * Fix bug in calling checkrad script with NAS port > 9999999
109         * Fix long-standing bug when both crypt and pthreads are in use
110         * Don't SEGV when rlm_sql gets 'NULL' value from request.
111         * Re-arrange code in radrelay to not duplicate accounting packets.
112         * In rlm_attr_rewrite, change the value when the attribute type
113           is different from string.
114
115 FreeRADIUS 1.0.2 ; Date: 2005/02/13 01:03:20, urgency=medium
116         * Novell eDirectoty support.  Patch from Novell.
117         * localweb & Trapeze dictionary updates.
118         * EAP-SIM fixes.
119         * Make "Strip-User-Name = No" work.
120         * Don't declare zero-length arrays in rlm_passwd
121         * Bug fix to make udpfromto code work
122         * radrelay shouldn't dump core if it can't read a VP from the
123           detail file.
124         * Only initialize the random pool once.
125         * In rlm_sql, don't escape characters twice.
126         * Fix MD4 calculation on big-endian machines.
127         * In rlm_ldap, only claim Auth-Type if a plain text password is present.
128         * Treat Quintium VSAs like Cisco VSAs
129         * Locking fixes in threading code
130         * rlm_krb5 includes /usr/include/et for Fedora Core
131         * Fix post-auth REJECT stanza processing for rejections from external
132           processes or home RADIUS servers
133         * Fix building on gcc-4.0 by not trying to access static auth_port from
134           other files.
135         * Fix building SNMP support on Solaris 9, which needs -lkstat
136
137 FreeRADIUS 1.0.1 ; Date: 2004/09/02 10:52:03 , urgency=high
138         Denial-of-Service Security Fix
139         * Fix two remote crashes and a memory leak in RADIUS packet
140           decoding.
141
142         Bug fixes
143         * Fix premature "success" during EAP/TLS handshake.
144         * Dictionary handling now complains about identically named
145           values with different values, and rejects dictionary
146           entries with bad data
147         * Update dictionaries to deal with the above change.
148
149 FreeRADIUS 1.0.0 ; Date: 2004/07/17 06:31:32, urgency=low
150         pre3 -> release
151         * Fix LDAP dictionary map loading.
152         * Check login time allowance to packet timestampe where available.
153         * Compilation fix for machines withouth <pthread.h>.
154         * Man page improvements.
155         * Grab latest config.sub and config.guess (2004-03-12).
156
157         pre2 -> pre3
158         * Make IPv6 support work better.
159         * Updated 3com dictionary.
160         * Fixed MD5 code to be more portable.
161
162         pre1 -> pre2
163         * Updated SQL onoff query
164         * Updated Nomadix, RedBack and Valemont dictionaries.
165         * MD4/MD5 fixes.
166         * Don't complain about ports we're listening on when HUP'd.
167         * Permit -i to work for radclient.
168         * Fix bug in new proxy code.
169         * rlm_passwd is now a little friendlier.
170         
171         Non source-code changes
172         * Preliminary tests indicate that the server builds and runs on
173           Interix (SFU on Windows XP).
174         * EAP module configuration is now in "raddb/eap.conf", as it was
175           getting large.
176         * Updated GPL boilerplate in the source.
177         * Added new RFC's to doc/rfc/
178         * Added more "man" pages for many of the modules.  Many of the
179           'doc/rlm_*' files have been deleted, and replaced with 'man' pages.
180         * Added many new dictionaries: 3GPP, 3GPP2, Propel, Karlnet,
181           Sonicwall, Navini, Bristol University, Valemont, Mikrotik.
182         * doc/configurable_failover is now understandable by mere humans.
183         * Update scripts/rc.radiusd with examples of how to deal with
184           shared library issues.
185         * Added demo certs.
186         * Updates to configure scripts for MySQL.
187         * Updated doc/tuning_guide, with comments about SQL.
188
189         Core feature improvements
190         * Many, many minor bug fixes and feature enhancements.
191         * Added "reject" action in configurable failover for modules
192         * Added a "listen" directive, which supersedes the old
193           "bind_address" and "port" directives.  "listen" allows much
194           finer-grained control over what IP's, ports, and packets the
195           server pays attention to.
196         * The proxy code has been updated to work properly, and to
197           allocate new sockets for proxying packets when there are more
198           than 256 requests outstanding to a home server.  Many thanks
199           to Stephen Jaeger for help in debugging the new feature.
200         * Regular expression matches in brackets can now be referenced
201           as in Perl, via %{1}, %{2}, etc.
202         * added ability for mschap module to use ntlm_auth, to perform
203           MS-CHAPv1 and MS-CHAPv2 authentication against a Windows
204           Domain Controller.
205         * Check return value from registered xlat functions. If return
206           value is 0, treat the attribute as not found.  This lets things
207           like %{sql: select... :-FAILED} work.
208         * Realms can now be configured to ignore DEFAULT and NULL
209           realms.  This makes prefix/suffix realms co-exists a little
210           better.
211         * Added red-black tree implementation to src/lib.  The
212           dictionaries now use it, rather than singly linked lists.  Tests
213           indicate that the server is up to 30% faster.
214         * Updated MSCHAP module to be able to better deal with Windows
215           machines which put a username with domain into User-Name, but
216           which use only the username to create the MS-CHAP-Response.
217         * Made "hints" file more generic and flexible, without changing
218           old functionality.
219         * Enhanced configuration file variable handling.  See
220           doc/variables.txt for details.
221         * Checks for OpenSSL now enforce version number, and are common
222           across all modules, rather than being duplicated.
223         * Implement "udpfromto", which allows the server to work better in
224           LVS.  Code from Jan Berkel and Miquel van Smoorenburg.  To use
225           it, do:   ./configure --with-udpfromto=yes
226         * Re-arranged "walk over cached requests" code for clarity.
227         * The server now keeps more SNMP statistics about the packets it
228           has processed.
229         * De-coupled the queue of input requests from the pool of threads.
230           This allows "spikes" of requests to be queued, even though all
231           threads are busy.  This change significantly increases the
232           servers ability to process large numbers of requests on a
233           multi-CPU machine.
234         * Re-arranged the internal "core" request handling code, to
235           make a little more sense.
236         * Removed support for Replicate-To-Realm.  Use radrelay.
237         * Print & parse unknown attributes as Attr-%d, Vendor-%d-Attr-%d,
238           or VendorName-Attr-%d.
239         * rlm_passwd is now marked "stable", and has many bugs fixed.
240         * More flexible configuration for rlm_ldap.
241         * New implementation of parser for Ascend's data filter
242           attributes, that is now thread-safe and GPL'd.
243         * Preliminary (not entirely complete) support for IPv6 attributes,
244           including IFID.
245         * Added support for rejected packets to run an Post-Auth-Type REJECT
246           stanza instead of skipping post-auth entirely.
247         * Added support for %{*:Packet-Type} translation. (Not for %{check:})
248         * Added support for %{check:Attribute-Name} to go with
249           %{request:Attribute-Name} and the like.
250         * Add support to rlm_sql for post-authentication query execution.
251         * Add support to rlm_sql for accounting_update_query_alt
252         * Add support for supplementary groups of switched-to user
253         * Add support for xlat-ing backquoted reply values from SQL queries.
254         * Add Public Domain MD5 implementation by Colin Plumb
255         * Add Public Domain MD4 implementation by Colin Plumb and
256           Todd C. Miller
257         * Remove smbdes.c from libradius, and add to rlm_mschap and
258           rlm_eap_leap
259         * Replace GPL'd snprintf.c in libradius with LGPL'd snprintf.[ch]
260
261         EAP-module feature improvements
262         * Allow checking of EAP identity against certificate.
263         * EAP-TLS now checks Certificate Revocation List
264         * Added EAP-TTLS support in rlm_eap.  Tested with many clients,
265           and with tunneled PAP, CHAP, MS-CHAP, MSCHAPv2, EAP-MD5,
266           EAP-MSCHAPv2, and EAP-GTC.
267         * Added EAP-PEAP support, with tunneled EAP-MSCHAP-V2, and EAP-GTC.
268           Patch from Masao Nishiku.  (Many, many thanks!)
269         * Added EAP-SIM.
270         * Enabled proxying of the authentication request which is tunneled
271           inside of PEAP and TTLS.
272
273         Utility improvements
274         * Add support to checkrad.pl for mikrotik-brand NASs over SNMP
275         * Added rlm_ippool_tool, by Edwin Groothuis.
276         * Updates to radclient, so that you can specify multiple '-f'
277           options, and it will send those packets in parallel.  This
278           allows for significantly higher packet rates when load testing.
279
280         Bug fixes
281         * Fix a bug in the attr_filter module, which would throw away
282           the tag from tagged attributes.
283         * Bug fixes to thread handling from Malcolm Caldwell.
284         * Fixed a bug in libltdl which printed the wrong error message
285           when trying to link to a library.  Found by Paul Stewart.
286         * Correct error condition in rlm_krb5.  Patch from Jon Moore.
287         * Updates for 64-bit systems.
288         * Patch to make ctime_r work on non-compliant platforms.
289           Patch from Oliver Graf.
290         * Updates to rlm_ippool for stability.
291         * Catch packets which are just about 4K in size.
292            Bug found by Nils-Henner Krueger.
293         * Many fixes to the SQL module & sub-modules.
294
295 FreeRADIUS 0.9.3 ; Date: 2003/11/20 20:15:48, urgency=high
296
297         * Change rlm_eap to not log an error if given a non-EAP packet
298         * Fix rlm_ippool's call to pod2man for perl versions before 5.6
299         * Fix a remote DoS and due to mis-handling of tagged attributes,
300           and Tunnel-Password attribute.
301
302 FreeRADIUS 0.9.2 ; Date: 2003/10/14 19:00:09, urgency=low
303
304         * New rlm_ippool code to fix IP leaks
305         * New rlm_ippool_tool for manipulation of rlm_ippool databases
306
307         * Change radrelay to reject records without an Acct-Status-Type attribute
308         * Change rlm_counter to reject packets which predate last server reset
309         * Change version output to include GNU GPL information
310         * Change rlm_ldap to output bad search filters
311
312         * Fix compilation of various modules when not building with pthreads
313         * Fix segfault due to poorly initialised value in rlm_mschap
314         * Fix to only reject packets once
315         * Fix rlm_exec to work when wait=no
316         * Fix rlm_attr_filter to work in post-proxy (as intended)
317         * Fix rlm_sql to only try to load SQL drivers
318         * Fix to orrectly limit size of RADIUS packets
319         * Fix usage information to output to stdout when used with -h flag
320         * Fix configure to assume gethostbyname is BSD-Style on FreeBSD
321
322 FreeRADIUS 0.9.1 ; Date: 2003/09/04 14:56:34, urgency=low
323
324         * Replicate-To-Realm is deprecated, and hence no longer documented
325         * Document rlm_detail support for authorize and post-auth sections
326         * Improve slightly MySQL accounting record SQL query
327         * Opaquefied CHAP-Challenge
328         * Add attributes to Nomadix dictionary
329         * Fix rlm_exec's parsing of non-attribute return values
330         * Fix for a segfault while reading config files
331         * Fix for a segfault regarding hostname lengths
332         * Fix for a segfault while reading deprecated config files
333         * Fix compilation of radiusd.c when threads are disabled
334         * Recover from inability to relay
335         * Stop complaining in error log when a system call is interrupted.
336         * Don't print binary CHAP-Passwords into the logs
337         * Successfully detect GNU dbm >= 1.8.1's dbm compatibility library
338         * Fix rlm_unix to deal with requests without a username
339         * Fix "uninmplemented function" crash in postgresql driver on -HUP
340         * Revert INTERVAL types to BIGINT in postgresql example schema
341         * Fix radrelay to notice when it's out of IDs
342         * Fix radrelay to correctly skip bad attributes
343         * Fix radrelay to not leak IDs when discarding packets
344         * Fix configure to correctly identify systems without SYSV or GNU-style
345           gethostby{addr,name}_r.
346
347 FreeRADIUS 0.9.0 ; Date: 2003/07/04 21:01:29, urgency=low
348
349         * Many, many, bug fixes and feature enhancements.
350         * radrelay now updates packet 'id' on retransmissions.
351         * More checks for thread-safe functions.
352         * Fix CHAP related buffer overflow (ouch!), thanks to Masao NISHIKU.
353         * Issue warnings if deprecated configuration files are used.
354         * rlm_passwd can now add items to the reply, request, or config items.
355         * The rlm_digest, rlm_exec, and rlm_ippool modules are now marked
356           as 'stable', and included in the default build.
357         * Removed 'raduse'.  No one has used it for years.
358         * Massive fixes for Debian packaging.
359         * radclient can now send "disconnect" packets, to NASes which
360           support it.  The server, however, CANNOT send disconnect packets.
361         * Made Auth-Type, Acct-Type, etc. names consistent across
362           dictionary files and radiusd.conf.  The old (inconsistent) names
363           are still allowed for backwards compatibility.
364         * Cleaned up problems with the rlm_sql module.
365         * Updates to the rlm_ldap module.
366         * rlm_mschap no longer reads SMB password files.  See rlm_passwd,
367           instead.
368         * Changed default entry in the 'users' file to 'Auth-Type = System',
369           to allow EAP and Digest authentication to work automagically.
370         * Support for Cisco LEAP.
371         * Added many new dictionaries (Extreme, Wispr, ERX, Netscreen...)
372         * Removed support for ATTRIB_NMC.  It is now handled (better)
373           in a different manner.
374         * Dictionaries have been moved from /etc/raddb to /usr/share/freeradius
375         * Many documentation updates
376         * Ignore whitespace-only lines in the 'users' file.
377         * Patch to fix 'rlm_realm' from returning the DEFAULT entry when
378           we are looking for the NULL entry and it doesn't exist. Bug
379           noted by Nathan Miller.
380         * Disable child process spawning if we don't have threads.
381           The code doesn't work, so it's better to force the server
382           to run in single-process mode.
383         * New rlm_exec module, which allows a more generic way of
384           executing external programs.
385         * Preliminary large file support in 'configure' and in the server,
386           to support 2G+ detail files.
387         * Install documentation into /usr/local/share/doc/freeradius
388         * New/updated dictionaries for RedCreek, Bintec, Alcatel,
389           ITK, Telebit, and Cabletron.
390         * Updates to allow building on MAC OSX.
391         * Add support for Acct-Type,Session-Type and PostAuth-Type
392         * Removed builddbm.  It hasn't been used for ages.
393         * Added new post_proxy section, based on patch from Chris Brotsos.
394         * rlm_counter shouldn't reset the counters on instantiation,
395           if the reset is set to 'never'.
396         * Significant updates to the rlm_python and rlm_perl modules
397         * Fix the rlm_pap module to handle password lengths properly.
398         * Do SQL 'close' on bad sockets, to prevent descriptor leaks
399         * Case insensitivity option for rlm_radutmp
400         * New pseudo-round-robin load balancing for realms.
401         * Suppress empty SQL queries.
402         * Include strong PRNG
403         * Create 'snmp' configuration directive, so that we can disable
404           SNMP at run time, even if it's built into the server.
405         * Refresh realm as 'active' when we see a response from it,
406            Based on a patch by Angelos Karageorgiou.
407         * Don't core dump if Status-Server is received, but it's disabled.
408         * Support more variants of character fields in Oracle.
409           Patch from Stocker Gernot.
410         * Better parsing of dictionary files.
411         * Alteon web switch dictionary, from Thomas Linden
412
413 FreeRADIUS 0.8 ; Date: 2002/11/18 15:37:24, urgency=low
414
415         * Added Oracle-specific queries.
416         * Updated SQL queries to match schema.
417         * PostGreSQL reconnect patch.
418         * Added documentation on how to build on MAC OSX.
419         * Allowed SQL module to ignore unknown Acct-Status-Type values.
420         * Updated PostGreSQL queries and schema.
421         * Updated the log rotation configuration files.
422         * Colubris and updated Nomadix dictionaries, from Marko Myllynen.
423         * Normalized error messages from the SQL modules, so that they're
424           more informative.
425         * Added Suse specific directory and configuration files, from
426           Peter Nixon
427         * SQL fail-over patch, so that the module returns FAIL if
428           the back-end database is down.  Based on a patch from
429           Thomas Jalsovsky.
430         * Cleaned up the internal handling of the configuration
431           information, in preparation for better handling SIGHUP.
432         * Updated rlm_krb5 configuration to better find it's libraries
433           and include files.
434         * radclient now complains if it receives a reply from a machine
435           other than the one to which it sent the request.
436         * Updated Postgresql SQL queries to get the operator, too.
437         * Added Juniper dictionary.
438         * Added Cisco VPN3000, VPN5000, and BBSM dictionaries.
439         * New platform-neutral 'rc.radiusd'
440         * Configuration files with private information get chmod'd
441           0600 after installation.
442         * Preliminary support for clean shutdowns when a SIGTERM is
443           received.
444         * SNMP timeouts for checkrad, so there will be fewer situations
445           where it hangs for 30 seconds...
446         * Added code to clean up modules and memory when asked to exit
447           via SIGTERM.
448         * Removed all need for the old-style 'naslist' and 'client' files,
449           and noted that they are deprecated.
450         * Added support for Status-Server packets, stolen shamelessly
451           from Cistron RADIUSD.  This is despite the RFC's saying such
452           things are wrong.
453         * Bug fixes to rlm_dbm.
454         * Updates for checkrad, max40xx routine, from Aleksandr Kuzminsky.
455         * Disable caching of passwords for the Unix module.  It was
456           causing too much confusion.
457         * Fix a memory leak when proxying Authentication-Request's
458         * Attributes which are not found in the dictionary are now of
459           type 'octets', instead of 'string'.
460         * Support for "round-robin" load balancing, when proxying requests
461           to multiple servers for one realm.
462         * Minor changes for better HPUX support.
463         * Updated the documentation and README's
464         * Made FreeTDS build ONLY after hand-editing, as the FreeTDS
465           libraries are in a state of flux, due to active development.
466         * Fixes to help build the server on MAC OSX
467         * Cisco VPN 3000 dictionary, as posted to the list by Chris Deramus.
468         * Fix EAP problems with retransmission, from Rainer Weikusat.
469         * Updates to the Oracle module, from Andrea Gabellini.
470         * In xlat, Unix timestamps are unsigned ints.
471         * Security fixes for the Kerberos Module.
472         * New 'post-auth' section, to do additional processing of
473           requests after they've been authenticated.
474         * doc/aaa.txt describes how the server works.
475         * More uniform encoding/decoding of passwords, so that they will
476           be seen as clear-text where possible.
477         * radwho and radzap now read 'radiusd.conf' to discover where the
478           radutmp files are located.  Patch from Andrea Gabellini.
479         * Preliminary 'expression' module, to allow you to do cool things
480           like:    Session-Timeout = `%{expr:3600 - %{sql:SELECT ...}}`
481         * Added ability to do xlat on check items, and reply items,
482           so that the value of the reply attributes can be dynamically
483           generated.
484         * Added MIBs, taken from the RFC's.  This makes SNMP queries to
485           the server a little easier to set up.
486         * Don't SEGV when we receive a packet which is larger than the
487           size claimed in the RADIUS portion.  Patch from Vaughn Skinner.
488         * SNMP patches from Harrie Hazewinkel.
489         * Added Altiga dictionary, from Calum <calum.aug02@umtstrial.co.uk>
490         * New Rewrite-Rule for rlm_attr_rewrite, to selectively choose
491           which rewrite rule is performed, and when.
492         * Minor bug fixes for radrelay.
493         * Bug fixes in SQL and sub-modules.
494         * Major updates to dialup_admin.
495         * Fixed handling of tagged string attributes, so that the server
496           doesn't go off into never-never land.
497         * Cleaned up experimental rlm_smb, so that it builds on more
498           platforms.
499         * Don't over-write request->reply->vps with the Reply-Message,
500           when doing authentication rejects with Exec-Program-Wait.
501         * Added 'instantiate' section, so that modules like 'expr',
502           with only an 'xlat' function can be registered.
503         * Allow '{' and '}' in xlat'd strings.
504         * C++ compatibility patch from Andrey Kotrekhov, for libradius.
505         * Automatically decrypt/encrypt User-Password, so that debugging
506           mode will print out the text password, and not the random
507           garbage it previously showed.
508         * Cleaned up header files and function prototypes for the SQL
509           sub-modules.
510
511 FreeRADIUS 0.7 ; Date: 2002/07/26 18:01:50 , urgency=high
512
513         * Allow attributes of type 'date' to be sent in outgoing packets.
514           Bug found by Loh John Wu <ljwu@sandvine.com>
515         * Add 'Realm' attribute, even if it's a LOCAL realm.
516           Bug noted by Chris Brotsos.
517         * Added experimental SMB authentication module, which uses
518           PAP passwords to authenticate against an NT-Domain.
519           NT/LM-passwords are not currently supported.
520         * More documentation for rlm_passwd, rlm_mschap, and rlm_digest.
521         * 'configure' changes to better find sem_init and friends.
522         * Allow the use of previously installed libtool, and libltdl.
523           This appears to help a lot on FreeBSD.
524         * Fixes to work on non-threaded builds.
525           Patch from Rainer Weikusat.
526         * SQL now re-connects to the server, if the connection is lost.
527           Currently only MySQL is fixed, but other patches will follow.
528           Patch from Todd T. Fries.
529         * Added experimental use of dynamicly translated variables,
530           CallBack-Number = `%{request:Calling-Station-Id}`
531           sets the value of the CallBack-Number attribute to the value of
532           the Calling-Station-Id in the original request.
533         * Cute hack: Allow regex matching on IP addresses, by placing
534           the string representation of the IP address (1.2.3.4) into
535           the internal data structure.  This allows things like
536           NAS-IP-Address =~ "^192\.168", which may be useful.
537         * Add documentation for experimental rlm_dbm module.
538         * Added experimental Perl module.
539         * Added the relevant IETF RFC's (standards documents) to 'doc/rfc',
540           along with some simple perl scripts to convert them to cross-
541           referenced HTML.
542         * Updated the experimental Python module.
543         * Added Cisco SSG VSA's
544         * When rejecting authentication due to external Exec-Program, do
545           NOT free the reply pairs, as the server core will take care of
546           doing that.  Bug noted by Thomas Jalsovsky
547         * New experimental module: rlm_cram
548           Supports APOP, CRAM-MD5, CRAM-MD4, CRAM-SHA1 with it's own
549           VSA's. This module may be used for SMTP/POP3/IMAP4 server
550           authentication.
551         * Make Exec-Program and Exec-Program-Wait work in debugging mode.
552         * Finalize the radrelay additions, based on Cistron RADIUS
553           Patches from Simon <lists@routemeister.net>
554         * Fix issues with linking, by making libradius shared.
555         * Fix issues with MD4, MD5, SHA1, and use of OpenSSL
556         * Update rlm_x99_token module to compile.
557
558 FreeRADIUS 0.6.0 ; Date: Date: 2002/07/03 14:16:33 , urgency=high
559
560         * Many bug fixes.  For explicit details, see:
561                 http://www.freeradius.org/cvs-log/
562         * Change to the user/group specified in the config file in all
563           modes ( debug and daemon ).
564         * SQL sockets are rotated so that all are used, to prevent the
565           SQL server timing out and closing unused sockets.  Patch from
566           Todd T. Fries
567         * Sybase driver from mattias@nogui.se.
568         * Modules are now versioned.
569         * Delete garbage Proxy-Reply attributes sent by the home server
570           before performing our own reply.
571         * Fix race conditions when duplicate packets resulted in a request
572           being processed by two threads, at the same time.
573         * Add '-d' command-line option to radwho
574           Bug noted by Matthew Schumacher
575         * Corrected issue that when a home server never replied to a
576           proxied request, the server may die.
577         * In SQL, look in radcheck, if not found there, try radgroupcheck.
578           Patch from Thomas Jalsovsky.
579         * Set sql user name for ALIVE accounting packets, too.
580           Patch from Simon <lists@routemeister.net>.
581         * Use port-specific checking for realms, now that we can proxy to
582           different auth/acct servers for the same realms.
583           Patch from Eddie Stassen.
584         * Minor updates to encrypted tunnel passwords.
585         * Default 'run_dir' is now /var/run/radiusd, not var/run.
586           /var/run is writeable only by root, and radiusd may be run suid.
587         * Modules are now versioned, so that upgrading the server
588           ensures that the new modules are installed.
589         * Fix sql code, so that magic SQL characters don't get the
590           SQL server excited.
591         * Remove references to "UNKNOWN-NAS" in log messages.
592         * Properly handle fork() and obtaining child processes exit
593           status when using threads.  (pthread is broken w.r.t. signals)
594         * Correct code which would send erroneous reject, when the reject
595           was delayed, and a new request came in.
596         * Fix race condition where proxied requests would sometimes never
597           be re-sent.  Bug noted by Eddie Stassen.
598         * Corrected LDAP3 schema
599         * Implemented Digest authentication, as per IETF document
600           draft-sterman-aaa-sip-00.txt, to perform authentication against
601           a Cisco SIP server.
602         * If no password or group files have been specified in the config,
603           use the standard system calls to find them, rather than giving
604           up.  Patch from Steve Langasek.       
605         * Return Proxy-State attributes in a delated Access-Reject
606         * Corrected 'session zap' logic, when an old and unused session
607           is deleted from the databases.  Accounting packets with garbage
608           Client-IP-Address attributes should no longer be a problem.
609         * Bug fixed in LDAP attribute map, for MS-CHAP related attributes.
610         * Fixes to the EAP module to work better with XP.
611         * Support for MS-SQL, using the FreeTDS library,
612           from Dmitri Ageev
613         * New operators =* and !*.  See 'man 5 users' for details.
614         * Added translation for %{config:section.subsection.item}, to
615           allow run-time translation of internal configuration parameters.
616         * New rlm_sqlcounter module, to keep counters based on SQL data.
617         * Fix rlm_realm, to allow seperate proxying of accounting and
618           authentication requests.
619         * Bug fixes in PostgreSQL back-end, from Andrew Kukhta.
620         * Increase internal buffers, to allow large SQL query strings.
621         * Added debug level 3 (-xxx), where debug messages have time stamps.
622         * Fix 'radwho' to use the correct radutmp file, as found by
623           'configure' (but radwho still doesn't read radiusd.conf)
624         * Fix bugs in tunnel (tagged attribute) code, which would prevent
625           tagged attributes from being generated correctly in a packet.
626         * Build only 'stable' modules by default.  Experimental modules
627           require --with-experimental-modules to be passed to 'configure'
628         * New module rlm_ippool, to do server-side IP pooling.
629         * Fix rlm_eap module for portability, to work on non-x86 platforms.
630         * Re-connect to the LDAP server if the connection idles out
631         * Increased the visibility of the warning messages when doing
632           'make install'
633         * Fixed EAP module to use 16-bit integers, so that it will
634           work on big-endian architectures.
635
636 FreeRADIUS 0.5.0 ; Date: 2002/03/14 22:18:22, urgency=medium
637
638         * Many bug fixes.  For explicit details, see:
639                 http://www.freeradius.org/cvs-log/
640         * Added Foundry dictionary, from Thomas Keitel
641         * Fix a logic bug in the 'walk over request list' code, which
642           would sometimes result in a request being deleted while it
643           was still being processed.  Found by Rainer Clasen
644         * New 'tuning' guide, for optimizing the server's speed.
645         * The default ports are now 1812/1813, which is the standard.
646         * Fix a bug which would hang the server when many SQL connections
647           were open.  Found by Cvetan Ivanov <zezo@spnet.net>
648         * Updated MySQL schema, with sanity checks, based on a schema from
649           Thomas Huehn <huehn@eozaen.net>
650         * Added 'Aptis' (Nortel CVX) dictionary.
651         * Added Ipv6 attributes (as 'octets' type for now)
652         * 'xlat' capability for SQL, so other modules can do SQL queries.
653         * We don't need a shared secret for LOCAL realms.
654         * Added better description of internal variables.
655         * Configurable fail-over to DEFAULT realm.  Sometimes we don't
656           want to use the DEFAULT realm, if all configured realms are
657           marked dead.  From Rainer Clasen.
658         * new configuration items 'max_attributes' and 'reject_delay'
659           If the packet contains too many attributes, it can be rejected.
660           We can also delay sending an Access-Reject, which slows down
661           certain DoS attacks.
662         * Updates to redhat scripts and spec file, from Marko Myllynen.
663         * Python module (EXPERIMENTAL) from migs paraz <mparaz@yahoo.com>
664         * Add ability to find *best* match when comparing attributes.
665           If there is more than one attribute in a request and the first
666           one doesn't match, go check the second one, instead of failing.
667         * unixODBC support for SQL, from Dmitri Ageev <d_ageev@ortcc.ru>
668         * Use thread-safe versions of library calls.  This work is still
669           on-going.
670         * New rlm_passwd module, to allow general parsing of passwd-style
671           files.
672         * Preliminary EAP-TLS support.
673         * Updated LDAPv3 schema
674         * Correct checks for Odbc, and fix bugs in the module.
675           Andreas Kainz <aka@maxxio.at>
676         * MAN page fixes and updates
677         * Added PHP web interface 'dialup_admin'
678         * Password = "UNIX" or "PAM" backwards compatibility removed.
679         * Use the operators in the SQL schema and queries, and bug
680           fixes in the SQL module.
681           Randy Moore <ramoore@axion-it.net>
682         * fgetpwent() compatibility, for systems without it,
683           from Daniel Carroll <freeradius@defiant.mesastate.edu>
684         * Added PAP authentication module, as a step to removing
685           most authentication handlers in other modules.
686         * Send a Access-Reject after max_request_time
687         * Multiple fixes in the LDAP module.
688         * Quintum dictionary by Jeremy McNamara <jj@indie.org>
689         * Preliminary EAP Module with MD5 support
690           Contributed by Raghu <raghud@hereuare.com>
691         * Better sanity checking for bad VSA's when receiving a packet
692         * new 'xlat register' so that attribute values may be pulled
693           out of configurable databases at run-time.
694           e.g. %{ldap:ldap:///dc=company,dc=com?uid?sub?uid=%u}
695         * Minor fixes to debian package rules
696         * Attribute 'Password' deprecated in favor of 'User-Password'.
697         * MS-CHAP and MS-CHAPv2 MPPE support added.
698           Contributed by Takahiro Wagatsuma <waga@sic.shibaura-it.ac.jp>.
699         * X9.9 token enhancements (several).
700
701   --  Alan DeKok <aland@ox.org>
702
703 FreeRADIUS 0.4.0 ; urgency=low
704
705         * Allow the MS-CHAP module to work, and to read /etc/smbpass
706           3APA3A <3APA3A@SECURITY.NNOV.RU>
707         * Remove the server requirement that one of User-Password
708           or CHAP-Password exist when doing authentication.  These
709           checks should be handled by the modules.  This change
710           also prepares us for EAP.
711           Patch from Raghu <raghud@hereuare.com>
712         * Make NAS-Port-ID in radwho, raduse, etc. unsigned,
713           instead of signed.
714           Patch from John Morrissey <jwm@horde.net>
715         * Allow \t and \n inside of configuration strings.
716           Frank Cusack <fcusack@fcusack.com>
717         * X9.9 Challenge-Response token card support.
718           For now, only CRYPTOCard tokens are supported.
719           Frank Cusack <fcusack@fcusack.com>
720         * Fix core dump on Solaris in radwho.c
721           Patch from Eddie Stassen <eddies@saix.net>
722         * Fix leak / core dump in Oracle module.
723         * Fix memory leak in rlm_counter
724           Kostas Kalevras <kkalev@noc.ntua.gr>
725         * "LOCAL" realms do not need to have an entry in the 'clients'
726           file.  Philippe Levan <levan@epix.net>
727
728   --  Alan DeKok <aland@ox.org>
729
730 FreeRADIUS 0.3.0 ; urgency=low
731
732         * Added ability to send debug messages to the log file, when
733           running in daemon mode.
734         * Miscellaneous fixes to get Debian packaging working.
735         * When trapping a signal, don't SIGKILL children on a SIGTERM,
736           SIGTERM them, instead.  This allows Exec-Program scripts to
737           catch the signal, and finish processing, instead of dying.
738           Bug noted by Michael Chernyakhovsky <magmike@mail.ru>
739         * Increased limit on length of user name read from /etc/passwd,
740           to match the maximum allowed by RADIUS.
741           Bug noted by "Gonzalez B., Fernando" <fgonzalez@manquehue.cl>
742         * Configurable fail-over when proxying packets.  If the
743           home server doesn't respond to a repeated proxied request,
744           it's marked as 'dead', and the next one in the list is used.
745           Patch by Eddie Stassen <eddies@saix.net> and <spirn@21cn.com>
746         * Pass Access-Challenge attributes through the server, in
747           preparation for EAP.
748           Raghu <raghud@hereuare.com>
749         * More fixes for RFC compliance on the Message-Authenticator
750           Raghu <raghud@hereuare.com>
751         * Merged OSFC2/OSFSIA authentication patches from Cistron.
752           (Bug # 104)  The patches are not well tested, however.
753         * IBM DB2 UDB V7.1 SQL driver, contributed by
754           Joerg Wendland <wendland@scan-plus.de>
755         * Fix the IP + Port address assignment.
756           Bug found by "John Padula" <john_padula@aviancommunications.com>
757         * Patch to avoid smashing the contents of Ascend binary filters.
758           Michael Chernyakhovsky <magmike@mail.ru>
759         * Create and Validate Message-Authenticator attribute, in
760           preparation for EAP.
761         * Initialize variables properly in rlm_attr_filter.
762           Patch from Andriy I Pilipenko <bamby@marka.net.ua>
763         * Renamed RedHat init script from 'radiusd.init' to 'radiusd'.
764           This allows it to work properly with the RedHat rc system.
765           Patch from Christian Vogel <chris@amor.iksys.de>
766         * Fix the configure script checks for PostgreSQL, so that
767           they use the 'test' command properly.
768           Bug found by Robert Haskins <rhaskins@ziplink.net>
769         * Change instances of 'assert' to 'rad_assert', so that it
770           can log the error to the standard radius log files.
771           Patch from Vesselin Atanasov <vesselin@bgnet.bg>
772         * Patch to prevent segv when freeing results, from
773           Tomas Heredia <tomas@intermediasp.com>
774         * Added support for Exec-Program to acct.  Bug found by
775           <magmike@mail.ru>
776         * Corrected rlm_files so that raddb/acct_users works
777         * When doing synchronous proxying, update proxy next try
778           entries, so that the server doesn't eat CPU time.
779           Raghu <raghud@hereuare.com>
780         * Add primitive dictionary.nomadix <CBoyd@apogeetelecom.com>
781         * Log messages to console, if the logger hasn't been
782           initialized.  <vesselin@bgnet.bg>
783         * Log invalid user for proxy rejects, too. <help@visp.net>
784         * Fixed Expiration attribute handling.
785         * Added code to handle Ascend-Send-Secret and Ascend-Receive-Secret
786         * Removed non thread-pool code.  If we have threads, we now force
787           the use of thread pools.
788         * Update version number
789         * correct bug where proxied accounting packets would never have a
790           reply sent back to the NAS, or the reply would be sent twice.
791
792   --  Alan DeKok <aland@ox.org>
793         
794 FreeRADIUS Alpha 0.2.0, July 30, 2001.
795
796         * call openlog() again when using PAM, to get the correct log
797         facility.
798         * Update child thread code, to minimize race conditions.
799         * Make thread pools the default.  Using plain child threads is NOT
800         recommended.
801         * Ignore SIGPIPE to get ride of crashes when using ldap.
802         * Update proxying code to work better.
803         * Platform independent pthread_cancel()ling
804         * Fix 'unresponsive child pid' erroneous warning messages.
805         * Many changes to get various SQL modules working.
806         Note that there may still be some issues with Oracle.
807         * Added configure options 'with-rlm-FOO-include/lib-dir', so that
808         lower-level rlm_FOO modules can be configured via the top-level
809         configuration file.  This isn't completely done yet.
810         * Fix check for shared library using libtool info, instead of
811         assuming extension being ".so".
812         * Fixes for HPUX.  We probably need more.
813         * Many additional bug fixes and changes.