0.58 -- Mon Dec 23 17:35:53 CET 2013

Bug Fixes:
* RT#91210: Paged.pm: fix example code
* RT#90459: LDAP.pm: make LDAPS work after LDAP+start_tls
* RT#91177: AD.pm: fix change_ADpassword()
* RT#88792: Constant.pm: add LDAP_CONTROL_SORTRESPONSE

Enhancements:
* Filter.pod: remove misleading text
* typo fixes
* RT#91156: add META.json
* DSML.pm, Protocol/ldap.pm: use MIME::Base64::decode()
* make MIME::Base64 mandatory
* README: update optional modules, slight reorganization
* Entry.pod: update documentation of N:L:E->update
* Makefile.PL: require Text::Soundex for tests

0.57 -- Sun Jul 21 18:35:12 CEST 2013

COMPATIBILITY WARNING:
The bug fix "LDAP.pm: new parameter bind(sasl_host => SASLHOST)"
is an incompatible change that may break some corner-case configurations
* that use SASL for authentication and
* where the SASL host name differs from the host name connecting to.

The incompatible change was necessary as it was not possible to fix
the issue which was introduced in perl-ldap 0.37 in a compatible way.

See Net::LDAP's manual page for the details on "sasl_host".

Bug Fixes:
* LDAP.pm: new parameter bind(sasl_host => SASLHOST)
* Entry.pm: ignore options when update()ing LDIF
* Entry.pm: let update() fail correctly on illegal target
* RT#86053: FAQ.pod: fix spelling error
* *.{pm,pod}: lots of more grammar & spelling fixes / harmonizations

Enhancements:
* LDAP.pm: use data_ready() in process()
* Util.pm: simplify return on error
* Constant.pm: add constant LDAP_CONTROL_NOOP
* Schema.pm: call isa() as recommented in UNIVERSAL.pm

0.56 -- Sat Jun 8 13:14:47 CEST 2013

Bug Fixes:
* RT#85941: LDAP.pm: new method data_ready()
* RT#84886: Control/Relax.pm: fix typo in documentation

Enhancements:
* FAQ.pod: add more directory servers
* t/07filtermatch.t: skip some tests unless Text::Soundex is installed
* t/74matchedvalues.t: new, tests for MatchedValues control
* t/73assert.t: new, tests for Assertion control
* LDIF.pm: overhaul
  - flexibilize mode handling, accept PerlIO layers
  - get rid of dependency on Symbol & SelectSaver
  - convert _write_... to object methods
  - use indirect file handles for URLs
* LWP/Protocol/ldap.pm: use regex as 1st arg to split()

0.55 -- Tue Apr 23 11:18:15 CEST 2013

Bug Fixes:
RT#84410: PersistentSearch.pm: use $message->pop_entry() in example
RT#84774: Constant.pm: unbreak Novell eDirectory constants

Enhancements:
Control/ManageDsaIT.pm: update documentation & simplify a bit
Control/Relax.pm: new
Constant.pm: add LDAP_CONTROL_RELAX
LDAP.pod: omit space from filter in synopsis
FAQ.pod: don't talk of "2 lines" when there's only one
Extra/eDirectory.pm: fix typo, space police

0.54 -- Fri Mar 29 12:07:40 CET 2013

Bug Fixes:
* RT#73202: LDIF.pm: Base64-encode values ending in spaces
* RT#83815: fix typo/bug in example for root_dse

Enhancements:
* FAQ.pod: mention Dancer::Plugin::LDAP, update example
* Extra/eDirectory.pm: new; extensions for eDirectory
* Constant.pm: add constants for Novell eDirectory
* LDIF.pm: clean up handling of mode parameter
* LDIF.pm: partially support controls when reading
* Util.pm: add time conversion functions
* Makefile.PL: update recommends, add comments on core modules
* FAQ.pod: update info on required/optional modules
* LDAP.pod,FAQ.pod: harmonize documentation of scope values

0.53 -- Sat Jan 26 18:23:35 CET 2013

Bug Fixes:
* various clarification & fixes in documentation
* t/7{1pre,2post}read.t: don't use deprecated methods

