Allow replace with no values

dn: cn=foo
	changetype: modify
	replace: bar
	-
This commit is contained in:
Kurt Zeilenga 1999-09-10 01:55:46 +00:00
parent 5c5be8a287
commit 9d6c0aa00a
2 changed files with 12 additions and 3 deletions

View File

@ -463,6 +463,7 @@ process_ldif_rec( char *rbuf, int count )
goto end_line;
} else if ( strcasecmp( type, T_MODOPREPLACESTR ) == 0 ) {
modop = LDAP_MOD_REPLACE;
addmodifyop( &pmods, modop, value, NULL, 0 );
goto end_line;
} else if ( strcasecmp( type, T_MODOPDELETESTR ) == 0 ) {
modop = LDAP_MOD_DELETE;

View File

@ -124,6 +124,9 @@ do_modify(
(*modtail)->ml_op != LDAP_MOD_DELETE &&
(*modtail)->ml_op != LDAP_MOD_REPLACE )
{
Debug( LDAP_DEBUG_ANY,
"do_modify: invalid modify operation (%ld)\n",
(long) (*modtail)->ml_op, 0, 0 );
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR,
NULL, "unrecognized modify operation", NULL, NULL );
free( ndn );
@ -131,11 +134,16 @@ do_modify(
return LDAP_PROTOCOL_ERROR;
}
if ( (*modtail)->ml_bvalues == NULL
&& (*modtail)->ml_op != LDAP_MOD_DELETE )
if ( (*modtail)->ml_bvalues == NULL && (
(*modtail)->ml_op != LDAP_MOD_REPLACE &&
(*modtail)->ml_op != LDAP_MOD_DELETE ) )
{
Debug( LDAP_DEBUG_ANY,
"do_modify: invalid modify operation (%ld) without values\n",
(long) (*modtail)->ml_op, 0, 0 );
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR,
NULL, "unrecognized modify operation", NULL, NULL );
NULL, "unrecognized modify operation without values",
NULL, NULL );
free( ndn );
modlist_free( modlist );
return LDAP_PROTOCOL_ERROR;