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(1,8), dn, mods) LDAP *ld(1,8); char *dn; LDAPMod *mods[]; int ldap_modify_s(ld(1,8), dn, mods) LDAP *ld(1,8); 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(7,n,1 builtins) 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(1,8) <lber.h>. For LDAP_MOD_ADD modifications, the given values are added to the entry, creating the attribute if(3,n) necessary. For LDAP_MOD_DELETE modi- fications, the given values are deleted from the entry, removing the attribute if(3,n) no values remain. If the entire attribute is to be deleted, the mod_values field should be set(7,n,1 builtins) to NULL. For LDAP_MOD_REPLACE modifications, the attribute will have the listed val- ues after the modification, having been created if(3,n) necessary. All mod- ifications are performed in(1,8) the order in(1,8) which they are listed. ldap_modify_s() returns the LDAP error(8,n) 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. ERRORS ldap_modify_s() returns an ldap(3,5,n) error(8,n) code, either LDAP_SUCCESS or an error(8,n) if(3,n) there was trouble. ldap_modify() returns -1 in(1,8) case of trou- ble, setting the ld_errno field of ld(1,8). SEE ALSO ldap(3,5,n)(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 LDVERSION RELEASEDATE LDAP_MODIFY(3)