[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: asynchronous event notification?



It not clear to me whether Howard was referring to a specific
LDAP extension, or to the set of LDAP extensions that can
be used for some form of "event notification" and/or "content
synchronization".

Anyways, while there are many LDAP extensions in this area,
slapd(8) supports one primary mechanism for content synchronization,
the LDAP Sync Operation.  This is described in
draft-zeilenga-ldup-sync (in doc/drafts or from the IETF) and is
in the queue for publication as an RFC (on Experimental).   This
extension is intended to be an alternative to the LDAP Client
Update Protocol (LCUP) published as RFC 3928 (on the Standards
Track).  It is believed that LCUP is not supported in any released
LDAP client or server.

The other mechanisms (e.g., "persistent search", "triggered search",
"dirsync", "changelog", "accesslog"*, "auditlog"*) are all vendor
specific and/or not (yet) formalized.   (* OpenLDAP specific)

At present, libldap does not include convenience functions for
most (any?) of these extensions... however, convenience functions
are certainly not necessary to make use of any of these extensions
(with a server that supports them).  One can encode and
decode the necessary protocol elements using base functions
provided in libldap.

As slapd(8) does implement the client side of LDAP Sync, it would
be nice to extract out its LDAP Sync encoding/decoding functions
into libldap convenience functions.  But until then, that would
be your LDAP sync example code (e.g., slapd/syncrepl.c).

Kurt

At 06:30 AM 11/4/2005, Jan-Piet Mens wrote:
>On Fri Nov 04 2005 at 06:52:03 CET, Howard Chu wrote:
>
>> The typical directory-friendly way of doing this is to write an LDAP 
>> client that issues a persistent search for all of the events of 
>> interest. That client can then feed the data into whatever other 
>> database you're working with.
>
>How does one issue a persistent search from the OpenLDAP C API?
>A `grep -i persistent man3/*.3' doesn't reveal a lot...
>
>        -JP