Copyright Digital Equipment Corp. All rights reserved.

Adding_Entry

   The following functions are used to add entries to the LDAP
   directory. There are four variations.

           int ldap_add_ext(
                   LDAP                               *ld,
                   const char                         *dn,
                   LDAPMod                            **attrs,
                   LDAPControl                        **serverctrls,
                   LDAPControl                        **clientctrls,
                   int                                *msgidp
           );

           int ldap_add_ext_s(
                   LDAP                               *ld,
                   const char                         *dn,
                   LDAPMod                            **attrs,
                   LDAPControl                        **serverctrls,
                   LDAPControl                        **clientctrls
           );

           int ldap_add(
                   LDAP                               *ld,
                   const char                         *dn,
                   LDAPMod                            **attrs
           );

           int ldap_add_s(
                   LDAP                               *ld,
                   const char                         *dn,
                   LDAPMod                            **attrs
           );

   Parameters are as follows:

   ld             The session handle.
   dn             The name of the entry to add.
   attrs          The entry's attributes, specified using the
                  LDAPMod structure defined for ldap_modify(). The
                  mod_type and mod_vals fields should be filled in.
                  The mod_op field is ignored unless ORed with the
                  constant LDAP_MOD_BVALUES, used to select the mod_
                  bvalues case of the mod_vals union.
   serverctrls    List of LDAP server controls.
   clientctrls    List of client controls.
   msgidp         This result parameter will be set to the message
                  id of the request if the ldap_add_ext() call
                  succeeds.

   Note that the parent of the entry being added must already exist
   or the parent must be empty (that is, equal to the root DN) for
   an add to succeed.

   The ldap_add_ext() function initiates an asynchronous add
   operation and returns either the constant LDAP_SUCCESS if the
   request was successfully sent or another LDAP error code if not.
   See Errors for more information about possible errors and how to
   interpret them. If successful, ldap_add_ext() places the message
   id of the request in *msgidp. A subsequent call to ldap_result()
   can be used to obtain the result of the add.

   Similar to ldap_add_ext(), the ldap_add()  function initiates
   an asynchronous add operation and returns the message id of the
   operation initiated. As for ldap_add_ext(), a subsequent call
   to ldap_result() can be used to obtain the result of the add.
   In case of error, ldap_add() will return -1, setting the session
   error parameters in the LDAP structure appropriately.

   The synchronous ldap_add_ext_s() and ldap_add_s()  functions
   both return the result of the operation, either the constant
   LDAP_SUCCESS if the operation was successful, or another LDAP
   error code if it was not. See Errors for more information about
   possible errors and how to interpret them.

   The ldap_add_ext() and ldap_add_ext_s()  functions support LDAPv3
   server controls and client controls.