Generate the subSchema in cn=Aggregate
[kai/samba-autobuild/.git] / source4 / dsdb / schema / schema.h
index b267c6c74ec4ae308215a01198b5e58bc137f203..cd714e9c6189d096db4fde6ec755c7545289b368 100644 (file)
@@ -2,11 +2,11 @@
    Unix SMB/CIFS mplementation.
    DSDB schema header
    
-   Copyright (C) Stefan Metzmacher 2006
+   Copyright (C) Stefan Metzmacher <metze@samba.org> 2006
     
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -15,8 +15,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
 */
 
@@ -60,7 +59,7 @@ struct dsdb_attribute {
 
        uint32_t searchFlags;
        uint32_t systemFlags;
-       BOOL isMemberOfPartialAttributeSet;
+       bool isMemberOfPartialAttributeSet;
        uint32_t linkID;
 
        const char *attributeSyntax_oid;
@@ -68,21 +67,21 @@ struct dsdb_attribute {
        uint32_t oMSyntax;
        struct ldb_val oMObjectClass;
 
-       BOOL isSingleValued;
+       bool isSingleValued;
        uint32_t rangeLower;
        uint32_t rangeUpper;
-       BOOL extendedCharsAllowed;
+       bool extendedCharsAllowed;
 
        uint32_t schemaFlagsEx;
        struct ldb_val msDs_Schema_Extensions;
 
-       BOOL showInAdvancedViewOnly;
+       bool showInAdvancedViewOnly;
        const char *adminDisplayName;
        const char *adminDescription;
        const char *classDisplayName;
-       BOOL isEphemeral;
-       BOOL isDefunct;
-       BOOL systemOnly;
+       bool isEphemeral;
+       bool isDefunct;
+       bool systemOnly;
 
        /* internal stuff */
        const struct dsdb_syntax *syntax;
@@ -112,19 +111,20 @@ struct dsdb_class {
        const char **possSuperiors;
        const char **mustContain;
        const char **mayContain;
+       const char **possibleInferiors;
 
        const char *defaultSecurityDescriptor;
 
        uint32_t schemaFlagsEx;
        struct ldb_val msDs_Schema_Extensions;
 
-       BOOL showInAdvancedViewOnly;
+       bool showInAdvancedViewOnly;
        const char *adminDisplayName;
        const char *adminDescription;
        const char *classDisplayName;
-       BOOL defaultHidingValue;
-       BOOL isDefunct;
-       BOOL systemOnly;
+       bool defaultHidingValue;
+       bool isDefunct;
+       bool systemOnly;
 };
 
 struct dsdb_schema_oid_prefix {
@@ -149,6 +149,39 @@ struct dsdb_schema {
 
        struct dsdb_attribute *attributes;
        struct dsdb_class *classes;
+
+       struct {
+               bool we_are_master;
+               struct ldb_dn *master_dn;
+       } fsmo;
+
+       struct smb_iconv_convenience *iconv_convenience;
 };
 
+enum dsdb_attr_list_query {
+       DSDB_SCHEMA_ALL_MAY,
+       DSDB_SCHEMA_ALL_MUST,
+       DSDB_SCHEMA_SYS_MAY,
+       DSDB_SCHEMA_SYS_MUST,
+       DSDB_SCHEMA_MAY,
+       DSDB_SCHEMA_MUST,
+       DSDB_SCHEMA_ALL
+};
+
+enum dsdb_schema_convert_target {
+       TARGET_OPENLDAP,
+       TARGET_FEDORA_DS,
+       TARGET_AD_SCHEMA_SUBENTRY
+};
+
+struct dsdb_syntax_map {
+       const char *Standard_OID;
+       const char *AD_OID;
+       const char *equality;
+       const char *substring;
+       const char *comment;
+};
+
+#include "dsdb/schema/proto.h"
+
 #endif /* _DSDB_SCHEMA_H */