Changes in the 3.0 Release
The following changes have been made in this release.
Support for the LDAP v3 protocol. The main new feature in this release is support for the LDAP v3 protocol. The LDAP v3 protocol is defined in the following RFCs and Internet Drafts:
The LDAP v3 protocol allows certain LDAP operations to be extended though the use of server controls. Your client can send a control with a request to the server. The server can send additional information to your client by including a control with the results it sends to your client. For example, using functions in the LDAP API, you can create, send, and receive controls that do the following:
You can also specify that the server should return additional information about the change in an entry change notification control. (This control is included with each entry sent to your client.)
In addition, the Netscape Directory SDK for C now includes functions that you can use to request extended operations from the server. Extended operations are operations that can extend the LDAP protocol in arbitrary ways.
Note that LDAP controls and extended operations are part of the LDAP v3 protocol. In order to use these features, the LDAP server that you are working with must support the LDAP v3 protocol. The Netscape Directory Server 3.x and later versions supports LDAP v3 and its features (such as controls and extended operations).
In-memory cache for search results. A memory-based cache for
search results has also been implemented in this release. See the
Netscape Directory SDK 3.0 for C Programmer's Guide
(provided in the docs directory) for information on
the new ldap_memcache_* functions.
Change in SSL support. There are two changes to SSL support in the release of the Netscape Directory SDK 3.0 for C:
cert7.db certificate
database, which is generated by Netscape Communicator.
(Previous versions of the SDK
used cert5.db databases, which are generated by Netscape
Navigator 3.x browsers, and certificate databases generated by the
Netscape Administration Server. Certificate databases that use these
older formats are no longer supported with the LDAP SSL functions.)
If the ldapssl_client_init() function returns an error,
check to make sure that you are not using an older version of the
certificate database. (The database should be named cert7.db .
Also note that before you use the certificate database, you should
make a copy of the database and use the copy. Do not use a
cert7.db if it is currently being used by Netscape
Communicator.
Changes Since the Beta 1 Release
The following changes have been made since the 3.0 Beta 1 release.
LDAP_INDEX_RANGE_ERROR has been
added. This result code is returned by an LDAP server if a
"virtual list view control" is used and the results
of the search exceed the range provided by the offset value
in the control.
ldap_controls_count() function has been
removed from the API.
LDAP_OPT_EXTRA_THREAD_FN_PTRS option allows you
to specify a struct ldap_extra_thread_fns
containing the additional function pointers that you want used.
ldapssl_advclientauth_init function
allows you to initialize your client for SSL while specifying
the location of a security module database and specifying the
level of verification of the server's certificate.
If you already have a 1.0 version of the SDK installed, install this SDK in a separate directory. Follow these instructions to install the Netscape Directory SDK for C:
gunzip <filename>.tar.gz
tar xvof <filename>.tar.
dk30e32s.exe)dk30e32s.exe to disk.
The Netscape Directory SDK for C includes the C libraries for the Lightweight Directory Access Protocol (LDAP) Application Programming Interface (API). You can use the functions in these libraries to enable your own application to connect to, search, and update LDAP servers on the Internet.
After installing the SDK, read the documentation in the docs
directory and look at the samples in the examples directory.
Reading the Online Documentation
The Netscape Directory SDK for C includes the Netscape Directory SDK 3.0 for C Programmer's Guide in HTML format. To read this document:
index.htm in the docs directory.Compiling the Examples
The Netscape Directory SDK for C also includes the source code for
sample LDAP clients
that you can compile and run. The samples are in the examples
directory.
Each client is an example of how you can use a set of API functions
to search or update an LDAP server. For more information on these sample
clients, see the README file in the examples directory.
Exploring the SDK
The Netscape Directory SDK for C contains the following directories:
docsindex.htm in the docsdirectory.
examples
includeldap.h
header file:
#include "ldap.h"You do not need to explicitly include the
lber.h header file;
lber.h is already included in ldap.h.
If you are calling the SSL functions (functions with the ldapssl_
prefix), you also need to include the ldapssl.h header file.
lib
libldapssl30.so on Solaris, IRIX, and AIX, and
libldapssl30.sl on HP-UX.
libldap30.so on Solaris, IRIX, and AIX, and
libldap30.sl on HP-UX.
When running clients built with these libraries,
make sure to set the appropriate environment variable
that specifies the run-time path used to find libraries.
For example, on Solaris and IRIX, set the
LD_LIBRARY_PATH environment
variable to the location of the shared library.
On HP-UX, set SHLIB_PATH environment variable
(if you've compiled with the -Wl,+s+b flag).
On AIX, set the LIBPATH environment variable.
nsldapssl32v30.lib and
the dynamic link library is named nsldapssl32v30.dll.
nsldap32v30.lib and
the dynamic link library is named nsldap32v30.dll.
The import library nsldap32v30bc.lib is intended for
use with Borland compilers and is not officially supported
at this time.
When running clients built with these libraries, make sure to copy the dynamic link library to the directory containing your client or to a location where the DLL can be found. (For more information, see the section "Compiling Clients on Windows" in Chapter 2, "Using the Netscape Directory SDK for C", of the "Netscape Directory SDK 3.0 for C Programmer's Guide".)
Note that this release of the SDK is intended for use with Intel architectures only.
tools
lib directory above for details.
Changes in the LDAP API
This section is divided into two parts:
The following functions have been have been carried forward from the 1.0/1.1 Release:
Please submit your problem via the DevEdge Bug Report Form
Accessing the Directory Developer Newsgroup
If you have additional questions or need more information about the Netscape Directory SDK for C, see the directory developer newsgroup (snews://secnews.netscape.com/netscape.dev.directory).