mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-05 13:40:08 +08:00
ITS#7215 Update datamorph/variant to drop workaround
This commit is contained in:
parent
c7f4a5eb28
commit
5dddb72503
@ -1399,9 +1399,6 @@ datamorph_set_attribute( ConfigArgs *ca )
|
||||
}
|
||||
|
||||
done:
|
||||
if ( rc ) {
|
||||
ca->reply.err = rc;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -1432,8 +1429,7 @@ datamorph_set_size( ConfigArgs *ca )
|
||||
snprintf( ca->cr_msg, sizeof(ca->cr_msg), "invalid size %d",
|
||||
ca->value_int );
|
||||
Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
info->ti_int.size = ca->value_int;
|
||||
|
||||
@ -1544,8 +1540,7 @@ datamorph_set_bounds( ConfigArgs *ca )
|
||||
"failed to parse '%s' as integer",
|
||||
ca->value_bv.bv_val );
|
||||
Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
ch_free( ca->value_bv.bv_val );
|
||||
|
||||
@ -1611,8 +1606,7 @@ datamorph_set_bounds( ConfigArgs *ca )
|
||||
snprintf( ca->cr_msg, sizeof(ca->cr_msg),
|
||||
"datamorph_size has to be set first!" );
|
||||
Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
if ( info->ti_int.flags & DATAMORPH_FLAG_SIGNED ) {
|
||||
bound->i = signed_bound;
|
||||
@ -1645,8 +1639,7 @@ datamorph_set_value( ConfigArgs *ca )
|
||||
ber_len_t len;
|
||||
s = memchr( s, '}', ca->value_bv.bv_len );
|
||||
if ( !s ) {
|
||||
ca->reply.err = LDAP_UNDEFINED_TYPE;
|
||||
return ca->reply.err;
|
||||
return LDAP_UNDEFINED_TYPE;
|
||||
}
|
||||
s += 1;
|
||||
|
||||
@ -1675,14 +1668,12 @@ datamorph_set_index( ConfigArgs *ca )
|
||||
}
|
||||
|
||||
if ( ca->value_int < 0 || ca->value_int >= 256 ) {
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
} else if ( !BER_BVISNULL( &from_db[ca->value_int] ) ) {
|
||||
snprintf( ca->cr_msg, sizeof(ca->cr_msg), "duplicate index %d",
|
||||
ca->value_int );
|
||||
Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
mapping->db_value = ca->value_int;
|
||||
from_db[ca->value_int] = mapping->wire_value;
|
||||
@ -1718,8 +1709,7 @@ datamorph_add_transformation( ConfigArgs *ca )
|
||||
snprintf( ca->cr_msg, sizeof(ca->cr_msg),
|
||||
"unknown transformation type '%s'", ca->argv[1] );
|
||||
Debug( LDAP_DEBUG_ANY, "%s: %s\n", ca->log, ca->cr_msg );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
|
||||
ca->value_string = strdup( ca->argv[2] );
|
||||
@ -1770,9 +1760,6 @@ done:
|
||||
rc = ldap_avl_insert( &info->ti_enum.to_db, mapping,
|
||||
transformation_mapping_cmp, ldap_avl_dup_error );
|
||||
}
|
||||
if ( rc ) {
|
||||
ca->reply.err = rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -1785,15 +1772,13 @@ datamorph_ldadd_info_cleanup( ConfigArgs *ca )
|
||||
transformation_info *info = ca->ca_private;
|
||||
|
||||
if ( ca->reply.err != LDAP_SUCCESS ) {
|
||||
/* Not reached since cleanup is only called on success */
|
||||
fail:
|
||||
ch_free( info );
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
if ( ldap_avl_insert( &ov->transformations, info, transformation_info_cmp,
|
||||
ldap_avl_dup_error ) ) {
|
||||
goto fail;
|
||||
ch_free( info );
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
@ -1843,15 +1828,13 @@ datamorph_ldadd_mapping_cleanup( ConfigArgs *ca )
|
||||
transformation_info *info = mapping->transformation;
|
||||
|
||||
if ( ca->reply.err != LDAP_SUCCESS ) {
|
||||
/* Not reached since cleanup is only called on success */
|
||||
fail:
|
||||
datamorph_mapping_free( mapping );
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
if ( ldap_avl_insert( &info->ti_enum.to_db, mapping, transformation_mapping_cmp,
|
||||
ldap_avl_dup_error ) ) {
|
||||
goto fail;
|
||||
datamorph_mapping_free( mapping );
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
info->ti_enum.from_db[mapping->db_value] = mapping->wire_value;
|
||||
|
||||
|
@ -868,8 +868,7 @@ variant_set_dn( ConfigArgs *ca )
|
||||
|
||||
dnMatch( &diff, 0, NULL, NULL, &vei->dn, &vei2->dn );
|
||||
if ( !diff ) {
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
}
|
||||
|
||||
@ -912,16 +911,14 @@ variant_set_regex( ConfigArgs *ca )
|
||||
if ( !ber_bvcmp( &ca->value_bv, &vei2->dn ) ) {
|
||||
ch_free( vei );
|
||||
ca->ca_private = NULL;
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
}
|
||||
|
||||
vei->regex = ch_calloc( 1, sizeof(regex_t) );
|
||||
if ( regcomp( vei->regex, vei->dn.bv_val, REG_EXTENDED ) ) {
|
||||
ch_free( vei->regex );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
|
||||
return LDAP_SUCCESS;
|
||||
@ -972,8 +969,7 @@ variant_set_alt_pattern( ConfigArgs *ca )
|
||||
Debug( LDAP_DEBUG_ANY, "variant_set_alt_pattern: "
|
||||
"invalid replacement pattern supplied '%s'\n",
|
||||
ca->value_bv.bv_val );
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1008,8 +1004,7 @@ variant_set_attribute( ConfigArgs *ca )
|
||||
if ( *s == '{' ) {
|
||||
s = strchr( s, '}' );
|
||||
if ( !s ) {
|
||||
ca->reply.err = LDAP_UNDEFINED_TYPE;
|
||||
return ca->reply.err;
|
||||
return LDAP_UNDEFINED_TYPE;
|
||||
}
|
||||
s += 1;
|
||||
}
|
||||
@ -1024,8 +1019,7 @@ variant_set_attribute( ConfigArgs *ca )
|
||||
if ( vai->attr && vai->alternative &&
|
||||
vai->attr->ad_type->sat_syntax !=
|
||||
vai->alternative->ad_type->sat_syntax ) {
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
|
||||
if ( ca->type == VARIANT_ATTR ) {
|
||||
@ -1033,8 +1027,7 @@ variant_set_attribute( ConfigArgs *ca )
|
||||
LDAP_SLIST_FOREACH( vai2, &vai->variant->attributes, next ) {
|
||||
if ( vai == vai2 ) continue;
|
||||
if ( vai->attr == vai2->attr ) {
|
||||
ca->reply.err = LDAP_CONSTRAINT_VIOLATION;
|
||||
return ca->reply.err;
|
||||
return LDAP_CONSTRAINT_VIOLATION;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1091,8 +1084,6 @@ variant_add_alt_attr( ConfigArgs *ca )
|
||||
done:
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
LDAP_SLIST_INSERT_HEAD( &vei->attributes, vai, next );
|
||||
} else {
|
||||
ca->reply.err = rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
@ -1137,8 +1128,6 @@ variant_add_alt_attr_regex( ConfigArgs *ca )
|
||||
done:
|
||||
if ( rc == LDAP_SUCCESS ) {
|
||||
LDAP_SLIST_INSERT_HEAD( &vei->attributes, vai, next );
|
||||
} else {
|
||||
ca->reply.err = rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user