| Current File : //usr/man/man3ldap/ldap_modify.3ldap |
'\" te
.\" Copyright (c) 1990, Regents of the University of Michigan. All Rights Reserved.
.\" Portions Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
.TH ldap_modify 3LDAP "23 Aug 2011" "SunOS 5.11" "LDAP Library Functions"
.SH NAME
ldap_modify, ldap_modify_s, ldap_mods_free, ldap_modify_ext, ldap_modify_ext_s \- LDAP entry modification functions
.SH SYNOPSIS
.LP
.nf
cc[ \fIflag\fR... ] \fIfile\fR... -lldap[ \fIlibrary\fR... ]
#include <lber.h>
#include <ldap.h>
\fBint\fR \fBldap_modify\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBLDAPMod\fR \fI*mods\fR[]);
.fi
.LP
.nf
\fBint\fR \fBldap_modify_s\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBLDAPMod\fR \fI*mods\fR[]);
.fi
.LP
.nf
\fBvoid\fR \fBldap_mods_free\fR(\fBLDAPMod\fR \fI**mods\fR, \fBint\fR \fIfreemods\fR);
.fi
.LP
.nf
\fBint\fR \fBldap_modify_ext\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBLDAPMod\fR \fI**mods\fR,
\fBLDAPControl\fR \fI**serverctrls\fR, \fBLDAPControl\fR \fI**clientctrls\fR, \fBint\fR \fI*msgidp\fR);
.fi
.LP
.nf
\fBint\fR \fBldap_modify_ext_s\fR(\fBLDAP\fR \fI*ld\fR, \fBchar\fR \fI*dn\fR, \fBLDAPMod\fR \fI**mods\fR,
\fBLDAPControl\fR \fI**serverctrls\fR, \fBLDAPControl\fR \fI**clientctrls\fR);
.fi
.SH DESCRIPTION
.sp
.LP
The function \fBldap_modify_s()\fR is used to perform an LDAP modify operation. \fIdn\fR is the DN of the entry to modify, and \fImods\fR is a null-terminated array of modifications to make to the entry. Each element of the \fImods\fR array is a pointer to an \fBLDAPMod\fR structure, which is defined below.
.sp
.in +2
.nf
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
.fi
.in -2
.sp
.LP
The \fImod_op\fR field is used to specify the type of modification to perform and should be one of \fBLDAP_MOD_ADD\fR, \fBLDAP_MOD_DELETE\fR, or \fBLDAP_MOD_REPLACE\fR. The \fImod_type\fR and \fImod_values\fR fields specify the attribute type to modify and a null-terminated array of values to add, delete, or replace respectively.
.sp
.LP
If you need to specify a non-string value (for example, to add a photo or audio attribute value), you should set \fImod_op\fR to the logical OR of the operation as above (for example, \fBLDAP_MOD_REPLACE\fR) and the constant \fBLDAP_MOD_BVALUES\fR. In this case, \fImod_bvalues\fR should be used instead of \fImod_values\fR, and it should point to a null-terminated array of struct bervals, as defined in <\fBlber.h\fR>.
.sp
.LP
For \fBLDAP_MOD_ADD\fR modifications, the given values are added to the entry, creating the attribute if necessary. For \fBLDAP_MOD_DELETE\fR 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 \fImod_values\fR field should be set to NULL. For \fBLDAP_MOD_REPLACE\fR 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.
.sp
.LP
\fBldap_modify_s()\fR returns the LDAP error code resulting from the modify operation.
.sp
.LP
The \fBldap_modify()\fR operation works the same way as \fBldap_modify_s()\fR, except that it is asynchronous, returning the message id of the request it initiates, or \fB\(mi1\fR on error. The result of the operation can be obtained by calling \fBldap_result\fR(3LDAP).
.sp
.LP
\fBldap_mods_free()\fR can be used to free each element of a null-terminated array of mod structures. If \fIfreemods\fR is non-zero, the \fImods\fR pointer itself is freed as well.
.sp
.LP
The \fBldap_modify_ext()\fR function initiates an asynchronous modify operation and returns \fBLDAP_SUCCESS\fR if the request was successfully sent to the server, or else it returns a LDAP error code if not. See \fBldap_error\fR(3LDAP). If successful, \fBldap_modify_ext()\fR places the message id of the request in \fI*msgidp\fR. A subsequent call to \fBldap_result\fR(3LDAP), can be used to obtain the result of the add request.
.sp
.LP
The \fBldap_modify_ext_s()\fR function initiates a synchronous modify operation and returns the result of the operation itself.
.SH ERRORS
.sp
.LP
\fBldap_modify_s()\fR returns an LDAP error code, either \fBLDAP_SUCCESS\fR or an error. See \fBldap_error\fR(3LDAP).
.sp
.LP
\fBldap_modify()\fR returns \fB\(mi1\fR in case of trouble, setting the \fBerror\fR field of \fIld\fR.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for a description of the following attributes:
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Availabilitysystem/library
_
Interface StabilityCommitted
.TE
.SH SEE ALSO
.sp
.LP
\fBldap\fR(3LDAP), \fBldap_add\fR(3LDAP), \fBldap_error\fR(3LDAP), \fBldap_get_option\fR(3LDAP), \fBattributes\fR(5)