mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-23 14:09:39 +08:00
more about ITS#7487
This commit is contained in:
parent
02f8963f74
commit
f6cd91aadb
@ -817,6 +817,7 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||||||
switch ( ml->sml_op ) {
|
switch ( ml->sml_op ) {
|
||||||
case LDAP_MOD_DELETE:
|
case LDAP_MOD_DELETE:
|
||||||
case LDAP_MOD_REPLACE:
|
case LDAP_MOD_REPLACE:
|
||||||
|
case SLAP_MOD_SOFTDEL: /* ITS#7487: can be used by syncrepl (in mirror mode?) */
|
||||||
save_member = 1;
|
save_member = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -844,6 +845,7 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
switch ( ml->sml_op ) {
|
switch ( ml->sml_op ) {
|
||||||
case LDAP_MOD_DELETE:
|
case LDAP_MOD_DELETE:
|
||||||
|
case SLAP_MOD_SOFTDEL: /* ITS#7487: can be used by syncrepl (in mirror mode?) */
|
||||||
/* we don't care about cancellations: if the value
|
/* we don't care about cancellations: if the value
|
||||||
* exists, fine; if it doesn't, we let the underlying
|
* exists, fine; if it doesn't, we let the underlying
|
||||||
* database fail as appropriate; */
|
* database fail as appropriate; */
|
||||||
@ -858,6 +860,8 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||||||
}
|
}
|
||||||
|
|
||||||
case LDAP_MOD_ADD:
|
case LDAP_MOD_ADD:
|
||||||
|
case SLAP_MOD_SOFTADD: /* ITS#7487 */
|
||||||
|
case SLAP_MOD_ADD_IF_NOT_PRESENT: /* ITS#7487 */
|
||||||
/* NOTE: right now, the attributeType we use
|
/* NOTE: right now, the attributeType we use
|
||||||
* for member must have a normalized value */
|
* for member must have a normalized value */
|
||||||
assert( ml->sml_nvalues != NULL );
|
assert( ml->sml_nvalues != NULL );
|
||||||
@ -946,6 +950,7 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
switch ( ml->sml_op ) {
|
switch ( ml->sml_op ) {
|
||||||
case LDAP_MOD_DELETE:
|
case LDAP_MOD_DELETE:
|
||||||
|
case SLAP_MOD_SOFTDEL: /* ITS#7487: can be used by syncrepl (in mirror mode?) */
|
||||||
if ( ml->sml_nvalues != NULL ) {
|
if ( ml->sml_nvalues != NULL ) {
|
||||||
AccessControlState acl_state = ACL_STATE_INIT;
|
AccessControlState acl_state = ACL_STATE_INIT;
|
||||||
|
|
||||||
@ -1056,12 +1061,15 @@ memberof_op_modify( Operation *op, SlapReply *rs )
|
|||||||
goto done2;
|
goto done2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ml->sml_op == LDAP_MOD_DELETE || !ml->sml_values ) {
|
if ( ml->sml_op == LDAP_MOD_DELETE || ml->sml_op == SLAP_MOD_SOFTDEL || !ml->sml_values ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* fall thru */
|
/* fall thru */
|
||||||
|
|
||||||
case LDAP_MOD_ADD: {
|
case LDAP_MOD_ADD:
|
||||||
|
case SLAP_MOD_SOFTADD: /* ITS#7487 */
|
||||||
|
case SLAP_MOD_ADD_IF_NOT_PRESENT: /* ITS#7487 */
|
||||||
|
{
|
||||||
AccessControlState acl_state = ACL_STATE_INIT;
|
AccessControlState acl_state = ACL_STATE_INIT;
|
||||||
|
|
||||||
for ( i = 0; !BER_BVISNULL( &ml->sml_nvalues[ i ] ); i++ ) {
|
for ( i = 0; !BER_BVISNULL( &ml->sml_nvalues[ i ] ); i++ ) {
|
||||||
@ -1363,6 +1371,7 @@ memberof_res_modify( Operation *op, SlapReply *rs )
|
|||||||
|
|
||||||
switch ( mml->sml_op ) {
|
switch ( mml->sml_op ) {
|
||||||
case LDAP_MOD_DELETE:
|
case LDAP_MOD_DELETE:
|
||||||
|
case SLAP_MOD_SOFTDEL: /* ITS#7487: can be used by syncrepl (in mirror mode?) */
|
||||||
if ( vals != NULL ) {
|
if ( vals != NULL ) {
|
||||||
for ( i = 0; !BER_BVISNULL( &vals[ i ] ); i++ ) {
|
for ( i = 0; !BER_BVISNULL( &vals[ i ] ); i++ ) {
|
||||||
memberof_value_modify( op,
|
memberof_value_modify( op,
|
||||||
@ -1396,6 +1405,8 @@ memberof_res_modify( Operation *op, SlapReply *rs )
|
|||||||
/* fall thru */
|
/* fall thru */
|
||||||
|
|
||||||
case LDAP_MOD_ADD:
|
case LDAP_MOD_ADD:
|
||||||
|
case SLAP_MOD_SOFTADD: /* ITS#7487 */
|
||||||
|
case SLAP_MOD_ADD_IF_NOT_PRESENT: /* ITS#7487 */
|
||||||
assert( vals != NULL );
|
assert( vals != NULL );
|
||||||
|
|
||||||
for ( i = 0; !BER_BVISNULL( &vals[ i ] ); i++ ) {
|
for ( i = 0; !BER_BVISNULL( &vals[ i ] ); i++ ) {
|
||||||
@ -1446,7 +1457,7 @@ memberof_res_modify( Operation *op, SlapReply *rs )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ml->sml_op == LDAP_MOD_DELETE || !ml->sml_values ) {
|
if ( ml->sml_op == LDAP_MOD_DELETE || ml->sml_op == SLAP_MOD_SOFTDEL || !ml->sml_values ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* fall thru */
|
/* fall thru */
|
||||||
|
Loading…
Reference in New Issue
Block a user