ldap_modify, ldap_modify_s - Perform an LDAP modify opera­
       tion


SYNOPSIS

       #include <ldap.h>

       int ldap_modify(ld, dn, mods)
       LDAP *ld;
       char *dn;
       LDAPMod *mods[];

       int ldap_modify_s(ld, dn, mods)
       LDAP *ld;
       char *dn;
       LDAPMod *mods[];

       void ldap_mods_free( mods, freemods )
       LDAPMod **mods;
       int freemods;


DESCRIPTION

       The routine ldap_modify_s() is used  to  perform  an  LDAP
       modify  operation.   dn  is the DN of the entry to modify,
       and mods is a null-terminated array  of  modifications  to
       make  to  the  entry.  Each element of the mods array is a
       pointer to an LDAPMod structure, which is defined below.

            typedef struct ldapmod {
                int mod_op;
                char *mod_type;
                union {
                 char **modv_strvals;
                 struct berval **modv_bvals;
                } mod_vals;
                struct ldapmod *mod_next;
            } LDAPMod;
            #define mod_values mod_vals.modv_strvals
            #define mod_bvalues mod_vals.modv_bvals

       The mod_op field is used to specify the type of  modifica­
       tion  to  perform  and  should  be  one  of  LDAP_MOD_ADD,
       LDAP_MOD_DELETE, or LDAP_MOD_REPLACE.   The  mod_type  and
       mod_values fields specify the attribute type to modify and
       a null-terminated array  of  values  to  add,  delete,  or
       replace  respectively.  The mod_next field is used only by
       the LDAP server and may be ignored by the client.

       If you need to specify a non-string value (e.g., to add  a
       photo  or audio attribute value), you should set mod_op to
       the  logical  OR  of  the  operation   as   above   (e.g.,
       LDAP_MOD_REPLACE)  and  the constant LDAP_MOD_BVALUES.  In
       this case, mod_bvalues should be used instead of  mod_val­
       ues,  and  it  should  point to a null-terminated array of


       For LDAP_MOD_ADD modifications, the given values are added
       to  the  entry,  creating the attribute if necessary.  For
       LDAP_MOD_DELETE  modifications,  the  given   values   are
       deleted  from the entry, removing the attribute if no val­
       ues remain.  If the entire attribute is to be deleted, the
       mod_values   field   should   be   set   to   NULL.    For
       LDAP_MOD_REPLACE modifications, the  attribute  will  have
       the listed values after the modification, having been cre­
       ated if necessary.  All modifications are performed in the
       order in which they are listed.

       ldap_modify_s() returns the LDAP error code resulting from
       the modify operation.  This code  can  be  interpreted  by
       ldap_perror(3) and friends.

       The   ldap_modify()   operation  works  the  same  way  as
       ldap_modify_s(), except that it is asynchronous, returning
       the  message  id  of  the  request  it initiates, or -1 on
       error.  The result of the operation  can  be  obtained  by
       calling ldap_result(3).

       ldap_mods_free()  can  be  used  to free each element of a
       NULL-terminated array of mod structures.  If  freemods  is
       non-zero, the mods pointer itself is freed as well.


ERRORS

       ldap_modify_s()   returns   an  ldap  error  code,  either
       LDAP_SUCCESS or an error if there was trouble.   ldap_mod­
       ify()  returns -1 in case of trouble, setting the ld_errno
       field of ld.


SEE ALSO

       ldap(3), ldap_error(3), ldap_add(3)


ACKNOWLEDGEMENTS

       OpenLDAP is developed and maintained by The OpenLDAP  Pro­
       ject (http://www.openldap.org/).  OpenLDAP is derived from
       University of Michigan LDAP 3.3 Release.


Man(1) output converted with man2html