LDAP_MODIFY
NAME
ldap_modify, ldap_modify_s - Perform an LDAP modify operation
LIBRARY
OpenLDAP LDAP (libldap, -lldap)
SYNOPSIS
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 modification 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_values, and it should point to
a null-terminated array of struct bervals, as defined in <lber.h>.
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 values 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 created 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
R 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_modify()
returns -1 in case
of trouble, setting the
ld_errno
field of ld.
SEE ALSO
ACKNOWLEDGEMENTS
OpenLDAP
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
OpenLDAP
is derived from University of Michigan LDAP 3.3 Release.