]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/backend.c
Add ldap_*2name() in <include,libldap>/schema, use them in slapd/schema
[openldap] / servers / slapd / backend.c
index 5b5a1f5db822bd99866ab50a86b9ac3777a34059..0c07a87a9bba3b0526c340a9fd96c1cb1216a67d 100644 (file)
@@ -1,3 +1,7 @@
+/*
+ * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
 /* backend.c - routines for dealing with back-end databases */
 
 
@@ -13,6 +17,8 @@
 #include "slap.h"
 #include "lutil.h"
 
+#include "ldap_defaults.h"
+
 #ifdef SLAPD_LDAP
 #include "back-ldap/external.h"
 #endif
@@ -385,6 +391,9 @@ backend_db_init(
        be->be_sizelimit = defsize;
        be->be_timelimit = deftime;
 
+       be->be_realm = global_realm != NULL
+               ? ch_strdup( global_realm ) : NULL;
+
        if(bi->bi_db_init) {
                rc = bi->bi_db_init( be );
        }
@@ -434,26 +443,6 @@ select_backend( char * dn )
                }
        }
 
-        /* if no proper suffix could be found then check for aliases */
-        for ( i = 0; i < nbackends; i++ ) {
-                for ( j = 0; 
-                     backends[i].be_suffixAlias != NULL && 
-                      backends[i].be_suffixAlias[j] != NULL; 
-                     j += 2 )
-                {
-                        len = strlen( backends[i].be_suffixAlias[j] );
-
-                        if ( len > dnlen ) {
-                                continue;
-                        }
-
-                        if ( strcmp( backends[i].be_suffixAlias[j],
-                            dn + (dnlen - len) ) == 0 ) {
-                                return( &backends[i] );
-                        }
-                }
-        }
-
 #ifdef LDAP_ALLOW_NULL_SEARCH_BASE
        /* Add greg@greg.rim.or.jp
         * It's quick hack for cheap client
@@ -596,7 +585,6 @@ backend_connection_destroy(
        return 0;
 }
 
-#ifdef SLAPD_ACLGROUPS
 int 
 backend_group(
        Backend *be,
@@ -613,4 +601,22 @@ backend_group(
        else
                return(1);
 }
+
+#ifdef SLAPD_SCHEMA_DN
+Attribute *backend_subschemasubentry( Backend *be )
+{
+       /* should be backend specific */
+       static struct berval ss_val = {
+               sizeof(SLAPD_SCHEMA_DN)-1,
+               SLAPD_SCHEMA_DN };
+       static struct berval *ss_vals[2] = { &ss_val, NULL };
+       static Attribute ss_attr = {
+               "subschemasubentry",
+               ss_vals,
+               SYNTAX_DN | SYNTAX_CIS,
+               NULL
+       };
+
+       return &ss_attr;
+}
 #endif