ldap_modify_ext

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
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, dn, mods)
       LDAP *ld;
       char *dn;
       LDAPMod *mods[];

       int ldap_modify_s(ld, dn, mods)
       LDAP *ld;
       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 per-
       form  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 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 <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
       values  after the modification, having been created if necessary.  All
       modifications are performed in the order in which they are listed.

       ldap_modify_s() returns the LDAP error 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 error code, either LDAP_SUCCESS or an
       error if there was trouble.  ldap_modify() returns -1 in case of trou-
       ble, setting the ld_errno field of ld.

SEE ALSO
       ldap(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 2.2.13			  2004/06/10		       LDAP_MODIFY(3)