summaryrefslogtreecommitdiff
path: root/source4/dsdb/schema/schema.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-12-17 02:19:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:29:23 -0500
commitc5571c7c3964975d5c1f1c347b8629577d2e86c6 (patch)
tree82e9af9b07d55b8d09a9c520bbd90d045d121691 /source4/dsdb/schema/schema.h
parentff8ef6c280a7107ce521eee57df9218b4cac0465 (diff)
downloadsamba-c5571c7c3964975d5c1f1c347b8629577d2e86c6.tar.gz
samba-c5571c7c3964975d5c1f1c347b8629577d2e86c6.tar.bz2
samba-c5571c7c3964975d5c1f1c347b8629577d2e86c6.zip
r20221: - move the dsdb_schema, dsdb_attribute, dsdb_class structs into
a generic location - this struct should be also used by the dsdb/samdb/ldb_modules/schema.c module later - add functions to map from LDAP OID values to uint32_t values - add torture test for the OID => uint32 mapping code metze (This used to be commit 58ba6ec195ce3a5e2352866809f6cb57f8d8260a)
Diffstat (limited to 'source4/dsdb/schema/schema.h')
-rw-r--r--source4/dsdb/schema/schema.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h
new file mode 100644
index 0000000000..e872a6088e
--- /dev/null
+++ b/source4/dsdb/schema/schema.h
@@ -0,0 +1,109 @@
+/*
+ Unix SMB/CIFS mplementation.
+ DSDB schema header
+
+ Copyright (C) Stefan Metzmacher 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
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ 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.
+
+*/
+
+#ifndef _DSDB_SCHEMA_H
+#define _DSDB_SCHEMA_H
+
+struct dsdb_attribute {
+ struct dsdb_attribute *prev, *next;
+
+ const char *cn;
+ const char *lDAPDisplayName;
+ const char *attributeID_oid;
+ uint32_t attributeID_id;
+ struct GUID schemaIDGUID;
+ uint32_t mAPIID;
+
+ struct GUID attributeSecurityGUID;
+
+ uint32_t searchFlags;
+ uint32_t systemFlags;
+ BOOL isMemberOfPartialAttributeSet;
+ uint32_t linkID;
+
+ const char *attributeSyntax_oid;
+ uint32_t attributeSyntax_id;
+ uint32_t oMSyntax;
+ struct ldb_val oMObjectClass;
+
+ BOOL isSingleValued;
+ uint32_t rangeLower;
+ uint32_t rangeUpper;
+ BOOL extendedCharsAllowed;
+
+ uint32_t schemaFlagsEx;
+ struct ldb_val msDs_Schema_Extensions;
+
+ BOOL showInAdvancedViewOnly;
+ const char *adminDisplayName;
+ const char *adminDescription;
+ const char *classDisplayName;
+ BOOL isEphemeral;
+ BOOL isDefunct;
+ BOOL systemOnly;
+};
+
+struct dsdb_class {
+ struct dsdb_class *prev, *next;
+
+ const char *cn;
+ const char *lDAPDisplayName;
+ const char *governsID_oid;
+ uint32_t governsID_id;
+ struct GUID schemaIDGUID;
+
+ uint32_t objectClassCategory;
+ const char *rDNAttID;
+ const char *defaultObjectCategory;
+
+ const char *subClassOf;
+
+ const char *systemAuxiliaryClass;
+ const char **systemPossSuperiors;
+ const char **systemMustContain;
+ const char **systemMayContain;
+
+ const char *auxiliaryClass;
+ const char **possSuperiors;
+ const char **mustContain;
+ const char **mayContain;
+
+ const char *defaultSecurityDescriptor;
+
+ uint32_t schemaFlagsEx;
+ struct ldb_val msDs_Schema_Extensions;
+
+ BOOL showInAdvancedViewOnly;
+ const char *adminDisplayName;
+ const char *adminDescription;
+ const char *classDisplayName;
+ BOOL defaultHidingValue;
+ BOOL isDefunct;
+ BOOL systemOnly;
+};
+
+struct dsdb_schema {
+ struct dsdb_attribute *attributes;
+ struct dsdb_class *classes;
+};
+
+#endif /* _DSDB_SCHEMA_H */