LDAP_MODIFY(3)LDAP_MODIFY(3)NAME
ldap_modify, ldap_modify_s - Perform an LDAP modify operation
LIBRARY
OpenLDAP LDAP (libldap, -lldap)
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 opera‐
tion. dn is the DN of the entry to modify, and mods is a null-termi‐
nated 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 modi‐
fications, 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 val‐
ues after the modification, having been created if necessary. All mod‐
ifications 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.
ERRORSldap_modify_s() returns an ldap error code, either LDAP_SUCCESS or an
error if there was trouble. ldap_modify() returns -1 in case of trou‐
ble, setting the ld_errno field of ld.
SEE ALSOldap(3), ldap_error(3), ldap_add(3)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.
OpenLDAP 2.3.27 2006/08/19 LDAP_MODIFY(3)