)
{
Entry *entry = NULL;
- Attribute *a = NULL;
char *dn = NULL, *ndn=NULL;
struct berval desc;
struct berval value;
rc = slap_bv2ad( &desc, &ava.aa_desc, &text );
if( rc != LDAP_SUCCESS ) {
send_ldap_result( conn, op, rc, NULL, text, NULL, NULL );
- return rc;
+ goto cleanup;
}
rc = value_normalize( ava.aa_desc, SLAP_MR_EQUALITY, &value, &nvalue, &text );
if( rc != LDAP_SUCCESS ) {
send_ldap_result( conn, op, rc, NULL, text, NULL, NULL );
- return rc;
+ goto cleanup;
}
ava.aa_value = nvalue;
* if we don't hold it.
*/
if ( (be = select_backend( ndn, manageDSAit )) == NULL ) {
+ struct berval **ref = referral_rewrite( default_referral,
+ NULL, dn, LDAP_SCOPE_DEFAULT );
+
send_ldap_result( conn, op, rc = LDAP_REFERRAL,
- NULL, NULL, default_referral, NULL );
+ NULL, NULL, ref ? ref : default_referral, NULL );
+
+ ber_bvecfree( ref );
rc = 0;
goto cleanup;
}
{
rc = LDAP_COMPARE_FALSE;
- if ( value_find_ex( ava->aa_desc,
- SLAP_MR_VALUE_IS_IN_MR_SYNTAX,
- a->a_vals, ava->aa_value ) == 0 )
- {
+ if ( value_find( ava->aa_desc, a->a_vals, ava->aa_value ) == 0 ) {
rc = LDAP_COMPARE_TRUE;
break;
}