ldap_modify(3LDAP) LDAP Library Functions ldap_modify(3LDAP)NAME
ldap_modify, ldap_modify_s, ldap_mods_free, ldap_modify_ext, ldap_mod‐
ify_ext_s - LDAP entry modification functions
SYNOPSIS
cc[ flag... ] file... -lldap[ library... ]
#include <lber.h>
#include <ldap.h>
int ldap_modify(LDAP *ld, char *dn, LDAPMod *mods[]);
int ldap_modify_s(LDAP *ld, char *dn, LDAPMod *mods[]);
void ldap_mods_free(LDAPMod **mods, int freemods);
int ldap_modify_ext(LDAP *ld, char *dn, LDAPMod **mods, LDAPControl
**serverctrls, LDAPControl **clientctrls, int *msgidp);
int ldap_modify_ext_s(LDAP *ld, char *dn, LDAPMod **mods, LDAPControl
**serverctrls, LDAPControl **clientctrls);
DESCRIPTION
The function 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;
} 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.
If you need to specify a non-string value (for example, to add a photo
or audio attribute value), you should set mod_op to the logical OR of
the operation as above (for example, LDAP_MOD_REPLACE) and the con‐
stant 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.
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(3LDAP).
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.
The ldap_modify_ext() function initiates an asynchronous modify opera‐
tion and returns LDAP_SUCCESS if the request was successfully sent to
the server, or else it returns a LDAP error code if not. See
ldap_error(3LDAP). If successful, ldap_modify_ext() places the message
id of the request in *msgidp. A subsequent call to
ldap_result(3LDAP), can be used to obtain the result of the add
request.
The ldap_modify_ext_s() function initiates a synchronous modify opera‐
tion and returns the result of the operation itself.
ERRORSldap_modify_s() returns an LDAP error code, either LDAP_SUCCESS or an
error. See ldap_error(3LDAP).
ldap_modify() returns −1 in case of trouble, setting the error field
of ld.
ATTRIBUTES
See attributes(5) for a description of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
│Availability │SUNWcsl (32-bit) │
│ │SUNWcslx (64-bit) │
│Interface Stability │Evolving │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOldap(3LDAP), ldap_add(3LDAP), ldap_error(3LDAP),
ldap_get_option(3LDAP), attributes(5)SunOS 5.10 28 Jan 2002 ldap_modify(3LDAP)