]> git.sur5r.net Git - openldap/commitdiff
Add slapi_int_dn_pretty()/slapi_int_dn_normalize() to support plugins
authorLuke Howard <lukeh@openldap.org>
Thu, 28 Jul 2005 09:02:13 +0000 (09:02 +0000)
committerLuke Howard <lukeh@openldap.org>
Thu, 28 Jul 2005 09:02:13 +0000 (09:02 +0000)
that override distinguishedName syntax and matching rule

servers/slapd/slapi/slapi_utils.c

index 95c9bbda6ad432e132b7c789de9bfcbe979ab0aa..ff8a6c00bdd65c87ddf77fc0fdb3992e38c91d86 100644 (file)
@@ -148,6 +148,27 @@ slapi_x_entry_get_id( Slapi_Entry *e )
        return e->e_id;
 }
 
+static int
+slapi_int_dn_pretty( struct berval *in, struct berval *out )
+{
+       Syntax          *syntax = slap_schema.si_syn_distinguishedName;
+
+       assert( syntax != NULL );
+
+       return (syntax->ssyn_pretty)( syntax, in, out, NULL );
+}
+
+static int
+slapi_int_dn_normalize( struct berval *in, struct berval *out )
+{
+       MatchingRule    *mr = slap_schema.si_mr_distinguishedNameMatch;
+       Syntax          *syntax = slap_schema.si_syn_distinguishedName;
+
+       assert( mr != NULL );
+
+       return (mr->smr_normalize)( 0, syntax, mr, in, out, NULL );
+}
+
 void 
 slapi_entry_set_dn(
        Slapi_Entry     *e, 
@@ -158,7 +179,8 @@ slapi_entry_set_dn(
        dn.bv_val = ldn;
        dn.bv_len = strlen( ldn );
 
-       dnPrettyNormal( NULL, &dn, &e->e_name, &e->e_nname, NULL );
+       slapi_int_dn_pretty( &dn, &e->e_name );
+       slapi_int_dn_normalize( &dn, &e->e_nname );
 }
 
 Slapi_Entry *
@@ -770,7 +792,7 @@ slapi_dn_normalize( char *dn )
        bdn.bv_val = dn;
        bdn.bv_len = strlen( dn );
 
-       if ( dnPretty( NULL, &bdn, &pdn, NULL ) != LDAP_SUCCESS ) {
+       if ( slapi_int_dn_pretty( &bdn, &pdn ) != LDAP_SUCCESS ) {
                return NULL;
        }
 
@@ -788,7 +810,7 @@ slapi_dn_normalize_case( char *dn )
        bdn.bv_val = dn;
        bdn.bv_len = strlen( dn );
 
-       if ( dnNormalize( 0, NULL, NULL, &bdn, &ndn, NULL ) != LDAP_SUCCESS ) {
+       if ( slapi_int_dn_normalize( &bdn, &ndn ) != LDAP_SUCCESS ) {
                return NULL;
        }