+
+ if( slapMode & SLAP_TOOL_MODE ) {
+ struct berval pval;
+ slap_syntax_validate_func *validate =
+ ad->ad_type->sat_syntax->ssyn_validate;
+ slap_syntax_transform_func *pretty =
+ ad->ad_type->sat_syntax->ssyn_pretty;
+
+ if ( pretty ) {
+ rc = ordered_value_pretty( ad,
+ &vals[i], &pval, NULL );
+
+ } else if ( validate ) {
+ /*
+ * validate value per syntax
+ */
+ rc = ordered_value_validate( ad, &vals[i], LDAP_MOD_ADD );
+
+ } else {
+ Debug( LDAP_DEBUG_ANY,
+ "str2entry: attributeType %s #%d: "
+ "no validator for syntax %s\n",
+ ad->ad_cname.bv_val, attr_cnt,
+ ad->ad_type->sat_syntax->ssyn_oid );
+ goto fail;
+ }
+
+ if( rc != 0 ) {
+ Debug( LDAP_DEBUG_ANY,
+ "str2entry: invalid value "
+ "for attributeType %s #%d (syntax %s)\n",
+ ad->ad_cname.bv_val, attr_cnt,
+ ad->ad_type->sat_syntax->ssyn_oid );
+ goto fail;
+ }
+
+ if( pretty ) {
+ if ( freeval[i] ) free( vals[i].bv_val );
+ vals[i] = pval;
+ freeval[i] = 1;
+ }