Major enhancements:
Accept SimpleTLS/StartTLS encryption options (compatible with `OpenSSL::SSL::SSLContext#set_params`)
Bug fixes:
Parse filter strings with square and curly braces (`[]` and `{}`)
Handle connection timeout errors (`Errno::ETIMEDOUT` raised as `Net::LDAP::LdapError`)
Testing changes:
Add integration tests for StartTLS connections to OpenLDAP
Meta changes:
Update Gem release tooling (remove Hoe, use Rake)
Fix Gem release date
Major changes:
Dropped support for ruby 1.8.7, ruby >= 1.9.3 now required
Major enhancements:
Add support for search time limit parameter
Instrument received messages, PDU parsing
Minor enhancments:
Add support for querying ActiveDirectory capabilities from root dse
Bug fixes:
Fix reads for multiple concurrent requests with shared, open connections mixing up the results
Fix search size option
Fix BER encoding bug
Code clean-up:
Added integration test suite
Switch to minitest
Details
#150 Support querying ActiveDirectory capabilities when searching root dse
#142 Encode true as xFF
#124, #145, #146, #152 Cleanup gemspec
#138, #144 Track response messages by message id
#141 Magic number/constant cleanup
#119, #129, #130, #132, #133, #137 Integration tests
#115 Search timeout support
#140 Fix search size option
#139 Cleanup and inline documentation for Net::LDAP::Connection#search
#131 Instrumentation
#116 Refactor Connection#write
#126 Update gitignore
#128 Fix whitespace
#113, #121 Switch to minitest
#123 Base64 encoded dn
#114 Separate file for Net::LDAP::Connection
#104 Parse version spec in LDIF datasets
#106 ldap.modify doc fixes
#111 Fix test deprecations
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::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, andre@digirati.com.br, 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.
Generated with the Darkfish Rdoc Generator 2.