-
Major changes:
-
Required Ruby version is >=1.9.3
-
-
Major enhancements:
-
Added alias dereferencing (@ngwilson)
-
BER now unescapes characters that are already escaped in the source string (@jzinn)
-
BerIdentifiedString will now fall back to ASCII-8 encoding if the source Ruby object cannot be encoded in UTF-8 (@lfu)
-
-
Bug fixes:
-
Fixed nil variable error when following a reference response (@cmdrclueless)
-
Fixed FilterParser unable to parse multibyte strings (@satoryu)
-
Return ConverterNotFound when dealing with a potentially corrupt data response (@jamuc)
-
-
Bug Fixes:
-
Bundler should now work again
-
-
Major changes:
-
Now uses UTF-8 strings instead of ASCII-8 per the LDAP RFC
-
-
Major Enhancements:
-
Adding continuation reference processing
-
-
Bug Fixes:
-
Fixes usupported object type #139
-
Fixes Net::LDAP namespace errors
-
Return nil instead of an empty array if the search fails
-
-
Bug Fixes:
-
Fixed the call to Net::LDAP.modify_ops from Net::LDAP#modify.
-
-
Bug Fixes:
-
Net::LDAP.modify_ops was broken and is now fixed.
-
-
Major Enhancements:
-
Net::LDAP::Filter changes:
-
Filters can only be constructed using our custom constructors (eq, ge, etc.). Cleaned up the code to reflect the private new.
-
Fixed #to_ber to output a BER representation for :ne filters. Simplified the BER construction for substring matching.
-
Added Filter.join(left, right), Filter.intersect(left, right), and Filter.negate(filter) to match Filter#&, Filter#|, and Filter#~@ to prevent those operators from having problems with the private new.
-
Added Filter.present and Filter.present? aliases for the method previously only known as Filter.pres.
-
Added Filter.escape to escape strings for use in filters, based on rfc4515.
-
Added Filter.equals, Filter.begins, Filter.ends and Filter.contains, which automatically escape input for use in a filter string.
-
Cleaned up Net::LDAP::Filter::FilterParser to handle branches better. Fixed some of the regular expressions to be more canonically defined.
-
Correctly handles single-branch branches.
-
Cleaned up the string representation of Filter objects.
-
Added experimental support for RFC4515 extensible matching (e.g., “(cn:caseExactMatch:=Fred Flintstone)”); provided by “nowhereman”.
-
-
Net::LDAP::DN class representing an automatically escaping/unescaping distinguished name for LDAP queries.
-
-
Minor Enhancements:
-
SSL capabilities will be enabled or disabled based on whether we can load OpenSSL successfully or not.
-
Moved the core class extensions extensions from being in the Net::LDAP hierarchy to the Net::BER hierarchy as most of the methods therein are related to BER-encoding values. This will make extracting Net::BER from Net::LDAP easier in the future.
-
Added some unit tests for the BER core extensions.
-
Paging controls are only sent where they are supported.
-
-
Documentation Changes:
-
Core class extension methods under Net::BER.
-
Extensive changes to Net::BER documentation.
-
Cleaned up some rdoc oddities, suppressed empty documentation sections where possible.
-
Added a document describing how to contribute to Net::LDAP most effectively.
-
Added a document recognizing contributors to Net::LDAP.
-
-
Extended unit testing:
-
Added some unit tests for the BER core extensions.
-
The LDIF test data file was split for Ruby 1.9 regexp support.
-
Added a cruisecontrol.rb task.
-
Converted some test/unit tests to specs.
-
-
Code clean-up:
-
Made the formatting of code consistent across all files.
-
Removed Net::BER::BERParser::TagClasses as it does not appear to be used.
-
Replaced calls to #to_a with calls to Kernel#Array; since Ruby 1.8.3, the default #to_a implementation has been deprecated and should be replaced either with calls to Kernel#Array or [value].flatten(1).
-
Modified #add and #modify to return a Pdu#result_code instead of a Pdu#result. This may be changed in Net::LDAP 1.0 to return the full Pdu#result, but if we do so, it will be that way for all LDAP calls involving Pdu objects.
-
Renamed Net::LDAP::Psw to Net::LDAP::Password with a corresponding filename change.
-
Removed the stub file lib/net/ldif.rb and class Net::LDIF.
-
-
Project Management:
-
Changed the license from Ruby + GPL to MIT with the agreement of the original author (Francis Cianfrocca) and the named contributors. Versions prior to 0.2.0 are still available under the Ruby + GPL license.
-
-
Fixing a critical problem with sockets.
-
Small fixes throughout, more to come.
-
Ruby 1.9 support added.
-
Ruby 1.8.6 and below support removed. If we can figure out a compatible way to reintroduce this, we will.
-
New maintainers, new project repository location. Please see the README.txt.
-
13 minor enhancements:
-
Added Net::LDAP::Entry#to_ldif
-
Supported rootDSE searches with a new API.
-
Added [preliminary (still undocumented) support for SASL authentication.
-
Supported several constructs from the server side of the LDAP protocol.
-
Added a “consuming” String#read_ber! method.
-
Added some support for SNMP data-handling.
-
Belatedly added a patch contributed by Kouhei Sutou last October. The patch adds start_tls support.
-
Added Net::LDAP#search_subschema_entry
-
Added Net::LDAP::Filter#parse_ber, which constructs Net::LDAP::Filter objects directly from BER objects that represent search filters in LDAP SearchRequest packets.
-
Added Net::LDAP::Filter#execute, which allows arbitrary processing based on LDAP filters.
-
Changed Net::LDAP::Entry so it can be marshalled and unmarshalled. Thanks to an anonymous feature requester who only left the name “Jammy.”
-
Added support for binary values in Net::LDAP::Entry LDIF conversions and marshalling.
-
Migrated to ‘hoe’ as the new project droid.
-
-
14 bugs fixed:
-
Silenced some annoying warnings in filter.rb. Thanks to “barjunk” for pointing this out.
-
Some fairly extensive performance optimizations in the BER parser.
-
Fixed a bug in Net::LDAP::Entry::from_single_ldif_string noticed by Matthias Tarasiewicz.
-
Removed an erroneous LdapError value, noticed by Kouhei Sutou.
-
Supported attributes containing blanks (cn=Babs Jensen) to Filter#construct. Suggested by an anonymous Rubyforge user.
-
Added missing syntactic support for Filter ANDs, NOTs and a few other things.
-
Extended support for server-reported error messages. This was provisionally added to Net::LDAP#add, and eventually will be added to other methods.
-
Fixed bug in Net::LDAP#bind. We were ignoring the passed-in auth parm. Thanks to Kouhei Sutou for spotting it.
-
Patched filter syntax to support octal XX codes. Thanks to Kouhei Sutou for the patch.
-
Applied an additional patch from Kouhei.
-
Allowed comma in filter strings, suggested by Kouhei.
-
04Sep07, Changed four error classes to inherit from StandardError rather Exception, in order to be friendlier to irb. Suggested by Kouhei.
-
Ensure connections are closed. Thanks to Kristian Meier.
-
Minor bug fixes here and there.
-
-
Undeprecated Net::LDAP#modify. Thanks to Justin Forder for providing the rationale for this.
-
Added a much-expanded set of special characters to the parser for RFC-2254 filters. Thanks to Andre Nathan.
-
Changed Net::LDAP#search so you can pass it a filter in string form. The conversion to a Net::LDAP::Filter now happens automatically.
-
Implemented Net::LDAP#bind_as (preliminary and subject to change). Thanks for Simon Claret for valuable suggestions and for helping test.
-
Fixed bug in Net::LDAP#open that was preventing #open from being called more than one on a given Net::LDAP object.
-
Added simple TLS encryption. Thanks to Garett Shulman for suggestions and for helping test.
-
Fixed malformation in distro tarball and gem.
-
Improved documentation.
-
Supported “paged search control.”
-
Added a range of API improvements.
-
Thanks to Andre Nathan, [email protected], for valuable suggestions.
-
Added support for LE and GE search filters.
-
Added support for Search referrals.
-
Fixed a regression with openldap 2.2.x and higher caused by the introduction of RFC-2696 controls. Thanks to Andre Nathan for reporting the problem.
-
Added support for RFC-2254 filter syntax.
-
Initial release.
-
Client functionality is near-complete, although the APIs are not guaranteed and may change depending on feedback from the community.
-
We’re internally working on a Ruby-based implementation of a full-featured, production-quality LDAP server, which will leverage the underlying LDAP and BER functionality in Net::LDAP.
-
Please tell us if you would be interested in seeing a public release of the LDAP server.
-
Grateful acknowledgement to Austin Ziegler, who reviewed this code and provided the release framework, including minitar.