C Migrating from Netscape LDAP SDK API to Oracle LDAP SDK API

You need to know the differences between the Netscape LDAP SDK and the Oracle Internet Directory LDAP SDK that are important when migrating code.

The following topics describe the differences between the Netscape LDAP SDK and the Oracle Internet Directory LDAP SDK:

Note:

The Oracle Internet Directory SDK C API is described in C API Reference.

C.1 Features Comparison

Features of Oracle Internet Directory LDAP SDK and Netscape's SDK are discussed.

The following features of the Oracle Internet Directory LDAP SDK are different from Netscape's SDK.

  • In the Netscape SDK, a client must register an LDAP Rebind Call Back to handle a referral. This is automatically handled in the Oracle LDAP SDK.

  • Access to the LDAP Structure is different. The LDAP handle in Netscape LDAP SDK is type opaque. Accessory functions are required to access individual fields within this handle. In the Oracle Internet Directory LDAP SDK, the LDAP structure is exposed and a client can modify individual fields within the structure.

  • Use ldap_open() instead of ldap_init() with the Oracle LDAP SDK.

  • SSL connection initialization requires different function calls and procedures in the Oracle LDAP SDK. See C API Referencefor information about Oracle Internet Directory function calls for SSL.

  • The Oracle Internet Directory C API depends on the Oracle environment, including libraries and other files.You must install Oracle Application Server or Oracle Database and set the environment variable $ORACLE_HOME to an appropriate location before you build your application.

  • An LDAP SDK user must use an allocation function that clears memory, such as calloc(), to allocate an LDAPMod structure().

  • The Oracle Internet Directory API is not thread-safe.

C.2 Functions Comparison

The functions that are available in Netscape LDAP SDK and not in Oracle LDAP SDK are discussed.

  • The Oracle LDAP SDK does not have the function ldap_ber_free(). Use ber_free() instead.

  • The Oracle LDAP SDK does not have the function ldap_get_lderrno() for retrieving the ld error and matched string. You can retrieve this information directly by accessing the field LDAP.ld_matched and LDAP.ld_error. These are the only fields of the LDAP structure that you should ever need to access.

C.3 Macros Comparison

Macros used in Oracle Internet Directory is compared in the following section.

  • LDAPS_PORT is not defined in the Oracle LDAP SDK. Use LDAP_SSL_PORT instead.

  • LDAP_AFFECT_MULTIPLE_DSA is not defined in the Oracle LDAP SDK. This is a Netscape-specific macro.