Enhancements:
* Filter.pm: new method negate()
* Util.pm: new function ldap_url_parse()
* RT#77716: LDAP.pm: new option keepalive for new()
* LDAP.pm: convert scheme to lowercase in new()
* FAQ.pod: how to search all members of a large AD group
* FAQ.pod: how to do nested group searches in AD

0.52 -- Tue Jan 1 13:54:22 CET 2013

Bug Fixes:
* fix PreRead & PostRead controls
* AD.pm: fix typo in documentation

Enhancements:
* add tests for PreRead & PostRead controls
* FAQ.pm: example for certificateExactMatch
* coding style overhaul:
  * use single-quoted strings where possible
  * 2 SPACEs before postfix if,unless,or,and
  * SPACE after comma
  * SPACE between if,elsif,unless,while,for and (
  * make private lexical variables more private
  * unquote identifiers before =>
  * unquote identifiers used as hash keys

0.51 -- Sat Dec 1 14:37:35 CET 2012

Bug Fixes:
* RT#81380: in Filter.pm unescape hexpairs and ( ) \ * only
* tests: compare files in "text mode"
* Makefile.PL: mention all requirements for tests

Enhancements:
* Schema.pod: document attribute_syntax()
* contrib/schema2ad.pl: new, convert schema file to something AD can digest

0.50 -- Sat Nov 24 13:03:45 CET 2012

Bug Fixes:
* t/07filtermatch.t: use core module Text::Soundex instead of String::Approx
* Message.pm: fix regression w.r.t. Net::LDAP::Message::Dummy

Enhancements:
* Makefile.PL: make dependencies reflect reality better
* LDAP.pm: avoid warning in new() that might have occurred in corner cases

0.50_01 -- Sat Nov 17 18:05:15 CET 2012

Bug Fixes:
* RT#80482 fix display of =item inet6 in LDAP.pod
* RT#66753: new key & cert for SSL server tests
* RT#79763 Net::LDAP::Util's $VERSION increased
* t/06constant.t: numbering glitch in t/06constant.t
* FilterMatch.pm: fix mapping of greaterOrEqual
* FAQ.pod: small fixes

Enhancements:
* add constant LDAP_PROXY_AUTHZ_FAILURE
* FilterMatch.pm: complete overhaul
  - update matching rules known in OpenLDAP
  - support matching rules for extensibleMatch
  - avoid warning if no matching rule is found
  - add specific implementations for a lot of rules
* global overhaul towards Perl 5.8 features
  - declare @ISA and $VERSION as package-local
  - replace 'use vars' by 'our'.
* Makefile.PL: overhaul
* tests: cleanup & extensions
  - convert to Test::More
  - t/common.pl: allow client() to take options for Net::LDAP
  - t/common.pl: get rid of local compare function
  - t/03schema.t: overhaul, update data/schema.in
  - t/07filtermatch.t: new, tests for Net::LDAP::FilterMatch
  - t/40connect.t: new, test for IPv4 / IPv6 connections
  - reorganize servers tests: rename t/5X*.t -> t/4(X+1)*.t
  - t/47ipc.t: add TLS tests
  - t/60cancel.t: new, tests for Net::LDAP::Extension::Cancel
  - t/70sortctrl.t: make it a server test & add multi-attribute testcase

0.49 -- Sat Oct 5 10:00:30 CEST 2012

Bug Fixes:
* RT#79763 extend ldap_explode_dn() for RFC 4514
* RT#77291 canonicalize host name with ldapi://
* LDAP.pm: don't try to set errors on undefined objects

Extensions:
* Net/LDAP/Extra/AD.pm:  convenience functions for AD
* various documentation updates

0.48 -- Thu Sep 20 10:55:20 CEST 2012

Bug Fixes:
* Util.pm: fix bug in escape_dn_value()
* t/55ssl.t: fix typos in output text
* LDIF.pm: with encode => 'canonical', do mbcescape DNs
* the usual typo fixes in docs

Enhancements:
* ASN.pm: adapt to RFC 4511
* Extension/{SetPassword,Refresh}.pm: polish ASN.1 definition
* LWP/Protocol/ldap.pm: respond with requested MIME type
* LWP/Protocol/ldap.pm: document 'x-format' URI extension
* LWP/Protocol/ldap.pm: add DSMLv1 as output format
* test routines updated to work with recent OpenLDAP
* removed trailing spaces
* support OpenLDAP extension: scope => "children"

0.47 -- Sun Sep 16 12:00:30 CEST 2012

Bug Fixes
* contrib/ldifdiff.pl: fix POD
* Intermediate/SyncInfo.pm: fix newcookie() method
* LWP/Protocol/ldap.pm: complete overhaul

Enhancements
* more feature constants in Net/LDAP/Constant.pm
* new features & documentation for LWP/Protocol/ldap.pm
* LWP/Protocol/ldapi.pm: support ldapi:// URIs with LWP
* contrib/LWPsearch.pl: demo program for LWP::Protocol::ldap*
* update link list in the FAQ
* update references to RFCs

0.46 -- Wed Sep 5 18:09:00 CEST 2012

Bug Fixes
  * LDAP.pm: unbreak - make done a real sub
  * Message.pm: fix typo, i.e. add forgotten ';'

Enhancements:
  * FAQ.pod: update URLs a bit more

0.45 -- Wed Sep 5 11:20:46 CEST 2012

Bug Fixes
  * RT#72108 fix non-blocking IO with SSL
  * RT#74572 fix $entry->update($ldif)
  * RT#74759 fix POD spelling/grammar errors
  * RT#77180 use "sslv23" instead of "sslv2/3" for sslversion
  * work around a warning in Authen::SASL::Perl <= 2.1.5
  * various typo fixes in documentation

Enhancements
  * RT#77458 re-work IPv6 support
  * Don't accumulate intermediate messages passed to a callback.
  * slightly extend Net::LDAP::Entry->update() and document it
  * convenience alias done() for Net::LDAP->unbind()
  * various updates to the FAQ

0.44 -- Sun Jan 29 10:36:08 CET 2012

Bug Fixes
  * un-break certificate verification
  * fixes for the ProxyAuthorization control
  * fix typos & spelling errors in POD

Enhancements
  * MANIFEST.SKIP: sync with Perl 5.14.2's ExtUtils version
  * Makefile.PL: update resource info on repository
  * new extended operation Net::LDAP::Extension::Cancel
  * new control Net::LDAP::Control::MatchedValues
  * new control Net::LDAP::Control::Assertion
  * update reference documents in POD
  * extend documentation for Pre-Read & Post-Read controls
  * add error string for LDAP_VLV_ERROR
  * add result codes for VLV and cancel
  * add constant for DontUseCopy control
  * add constant for PermissiveModify control

0.43 -- Sat Sep 3 12:50:49 CDT 2011

  * Fix copy & paste errors in Net::LDAP::Message

0.42 -- Sat Sep 3 07:46:06 CDT 2011

  * Check whether LDAP socket object has a peerhost() method defined before calling it. This fixes SASL authentication over UNIX domain (ldapi://) sockets. [Chris Mikkelson]

0.41 -- Sat Sep 3 07:37:31 CDT 2011

  * use of non-localised $_ in Net::LDAP::Constant causes prolems in lemonldap-ng [Damyan Ivanov]
  * Added cn,o,ou to the default set of case-insensitive attributes [Kartik Subbarao]
  * Entry.pod: fix typos [Peter Marschall]
  * extend Net::LDAP::Entry->update() to take LDIF objects [Peter Marschall]
  * Specify that we want to use the 'ldap' scheme to verify certificates. [Kevan Carstensen]

0.4001 -- Wed Mar 24 14:54:35 CDT 2010

  * Update Module::Install and generate META.yml

0.40 -- Thu Mar 11 20:56:28 CST 2010

  * Avoid 'cookie parsing error' on OpenLDAP 2.3 [Mathieu Parent]
  * Added e-syncRefreshRequired constant [Mathieu Parent]
  * Minor typo fix in documentation [Quanah Gibson-Mount]
  * Update CREDITS for Mathieu Parent
  * Remove runtime dependency on DATA handle for constants
  * Clarify documentation for gen_password
  * Allow caller to pass Authen::SASL client_new object
  * fix typo [Peter Marschall]
  * use current IO::Socket::SSL's method start_SSL instead of deprecated function socketToSSL; raise required IO::Socket:SSL version appropriately [Peter Marschall]
  * FilterMatch.pm: fix regex treatment in _{cis,exact}_substrings(). [Peter Marschall]
  * FilterMatch.pm: correct # of args in function declarations/definitions [Peter Marschall]
  * Don't duplicate documentation [Mathieu Parent]
  * Added numcmp option to compare attributes numerically. [Kartik Subbarao]
  * Avoid infinite loop when authenticating with EXTERNAL mechanism
  * Add Net::LDAP::Extension::Refresh as described in RFC2589 [Etienne Bagnoud]
  * RT#40068 Fix tests to work with 2.4.11
  * Add ldif method to Net::LDAP::Entry
  * RT#46111 Make LWP::Protocol::ldap return ldif when requested
  * RT#51165 Compact multiple consecutive spaces in Net::LDAP::Util::canonical_dn
  * RT#46125 Add LWP::Protocol::ldaps to support ldaps: urls
  * RT#44110 Fix Net::LDAP::LDIF->current_lines


perl-ldap 0.39 -- Mon Oct 27 15:02:37 CDT 2008
==============================================

Bug Fixes
 * Several fixes to the handling of IntermediateMessage and LDAP Content synchronisation
 * Fix dsmt test to not fail on win32
 * Fix Net::LDAP::Util to not cause Undefined subroutine &Net::LDAP::Util::ldap_error_desc

perl-ldap 0.38 -- Sun Sep 21 09:17:25 CDT 2008
==============================================

Bug Fixes
 * Fix bug in Net::LDAP::Extension using wrong field for resultCode
 * Fix Net::LDAP::Control::PasswordPolicy decoding bug.

Enhancements
 * Net::LDAP::Extension::SetPassword now supports controls

perl-ldap 0.37 -- Thu Aug 28 07:48:13 CDT 2008
==============================================

Bug Fixes
 * Pass correct hostname to SASL when connecting to a round-robin
 * Return the SASL error message when sasl client_start fails

Enhancements
 * Add Modify Increment (RFC 4525) support
 * Add Content Synchronization (RFC 4453) support

perl-ldap 0.36 -- Mon Apr 21 10:00:09 CDT 2008
==============================================

Bug Fixes
 * Fixed Net::LDAP::constant to return correct names for values 0 - 9
 * Fixed DSML test to be more tolerant of whitespace

Enhancements
 * Added controls for PreRead & PostRead

perl-ldap 0.35 -- Sun Mar 30 13:35:04 CDT 2008
==============================================

Bug Fixes
 * Fix wrapping in Net::LDAP::LDIF
 * Patch from Gergely Santa to allow entries with no attributes in LDIF
 * Fix modr?dn to fetch values in sclar context
 * send packets in sizes that IO::Socket::SSL can chew
 * Avoid attept to use undef as hash reference in ->sync
 * Ensure Bind.pm presents final server response to SASL object

Enhancements
 * Added vendorName/vendorVersion (RFC 3045) to root_dse()
 * add option to support IPv6
 * Allow Entry->deleted to be called with a single value is well as array ref
 * Added Net::LDAP::Control::PasswordPolicy to support draft RFC

perl-ldap 0.34 -- Sat Feb 10 17:39:49 CST 2007
==============================================

Bug Fixes
  * Improve dealing with mixed case attributes in Net::LDAP::Entry
  * Documentation fixes & updates
  * Don't let Net::LDAP->bind() die on SASL errors
  * Fix case-folding in Net::LDAP::Util::ldap_explode_dn()
  * Saner default for ldapi socket
  * Update test suite to work with recent OpenLDAP versions
  * The usual bunch of typo fixes
  * Fix escaping on non-ascii characters in Net::LDAP::Filter

Enhancements
  * Flexible handling of line ends in Net::LDAP::LDIF when reading
  * Improve writing speed in Net::LDAP::LDIF
  * Net::LDAP accessor methods for scheme, host, port, URI connected to
  * New checkcrl option to Net::LDAP->new() to do CRL checking
  * New package Net::LDAP::Filtermatch for client side filtering
  * More ASN1 messages handled in Net::LDAP:ASN: IntermediateResponse
  * Option 'raw' to return Perl UTF-8 strings from queries (requires Perl 5.8)
  * Support  Active Directory's extendedAttributeInfo schema information
  * Method to find matchingrule for an attribute in Net::LDAP:Schema
  * Updated build dependecies: GSSAPI support, ..


perl-ldap 0.33 -- Mon Apr 25 08:02:26 CDT 2005
==============================================

Bug Fixes
  * Removed superfluous "print" in Net::LDAP::LDIF before _write_attr on writing
  * Base64 encode any value starting with < in Net::LDAP::LDIF
  * Documentation updates
  * Fix case insensitivity issues in contrib/ldifdiff.pl

Enhancements
  * Added Net::LDAP::Extension::WhoAmI
  * Added write_version() and handle() methods to Net::LDAP::LDIF
  * Updated Net::LDAP::Control::ProxyAuth to support new OID from latest rfc-draft
  * Added contrib/recursive-ldap-delete.pl
  * Added ability to do case in comparisons to contrib/ldifsort.pl
  

perl-ldap 0.3202 -- Mon Jul 19 11:44:08 BST 2004
================================================

Bug Fixes
  * Fixed case typo in Makefile.PL

perl-ldap 0.3201 -- Wed Jul 14 21:52:59 BST 2004

Bug Fixes
  * Fixed dependancies in Makefile.PL

perl-ldap 0.32 --

Bug Fixes
  * Documentation updates
  * Fixed LDIF output from ldapsearch command
  * Return an error if no filter is passed to Net::LDAP::filter->parse
  * Fixed bug handling comments in LDIF parser
  * Fix to ldapsearch for passing scope with -s
  * Do not send a fake userid in SASL binds
  * Net::LDAP::Schema->parse() now returns undef on errors

Enhancements
  * Added supportedFeatures to the default list of attributes
    fetched by ->root_dse
  * Added option to sort attributes in LDIF output, with objectclass
    being first floowed by all other attributes in alphabetical order
  * Add escape/unescape filters/DN utility functions
  * Added support for reading LDIF URL attributes using file://
  * The socket created by new can now be bound to a local address & port
  * Any controls returned by the server with each entry as a result from a search
    are now available in the callback function
  * Added classes for EntryChange, PersistentSearch and ManageDsaIT controls
  * Allow options passed to Net::LDAP::Entry-.update to be passed to the
    Net::LDAP method that is finally called

perl-ldap 0.31  1 Jan 2004
==========================

* Fixed bug that could cause methods to return an integer instead of an object
* Fixed bug causing Schema.pm to ignore superior classes that had no attributes
* Documentation updates
* Updates to LDIF module

perl-ldap 0.30 17 Oct 2003
==========================

* Documentation updates
* Fixed bug checking return value of client_step in bind()
* Fixed bug in Entry.pm causing method calls on unblessed references

perl-ldap 0.29 24 Jun 2003
==========================

* Workaround bug in IO::Socket::SSL when startTLS fails
* Fix reference loop memory leak problem
* Add a SIGNATURE to the distribution
* Re-added support for :all in the import list to get all constants
* New methods error_name, error_text, error_desc added to Message.pm

perl-ldap 0.28 19 May 2003
==========================

* Net::LDAP::Entry object can now be cloned
* New class Net::LDAP::RootDSE
* Net::LDAP->new can now accept URLs for the host
* Added support for ldapi:
* Now supports Notice of disconnection
* Net::LDAP::Constant now implements its own import function, it no
  longer inherits from Exporter. So :all and /^LDAP_CONTROL/ etc
  are no longer valid arguments for import. The result is that
  Net::LDAP::Constant only defined the subs that are needed.

perl-ldap 0.27 27 Jan 2003
==========================

* Default protocol version is now version 3
* Fixed support for multiple hosts to be passed to new

perl-ldap 0.26 18 Jul 2002
==========================

* canonical_dn and ldap_explode_dn have a new implementation.
* Net::LDAP::DSML reimplemented using XML::SAX
* Net::LDAP::Schema reimplemented. API needed to change to fix
  many bugs in previous implementation
* Added support for version number in Net::LDAP::LDIF
  (support for fill version still todo)

perl-ldap 0.251 15 May 2002
===========================

* Added support for Adamson's SASL authentication
* Both Cyrus SASL and Perl SASL modules are sought

perl-ldap 0.25 29 Oct 2001
==========================

* Added support for EXTERNAL SASL authentication
* Caller can now specify attributes to return from root_dse
* More scripts added to contrib
* Various bug fixes
* Caller can now specify sslversion for LDAPS and start_tls

perl-ldap 0.24 17 July 2001
===========================

* Added support for startTLS
* Better error checking in Net::LDAP methods
* VLV control now works
* Can now use oid or name for the matchingRule in filter extensible matches
* Major overhaul of LDIF.pm
* $schema->name2oid is now context sensetive
* test suite now works with openldap2

perl-ldap 0.23 April 20 2001
============================

* Fixed bug in Net::LDAP::Filter when the filter contained an escaped *
* Fixed SASL bind to call challenge with serverSaslCreds
* Fixed some uninit errors in Net::LDAP::Entry
* Various documention updates
* Added Net::LDAP::Util::canonical_dn
* Net::LDAP::LDIF will now call canonical_dn for any DN which
  contains non-printable characters
* Added support for matchingruleuse, ditstructurerules, ditcontentrules
  and nameForms into Net::LDAP::Schema
* The ->schema method in Net::LDAP has changed how it finds the
  schema to return. The new method is more correct, but there may
  be a possibility that this change has created an incompatability.
* New control module Net::LDAP::Control::ProxyAuth from
  Olivier Dubois added
* Added support for moddn in Net::LDAP::LDIF.
* Minor fixes to the DSML output (fixing illegal XML.)



perl-ldap 0.22 September 14 2000
================================

* Quick release to fix memory problem with 5.6.0

perl-ldap 0.21 September 12 2000
================================

* Change ->get back to return what 0.19 returned
* Deprecate ->get in favor of ->get_value
* Net::LDAP::Schema now supports matchingRules
* Added experimental onerror option to ->new
* New FAQ by Clif Harden

perl-ldap 0.20 August 3 2000
============================

* Added INSTALL and CREDITS files
* Net::LDAP::Entry ->get and ->attributes methods now support options
* Added Net::LDAP::DSML from Mark Wilcox
* Added Net::LDAPS from Chris Ridd
* Many documentation updates
* Several fixes to ::Control::* classes, they should now work as intended.
* Net::LDAP::Entry->get now always returns a scalar result as documented.
* bin/ldapsearch now requires URI-1.08

perl-ldap 0.19 June 8 2000
============================

* Fixed bug which caused 2nd and subsequent binds to be anonymous.
* Fixed bug in moddn.
* Fix bug which caused a call to ->pop_entry or ->shift_entry
  to hang forever.

perl-ldap 0.18 May 22 2000
============================

* Now passes -wc with 5.004, 5.005_03 and 5.6.0
* Bundle now correctly references Convert::ASN1 instead of
  the non-existant Convert::ASN
* Net::LDAP::Filter will now catch the case of unmatched
  ()'s and return an error
* as_struct, which was broken in the changeover to Convert::ASN1,
  now works again.

 KNOWN PROBLEMS
 --------------

 Test t/02filter.t fails with perl 5.6.0 compiled with threads enabled
 This is due to a bug in 5.6.0 when compiled with threads, see
 http://bugs.perl.org/perlbug.cgi?req=tidmids&tidmids=20000409.003&range=32323&format=h

perl-ldap 0.17 May 12 2000
============================

* Change to use asn_read instead of asn_resc. This seems to have
  fixed the known problem with 0.16
* Various bug fixes, see ChangeLog

perl-ldap 0.16 April 27 2000
============================

* This is the first release which uses Convert::ASN1 instead of
  Convert::BER. This should show an increase in performance.
* Added support for LDAPv3 controls. Controls supported are
  - VirtualListView
  - Sort
  - Paged
* HTML version of the documentation is now included in the
  distribution
* Added Bundle::Net::LDAP
* Net::LDAP->schema can now be told where to search for the schema.

 KNOWN PROBLEMS
 --------------

  In a pre-release of 0.16 it has been seen that a search result may
  not contain all entries and $mesg->code will be LDAP_DECODING_ERROR.
  This has been seen when the client is running on NT or Linux and the
  server is an Exchange server.
