#############################################################################
#                                                                           #
#                        PerLDAP Release Notes		                    #
#                                                                           #
#############################################################################

VERSION 1.4 - AUGUST 18, 1999
=============================

This is primarily a bug fix release, however there are 5 new methods
introduced as well.  Brief descriptions follow in this document.  To get
full examples and a larger summary, see the PerLDAP Programmer's Guide.


New Methods Added
-----------------

Entry.pm:
	* getValues() - returns the array of values.
	* move() - move one attribute to another, and delete the original.
	* copy() - copy one attribute to another.
	
Conn.pm:
	* browse() - makes it easy to browse an entry.
	* compare() - compare an attribute value against a DN/entry
		    without having to do the search.	


Bug Fixes and other changes
---------------------------

Entry.pm:
	* addDNValue() - fixed wrong index for norm.
	* matchValue() - fixed missing normalization in half of case statement. 
	* setValue() - remove _delete_ flag if set, fix for saving state.
	* STORE - fixed not ignoring the internal instance variables properly.
	* Fixed numerous bugs for large attribute sets.
	* Fixed bug 4368 ("exists vs. EXISTS").
	* Fixed several loop bugs.
	* Removed all _self_obj_  references, it's obsolete in this
	  version.
	* We support each() and keys() now on the Entry object, to loop
	  through all attribute names (types).


Conn.pm:
	* close() - fixed memory leak.
	* modifyRDN() - fixed problem where we weren't updating the
			appropriate DN in the self object.
	* Fixed bug 3342 (problems adding entries with binary data).
	* getErrorCode()/getErrorString() - return LDAP_SUCCESS if no
					    LDAP connection handle.
	* add() - fixed code to handle hash array as docs indicate.
	* update() - optimization for "replace" vs "add/delete", we try to
		     use whatever LDAPMod is most efficient.

LDIF.pm:

	* Complete rewrite, by John Kristian <kristian@netscape.com>.

API.xs:
	* Fixed memory allocation problems, replacing all memory management
	  routines. This solves all known issues with ActiveState Perl.
	* More safety checks around calls to *_free().

	
Miscellaneous
-------------

	* Various other optimizations on tests and such.
	* Fixed most (all?) known memory leaks.
	* Fixed a lot of problems with Makefile.PL, adding some new targets
	  (like "make html"). Add a skeleton to "make test".
	* Fixed numerous small bugs, as reported to Mozilla.
	* We produce less warnings now, and try to "use strict" when
	  appropriate.
	* We have a new versioning scheme, conforming to standard
	  Perl. We'll change this again when Perl's new versioning system
	  is in place (allowing versions like 1.2.3).