TRIVIAL-LDAP v0.80

TRIVIAL-LDAP is a one file, all Common Lisp client implementation of
parts of RFC 2261.

WARNING:

This is beta software. While I believe the API
documented below is correct it is subject to change. Also, do
not run execute the example.lisp program against a production LDAP
directory, it will delete your entries.

Introduction

This LDAP client came about as a result of
some functionality I required for a different project altogether.
As a result it provides functionality that is general enough but
probably not in typical low-level API fashion. (For instance, a
"real" LDAP library would probably tackle the BER encoding
separately.) However, as there is a lack of Common Lisp LDAP
clients out there I thought I'd share.

I am open to both requests for features and suggestions for
improving my Lisp code. There are features I will be implementing
in the short term but for the sake of not creating false
expectations neither a comprehensive list nor timeframe is
available.

You can reach me at montuori@gmail.com.

Changes

2007-01-12 (v0.80)

Converted from trivial-socket to usocket: indications
were that trivial-socket has been deprecated.

Added support for SSL with CL+SSL. Setting the ldap
object slot sslflag to T or
the port slot to 636 will force an encrypted
connection. Do note that this is not TLS, just ldaps://
... I don't require TLS; if you do, drop me a line.

Added functionality to ease the pain of short slapd
idletimeouts. The ldap object
slot reuse-connection may be set to NIL (the
default) to not attempt reopening connections, T to reopen
the connection before each request, or TRIVIAL-LDAP:REBIND
if the connection should be opened and a bind message sent
before each request (except, of course, the bind request
itself).

A couple of documentation and logic bugs were corrected

Acknowledgments

I would like to thank Zach Beane for his
many helpful comments and suggestions. Thanks also to Ed Symanzik
for pointing out a number inconsistencies in the code and
documentation.

Also, anod to my client, Brandeis University, for not fretting too
much when I break out emacs + slime to administrate their LDAP
directories.

License

TRIVIAL-LDAP is distributed under the Clarified
Artistic License, a copy of which is included in the downloadable
package.