ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/ldap_modify_ext.htm

282 lines
8.8 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>ldap_modify_ext()--Perform an LDAP Modify Entry Request with
Controls</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- Direct1 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- File Edited March 2001 -->
<!-- This file has undergone html cleanup on 2/19/02 by JET -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<a name="Top_Of_Page"></a>
<h2>ldap_modify_ext()--Perform an LDAP Modify Entry Request with Controls</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Syntax<br>
<pre>
#include &lt;ldap.h&gt;
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
int ldap_modify_ext( LDAP *<em>ld</em>,
const char *<em>dn</em>,
LDAPMod **<em>mods</em>,
LDAPControl **<em>serverctrls</em>,
LDAPControl **<em>clientctrls</em>,
int *<em>msgidp</em>)
</pre>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Library Name/Service Program: QSYS/QGLDCLNT<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The <strong>ldap_modify_ext()</strong> routine initiates an asynchronous
modify operation with controls. <em>dn</em> is the Distinguished name of the
entry to modify, and <em>mods</em> is a NULL-terminated array of modifications
to make to the entry. Each element of the <em>mods</em> array is a pointer to
an LDAPMod structure.</p>
<p>The <em>mod_op</em> field is used to specify the type of modification to
perform and should be one of the following:</p>
<table width="100%" cellpadding="5">
<tr>
<td width="30%" valign="top"><strong>LDAP_MOD_ADD</strong></td>
<td width="70%" valign="top">0x00</td>
</tr>
<tr>
<td valign="top"><strong>LDAP_MOD_DELETE</strong></td>
<td valign="top">0x01</td>
</tr>
<tr>
<td valign="top"><strong>LDAP_MOD_REPLACE</strong></td>
<td valign="top">0x02</td>
</tr>
</table>
<br>
<p>This field also indicates the type of values included in the mod_vals union.
For binary data, you must also bitwise OR the operation type with <strong>
LDAP_MOD_BVALUES</strong> (0x80). This indicates that the values are specified
in a NULL-terminated array of struct berval structures. Otherwise, the
mod_values will be used (that is, the values are assumed to be a NULL-terminated
array of NULL-terminated character strings).</p>
<p>The <em>mod_type</em> field specifies the name of attribute to add, delete,
or replace.</p>
<p>The <em>mod_vals</em> field specifies a pointer to a NULL-terminated array
of values to add, replace, or delete. Only one of the mod_values or mod_bvalues
variants should be used, with mod_bvalues being selected by ORing the mod_op
field with the constant <strong>LDAP_MOD_BVALUES</strong>. <em>mod_values</em>
is a NULL-terminated array of NULL-terminated strings and <em>mod_bvalues</em>
is a NULL-terminated array of berval structures that can be used to pass binary
values such as images.</p>
<p>For <strong>LDAP_MOD_ADD</strong> modifications, the given values are added
to the entry, creating the attribute if necessary.</p>
<p>For <strong>LDAP_MOD_DELETE</strong> 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 <em>mod_values</em> field should be set
to NULL. The server will return an error if the attribute doesn't exist.</p>
<p>For <strong>LDAP_MOD_REPLACE</strong> modifications, the attribute will have
the listed values after the modification, having been created if necessary, or
removed if the <em>mod_vals</em> field is NULL. The server should NOT return an
error if the value doesn't exist.</p>
<p>All modifications are performed in the order in which they are listed.</p>
<br>
<h3>Authorities and Locks</h3>
<p>No i5/OS authority is required. All authority checking is done by the LDAP
server.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><em>ld</em></dt>
<dd>(Input) Specifies the LDAP pointer returned by a previous call to <a href=
"ldap_init.htm">ldap_init()</a>, <a href="ldap_ssl_init.htm">
ldap_ssl_init()</a>, or <a href="ldap_open.htm">ldap_open()</a>.<br>
</dd>
<dt><em>dn</em></dt>
<dd>(Input) Specifies the Distinguished Name of the entry to be modified.</dd>
<dt><em>mods</em></dt>
<dd>(Input) Specifies a NULL-terminated array of modifications to make to the
entry. Each element of the mods array is a pointer to an LDAPMod
structure.</dd>
<dt><em>serverctrls</em></dt>
<dd>(Input) Specifies a list of LDAP server controls. This parameter may be set
to NULL. See <a href="ldap_controls.htm">LDAP Controls</a> for more information
about server controls.</dd>
<dt><em>clientctrls</em></dt>
<dd>(Input) Specifies a list of LDAP client controls. This parameter may be set
to NULL. See <a href="ldap_controls.htm">LDAP Controls</a> for more information
about client controls.</dd>
<dt><em>msgidp</em></dt>
<dd>(output) This result parameter is set to the message id of the request if
the <strong>ldap_modify_ext()</strong> call succeeds.</dd>
</dl>
<br>
<h3>Return Value</h3>
<dl>
<dt><strong>LDAP_SUCCESS</strong></dt>
<dd>if the request was successfully sent. If successful, <strong>
ldap_modify_ext()</strong> places the message id of the request in
*<em>msgidp</em>. A subsequent call to <a href="ldap_result.htm">
ldap_result()</a> can be used to obtain the result of the operation. Once the
operation has completed, <em>ldap_result()</em> returns a result that contains
the status of the operation (in the form of an error code). The error code
indicates whether or not the operation completed successfully. The <a href=
"ldap_parse_result.htm">ldap_parse_result()</a> API is used to check the error
code in the result.<br>
<br>
</dd>
<dt><strong>another LDAP error code</strong></dt>
<dd>if the request was not successful.</dd>
</dl>
<br>
<h3>Error Conditions</h3>
<p>The <strong>ldap_modify_ext()</strong> API will return an LDAP error code if
not successful. See <a href="ldap_error_condt.htm">LDAP Client API Error
Conditions</a> for possible LDAP error code values.</p>
<br>
<h3>Error Messages</h3>
<p>The following message may be sent from this function.</p>
<table width="100%" cellpadding="3">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF3CF2 E</td>
<td width="85%" valign="top">Error(s) occurred during running of
ldap_modify_ext API.</td>
</tr>
</table>
<br>
<br>
<h3>Related Information</h3>
<ul>
<li><a href="ldap_add_ext.htm">ldap_add_ext()</a> -- Asynchronously add an
entry with controls.</li>
<li><a href="ldap_delete_ext.htm">ldap_delete_ext()</a> -- Perform an LDAP
delete operation with controls.</li>
<li><a href="ldap_modify.htm">ldap_modify()</a> -- Asynchronous modify to a
directory entry.</li>
<li><a href="ldap_modify_s.htm">ldap_modify_s()</a> -- Synchronous modify to a
directory entry.</li>
<li><a href="ldap_modify_ext_s.htm">ldap_modify_ext_s()</a> -- Synchronous
modify to a directory entry with controls.</li>
<li><a href="ldap_modrdn.htm">ldap_modrdn()</a> -- Asynchronously modify the
RDN of an entry.</li>
<li><a href="ldap_modrdn_s.htm">ldap_modrdn_s()</a> -- Synchronously modify the
RDN of an entry.</li>
</ul>
<p>The <strong>ldap_modify_ext()</strong> API supports LDAP V3 server controls
and client controls.</p>
<br>
<hr>
API introduced: V4R5
<hr>
<table align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"dirserv1.htm">LDAP APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</body>
</html>