See also http://www.openldap.org/its/index.cgi/Software%20Enhancements?id=6194;select...
An API that returned LDAPMod ** and LDAPControl ** would be sufficient for all cases, including the LDAP ADD and any LDAP modify cases. The current discussion revolves around exposing the high level LDAPMod and LDAPControl APIs to the lower level libldif, or just passing the parsed values as lists of struct berval *