]> git.sur5r.net Git - openldap/commitdiff
Moved get_alias_dn from back-ldbm to frontend
authorHoward Chu <hyc@openldap.org>
Sat, 5 Apr 2003 06:34:20 +0000 (06:34 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 5 Apr 2003 06:34:20 +0000 (06:34 +0000)
servers/slapd/back-ldbm/alias.c
servers/slapd/proto-slap.h
servers/slapd/referral.c

index 4521ca491cb9c7349c0f7dd854abad9543936315..104dbbee514ac0150849a4eb917524073a0eeec8 100644 (file)
 #include "proto-back-ldbm.h"
 
 
-static int get_alias_dn(
-       Entry *e,
-       struct berval *al,
-       int *err,
-       const char **errmsg );
-
 static void new_superior(
        struct berval *dn,
        struct berval *oldSup,
@@ -199,56 +193,6 @@ Entry *deref_internal_r(
 }
 
 
-static int get_alias_dn(
-       Entry *e,
-       struct berval *ndn,
-       int *err,
-       const char **errmsg )
-{      
-       int rc;
-       Attribute *a;
-       AttributeDescription *aliasedObjectName
-               = slap_schema.si_ad_aliasedObjectName;
-
-       a = attr_find( e->e_attrs, aliasedObjectName );
-
-       if( a == NULL ) {
-               /*
-                * there was an aliasedobjectname defined but no data.
-                */
-               *err = LDAP_ALIAS_PROBLEM;
-               *errmsg = "alias missing aliasedObjectName attribute";
-               return -1;
-       }
-
-       /* 
-        * aliasedObjectName should be SINGLE-VALUED with a single value. 
-        */                     
-       if ( a->a_vals[0].bv_val == NULL ) {
-               /*
-                * there was an aliasedobjectname defined but no data.
-                */
-               *err = LDAP_ALIAS_PROBLEM;
-               *errmsg = "alias missing aliasedObjectName value";
-               return -1;
-       }
-
-       if( a->a_vals[1].bv_val != NULL ) {
-               *err = LDAP_ALIAS_PROBLEM;
-               *errmsg = "alias has multivalued aliasedObjectName";
-               return -1;
-       }
-
-       rc = dnNormalize2( NULL, &a->a_vals[0], ndn );
-       if( rc != LDAP_SUCCESS ) {
-               *err = LDAP_ALIAS_PROBLEM;
-               *errmsg = "alias aliasedObjectName value is invalid";
-               return -1;
-       }
-
-       return 0;
-}
-
 static void new_superior(
        struct berval *dn,
        struct berval *oldSup,
index 55028348179e159903751e9071a62f6f2b860e7a..f7434861043d5be995fb33bf01e00b8e0901a107 100644 (file)
@@ -784,6 +784,12 @@ LDAP_SLAPD_F (BerVarray) referral_rewrite LDAP_P((
        struct berval *target,
        int scope ));
 
+LDAP_SLAPD_F (int) get_alias_dn LDAP_P((
+       Entry *e,
+       struct berval *ndn,
+       int *err,
+       const char **text ));
+
 /*
  * repl.c
  */
index acc9b9c2c5f82b7d1b43a84422c14cfda6b6369e..4e596ef2871ec5cdc237240e4a5ee05d7f424bc7 100644 (file)
@@ -356,3 +356,48 @@ BerVarray get_entry_referrals(
        return refs;
 }
 
+
+int get_alias_dn(
+       Entry *e,
+       struct berval *ndn,
+       int *err,
+       const char **text )
+{      
+       Attribute *a;
+       AttributeDescription *aliasedObjectName
+               = slap_schema.si_ad_aliasedObjectName;
+
+       a = attr_find( e->e_attrs, aliasedObjectName );
+
+       if( a == NULL ) {
+               /*
+                * there was an aliasedobjectname defined but no data.
+                */
+               *err = LDAP_ALIAS_PROBLEM;
+               *text = "alias missing aliasedObjectName attribute";
+               return -1;
+       }
+
+       /* 
+        * aliasedObjectName should be SINGLE-VALUED with a single value. 
+        */                     
+       if ( a->a_vals[0].bv_val == NULL ) {
+               /*
+                * there was an aliasedobjectname defined but no data.
+                */
+               *err = LDAP_ALIAS_PROBLEM;
+               *text = "alias missing aliasedObjectName value";
+               return -1;
+       }
+
+       if( a->a_nvals[1].bv_val != NULL ) {
+               *err = LDAP_ALIAS_PROBLEM;
+               *text = "alias has multivalued aliasedObjectName";
+               return -1;
+       }
+
+       *ndn = a->a_nvals[0];
+
+       return 0;
+}
+