Revision history for Perl extension RADIUS.

1.56	Fri Jun  8 09:55:35 VET 2007

	* Yaroslav Bogomolov reported a problem when packing VSAs with
	  dictionaries with no VENDOR definitions (numeric VIDs). his
	  was fixed while preserving the intended behavior of having
	  ->vendor_num return undef on this case. Thanks Yaroslav!
	  Added a reg test for this.

1.55	Thu Apr 26 16:21:46 VET 2007
	* Darrian Hale reported that $p->unset_attr('Attribute',
	  $packet->attr('Attribute')) was b0rken due to the attribute
	  lookup using the "escaped" value instead of the raw value
	  returned by ->attr. Escaping was removed and a test was

	* Versions bumped to 1.55 as prior fixes were confirmed to
          work - Release to CPAN

	Sun Apr 22 16:54:03 VET 2007
	* Fixed the VSA packer to accept a vendor-id and a vendor
	  name. This will help if similar bugs are still lurking
	  around. This was pointed to by Pedro as well

	Sat Apr 21 14:04:35 VET 2007
	* Fixed VSA packing bug pointed out by Pedro Cavaca. Parts of expected to receive a numeric vendor id, others
	  expected the string name

1.54	Tue Jan 30 11:13:42 VET 2007
	* Added missing packet file to MANIFEST
	* Fixed an innocuous warn() during make test

1.53	Tue Jan 30 06:25:33 VET 2007
	* Packets with VSAs that couldn't be decoded caused an endless
	  loop. This has now been fixed by skipping over the b0rked
	  attribute, thus parsing as much of the packet as possible. A
	  warn() is issued
	* The packet tests now fail if the decode causes a warn() -
	  This may be helpful in the future for catching subtle
	  errors, specially in the decoding of packets
	* Added a new test packet for Cisco VPN 3000 - Thanks Luis

1.52    Mon Jan  8 15:47:38 VET 2007
	* Added patch by Freman (consistend ->set_vsattr and
	  ->unset_vsattr) - Thanks Freman
	* ->attr_slot deprecated. ->attr_slot_name and ->attr_slot_val
	* Added documentation for those methods
	* Added tests to verify correct operation of the overwrite and
	  slots functionality
	* Multiple attributes (ie, multiple Proxy-State attributes)
	  are now correctly handled
	* Include (untested) patch from j7 (Thanks) which allows for
	  multiple VSAs. We need some testing for this...

	Tue Jan  9 15:52:06 VET 2007
	* Added support for the packet decoding tests as well as
	  samples of common packets in a live production environment
	* dictionary.base now replaces dictionary.orig

	Sun Jan 14 14:54:25 VET 2007
	* Added BroadSoft VSA dictionary supplied by j7 - Fixed typo
	within it
	* Extracted binary packet from the sample provided by j7 and
	added standard packet decoding test	

1.51	Mon Nov 13 21:08:28 VET 2006
	* Improve the ->dump() and ->str_dump() in ::Packet
	* Add the ->auth_*_verify() methods and tests
	* Dictionaries can now use the vendor name everywhere
	* Added all the dictionaries from Ethereal for completeness
	* Shipped dictionaries were cleaned up. IMPORTANT: Legacy,
	  obsolete entries have been commented. Please review the
	  dictionary files or keep the ones currently in production
	  before installing.
	* Added pseudo-support for ipv6addr, ifid and date types
	* Limit the packet authenticator to 16 bytes
	* Tagged attribue support is broken/incomplete - Need examples
	  to properly write tests and fill in missing functionality
	* ->password() now accepts an optional attribute to work with
	  instead of the default 'User-Password'

1.50	Mon Oct 23 15:43:20 VET 2006
	Applied patch by Chris that adds support for tagged
	Applied patch from Flavio, adding this:
	* [] accept a new keyword in dictionary file, namely
	  "PACKET", that allows to define packet types
	* [] these packet types default to the current
	  state-of-the-art according to
	* [] the packet types can be accessed via ad-hoc
	* [] the constructor has been extended to accept
	  a list of dictionary files to load upon creation (instead of
	  a single one)
	* [] hardcoded mapping hashes in pack() and unpack()
	  methods are now loaded from the dictionary
	Bumped version to 1.50 in the .pm files.

