<!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_s()--Perform an LDAP Modify Entry Request (Synchronous)</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_s()--Perform an LDAP Modify Entry Request (Synchronous)</h2> <br> <div class="box" style="width: 80%;"> <br> Syntax<br> <pre> #include <ldap.h> 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_s( LDAP *<em>ld</em>, const char *<em>dn</em>, LDAPMod **<em>mods</em>) </pre> <br> Default Public Authority: *USE<br> <!-- iddvc RMBR --> <br> Library Name/Service Program: QSYS/QGLDCLNT<br> <!-- iddvc RMBR --> <br> Threadsafe: Yes<br> <!-- iddvc RMBR --> <br> </div> <p>The <strong>ldap_modify_s()</strong> performs a synchronous request.</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, modify or delete respectively. Only one of the mod_values or mod_bvalues variants should be used, with mod_bvalues being selected by ORing the <em>mod_op</em> 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 <strong>NULL</strong>. 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_values</em> field is <strong>NULL</strong>. The server will 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> <br> </dd> <dt><em>dn</em></dt> <dd>(Input) Specifies the Distinguished Name of the entry to be modified.<br> <br> </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> </dl> <br> <h3>Return Value</h3> <dl> <dt><strong>LDAP_SUCCESS</strong></dt> <dd>if the request was successful.<br> <br> </dd> <dt><strong>another LDAP error</strong></dt> <dd>if the request was not successful.</dd> </dl> <br> <h3>Error Conditions</h3> <p>The <strong>ldap_modify_s()</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_s API.</td> </tr> </table> <br> <br> <h3>Related Information</h3> <ul> <li><a href="ldap_add_s.htm">ldap_add_s()</a> -- Perform an LDAP add operation (synchronous).</li> <li><a href="ldap_delete_s.htm">ldap_delete_s()</a> -- Perform an LDAP delete operation (synchronous).</li> <li><a href="ldap_modify_s.htm">ldap_modify()</a> -- Perform an LDAP modify entry request.</li> <li><a href="ldap_modify_ext.htm">ldap_modify_ext()</a> -- Asynchronous modify to a directory entry with controls.</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> <hr> API introduced: V4R3 <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>