- switch ( syntax ) {
- case SYNTAX_CIS:
- case (SYNTAX_CIS | SYNTAX_TEL):
- case (SYNTAX_CIS | SYNTAX_DN):
- rc = strcasecmp( v1->bv_val, v2->bv_val );
- break;
-
- case SYNTAX_CES:
- rc = strcmp( v1->bv_val, v2->bv_val );
- break;
-
- default: /* Unknown syntax */
- case SYNTAX_BIN:
- rc = (v1->bv_len == v2->bv_len
- ? memcmp( v1->bv_val, v2->bv_val, v1->bv_len )
- : v1->bv_len > v2->bv_len ? 1 : -1);
- break;
- }
+ /* Take care of this here or ssyn_normalize later will hurt */
+ if ( SLAP_IS_MR_VALUE_SYNTAX_NONCONVERTED_MATCH( flags )
+ && mr->smr_convert )
+ {
+ rc = (mr->smr_convert)( val, &nval );
+ if ( rc != LDAP_SUCCESS ) {
+ return LDAP_INVALID_SYNTAX;
+ }