1.49	Wed Aug  9 11:57:52 VET 2006
	- Making dictionaries case-insensitive seems to breaks old
	code in hard to debug ways. This decision was officially
	- set_password now accepts an optional attribute argmuent, to
	tell the code where to store the encripted password. Still
	defaults to 'User-Password'

1.46	Mon Jul 31 17:28:16 VET 2006
	- Dictionaries now can be merged with each other, as suggested
	by Kevin Steves
	- Accessors for dictionary entries now use lc() to match what
	is done at parse time
	- Dictionaries are now officially case-insensitive
	- Various documentation improvements and updates
	- Added code against bug in Alcatel 5620 SAM Release 3.0
	(Improper attribute type). Possibly helpful in other cases as

1.45	Thu Oct 16 10:45:02 VET 2003
	- Added support for "octets" as requested by Alex Chen
	- Improved / added tests. This now requires Test::More
	- Understands the VENDOR syntax for FreeRadius

1.44	Tue Jan  7 23:06:12 VET 2003
	- By default, tuples not in the dictionary are now ignored.
	- Added ->show_unknown_entries() to issue warn()s for each unknown
	  tuple found in the packets.

1.43	Thu Dec 20 15:36:42 GMT 2001
	Changes by Tony Mountifield <>
	- added set_password method to generate client password correctly
	- added unset_attr method to remove an attribute from a Packet
	- added to demonstrate auth and acct
	- Added User-Password (as per RFC 2138) both in the code and
	in the dictionaries [There's some (broken) software that insists
	in 'Password', so this is used unless 'User-Password' is present -lem]
	- corrected syntax of the "Welcome, Larry" reply message example.

1.42    Fri Jul  6 12:22:36 VET 2001
	- Fixed sobe warnings in the packet dump code. (Thanks to Kevin Payne).

1.41	Fri May 11 10:54:19 EDT 2001
	Changes by Jim Harle <> (Thanks Jim! -lem)
	- added 3com dictionary
	- added example radius<->ldap server
	- fixed examples to show correct module name
	- made Digest::MD5 a prerequisite in Makefile.PL changes
	- allow hex and octal constants in dictionary file
	- give more details about unknown vendors changes
	- use Digest::MD5 instead of MD5 (newer)
	- distinguishes between garbled and unknown VSAs
	- individual garbled/unknown VSAs only printed once
	- make sure empty passwords don't cause undefined if run with -w
	- cleaned up password length issues when running with Authen::Radius
	- made indenting in code regular
	Changes by lem
	- Minor edits here and there
	- Errors produced by Net::Radius::Packet are not print'ed but warn'ed 
	so that they can be catched with $SIG{__WARN__}.
	- Added examples/ to show how to use some basic
	- Added ->str_dump to provide the output of a packet dump in
	 a string.
1.31    Tue 20 Feb 21:05:00 VET 2001
	- Fixed so that make test works
	- Added mods suggested by Quan Choi regarding the packing
	of VSAs with 3Com VSAs

1.20	Tue 09 Nov 17:09:00 VET 1999
	- Added modifications sent by Ian Smith <>
	to the VSA code. This allows VSAs to be sent and understood
	properly by the USR/3COM Total Control family. This has not
	been individually tested.

1.10	Sat 23 Jan 19:52:00 VET 1999
	- VSAs now can appear multiple times in a packet. This changes
	slightly the interface of the VSAs accessors

1.10	Fri 22 Jan 12:31:00 VET 1999
	- Added 'date' attribute type. This is used by certain 
	- Garbled packets no longer attempt to call an undef
	code reference in unpack()
	- Added some suport for Vendor-Specific attributes

1.00  Fri 22 Aug 09:22:16 EDT 1997
	- first released version