]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/mods.c
ITS#7305 add slapi_[get|free]_client_ip()
[openldap] / servers / slapd / mods.c
index 1ad15f8906997ed3068939a25d4a1237cc16e0c6..ffe10faea651c3549e25246238563d85200e4549 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2009 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -263,13 +263,18 @@ modify_delete_vindex(
                goto return_result;
        }
 
+       if ( a->a_desc == slap_schema.si_ad_objectClass ) {
+               /* Needed by ITS#5517,ITS#5963 */
+               flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX;
+
+       } else {
+               flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX;
+       }
        if ( mod->sm_nvalues ) {
-               flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX
-                       | SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH
+               flags |= SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH
                        | SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH;
                cvals = mod->sm_nvalues;
        } else {
-               flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX;
                cvals = mod->sm_values;
        }