From: Kurt Zeilenga Date: Mon, 13 Feb 2006 21:22:46 +0000 (+0000) Subject: permissive modify/increment support X-Git-Tag: OPENLDAP_REL_ENG_2_3_20~20 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5c3b18d3f41c037e797c1ecd2a042b3fb8087f31;p=openldap permissive modify/increment support --- diff --git a/CHANGES b/CHANGES index 5ed46b03ba..cc0f507a61 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ OpenLDAP 2.3.20 Engineering Fixed slapd non-read/write epoll event handling (ITS#4395) Fixed slapd syncrepl de-normalize UUID issue Added slapd syncrepl log messages (ITS#4369) + Added slapd permissive modify/increment support Fixed slapd connectionless LDAP support Fixed slapd-bdb/hdb wake listener on runqueue submit (ITS#4385) Fixed slapo-auditlog crash (ITS#4394) diff --git a/servers/slapd/mods.c b/servers/slapd/mods.c index 76bb81f51e..f1dbdffcb8 100644 --- a/servers/slapd/mods.c +++ b/servers/slapd/mods.c @@ -377,11 +377,19 @@ modify_increment_values( a = attr_find( e->e_attrs, mod->sm_desc ); if( a == NULL ) { - *text = textbuf; - snprintf( textbuf, textlen, - "modify/increment: %s: no such attribute", - mod->sm_desc->ad_cname.bv_val ); - return LDAP_NO_SUCH_ATTRIBUTE; + if ( permissive ) { + Modification modReplace = *mod; + + modReplace.sm_op = LDAP_MOD_REPLACE; + + return modify_add_values(e, &modReplace, permissive, text, textbuf, textlen); + } else { + *text = textbuf; + snprintf( textbuf, textlen, + "modify/increment: %s: no such attribute", + mod->sm_desc->ad_cname.bv_val ); + return LDAP_NO_SUCH_ATTRIBUTE; + } } if ( !strcmp( a->a_desc->ad_type->sat_syntax_oid, SLAPD_INTEGER_SYNTAX )) {