0.9.19
-----
* Fixed parsing of LDIF with CR LF line separators (GH-38).
  Thanks to doppelreim.


0.9.18
-----
* backout issue32 to compile for ruby-1.8.x.
  Thanks to SUENAGA Hiroki.


0.9.17
-----

* Use ruby object to keep LDAP search result instead of libldap's data structure.
* Use macro Check_LDAPENTRY for assertion inside native extension codes.
* Remove assertion code from macro GET_LDAPENTRY_DATA (GH-31).
  Thanks to SUENAGA Hiroki.


0.9.16
-----

* Fixed undefined method 'each' in LDAP::LDIF.mods_to_ldif (GH-26).
  Thanks to Francesco Malvezzi.


0.9.15
-----

* Accept nil for new_parent_dn for rename. Thanks to Kouhei Sutou.


0.9.14
-----

* Fixed option parsing bug for LDAP::Conn.sasl_bind. Thanks to Brian Leake.
* Added possibility to use :nocanon option in rb_ldap_conn_sasl_bind.
  See ldap_set_option(3) for more information. Thanks to Brian Leake.
* Added function conn.rename(dn, new_rdn, new_parent_dn, delete_old_rdn, sctrls, cctrls)  => self
  Modify the RDN of the entry with DN, dn, giving it the new RDN in parent new_parent_dn,
  new_rdn. If delete_old_rdn is true, the old RDN value will be deleted from the entry.
  Thanks to Marek Veber.
* Added option LDAP_OPT_NETWORK_TIMEOUT for openLDAP. Thanks to David Campbell.
* Fixed build error with GCC 4.8.1. Thanks to Kouhei Sutou.
* Add missing ldap_raname_s() function availability check. Thanks to Kouhei Sutou.


0.9.13
-----

* Prevent SyntaxError raised under Ruby 2.0.0 by line 107 regex
  (invalid multibyte escape)


0.9.12
-----

* On windows, the default ldap library became wldap32;
* Fixed compile with ruby 1.9.2.

Thank to Hiroki Najima!

* Fixed many memory leaks;
* Added functions:
    LDAP::Conn.open_uri(uri);
    LDAP::explode_dn(dn, notypes);
    LDAP::explode_rdn(rdn, notypes).

Thanks to Marek Veber and Antonio Terceiro!

* Fixed bug in ldap/ldif.rb (GH-6).

Thanks to bbense.

* Fixed LDAP::Mod data corruption.

Thanks to Aprotim Sanyal!

* Enable client certificate authentication for mozilla ldap 6.0 only.

Thanks to Yuri Arabadji!


0.9.11
-----

Allow passing SASL interaction options
    
This adds a hash parameter "options" to LDAP::Conn.sasl_bind, which
can take :authzid, :authcid, and :realm (and corresponding strings),
for SASL authentication.
    
Also, refactored the rb_scan_args inside rb_ldap_conn_sasl_bind to use
C's case fallthrough, leading to less code repetition.

Tnahks to Anthony M. Martinez.


0.9.10
-----

Added controls and referral extraction to #search_ext and #search_ext2.
Thanks to Michael Granger.


0.9.9
-----

Supported OpenLDAP 2.4.15 and higher. Thanks to Milos Jakubicek.
Gem Packaging Support. Thanks to S. Potter [mbbx6spp].


0.9.8
-----

Supported Ruby 1.9.x.


0.9.7
-----

LDAP_MOD_DELETE and LDAP_MOD_REPLACE were reversed in win/winldap.h, so
deletion and replacement operations did not work on Win32 systems.


0.9.6
-----

A segfault on FreeBSD when using AMD64 was fixed for this release.

The only other changes are minor clarifications of the documentation.


0.9.5
-----

The Windows build is now believed to work out of the box. It has been tested
on Windows XP SP2, using SVC C++ 6.0 to build the software. Thanks to Chris
Scharf <scharfie@gmail.com> for his work in this area and willingness to work
with me on fixing the problems.


0.9.4
-----

LDAP::Conn#search, LDAP::Conn#search2, LDAP::Conn#search_ext and
LDAP::Conn#search_ext2 have been modified to treat LDAP_SIZELIMIT_EXCEEDED as
success.

After using any of these four methods, the user should use LDAP::Conn#err to
check whether the error status of the Conn object is
LDAP::LDAP_SIZELIMIT_EXCEEDED. If true, the results set has been truncated by
the server.

Previously, LDAP_SIZELIMIT_EXCEEDED would raise an exception and no results
would be returned, which is not the correct behaviour if the user has
deliberately put a limit on the number of results to be returned, as might be
done in order to spare the server.


0.9.3
-----

The usability of the library on Windows platforms is currently a case of 'suck
it and see'. Some people report the code working, others report immediate
segfaults; yet others say that it worked after they made some minor
alterations to the code in order to get it to build.

Differences in Windows platform used, chosen compiler and version, plus the
variety of servers with which the code is used, conspire to result in the
exact facts of the matter not yet having been ascertained.

Most people seemed to experience some difficulty in getting the code to build
on Windows, so some effort has gone into making this better for the 0.9.3
release. This work is difficult, since I do not have a Windows build
environment at my disposal.

If you are a Windows user and you found that the code did not work in its
original form, but you managed to get it to work after some alterations, I
would be very grateful if you wrote to me to let me know what changes were
needed. Please include precise details of your build platform.
