[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha5-297-g61f2958

Andrew Bartlett abartlet at samba.org
Mon Aug 18 01:46:14 GMT 2008


The branch, v4-0-test has been updated
       via  61f2958c84beeedcf369ccdc02afed0c8055b108 (commit)
      from  88cf5d8b708d6247772b33128f0e212a4c2e9ba8 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 61f2958c84beeedcf369ccdc02afed0c8055b108
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Aug 18 10:16:45 2008 +1000

    Merge the two attribute syntax tables.
    
    This merges the table once found in the oLschema2ldif tool (and moved
    many times) with the table used for DRSUAPI.
    
    The OpenLDAP schema map has been updated, to ensure that despite a
    number of attributes being declared as OIDs, they are actually used as
    strings (as they are actually LDAP class/attribute names).
    
    Andrew Bartlett

-----------------------------------------------------------------------

Summary of changes:
 source/dsdb/config.mk                   |    3 +-
 source/dsdb/schema/schema.h             |   11 +--
 source/dsdb/schema/schema_convert.c     |  160 -------------------------------
 source/dsdb/schema/schema_convert.h     |   10 --
 source/dsdb/schema/schema_description.c |    4 +-
 source/dsdb/schema/schema_syntax.c      |   70 +++++++++++++-
 source/setup/schema-map-openldap-2.3    |    3 +
 source/utils/ad2oLschema.c              |    4 +-
 source/utils/oLschema2ldif.c            |    4 +-
 9 files changed, 82 insertions(+), 187 deletions(-)
 delete mode 100644 source/dsdb/schema/schema_convert.c
 delete mode 100644 source/dsdb/schema/schema_convert.h


Changeset truncated at 500 lines:

diff --git a/source/dsdb/config.mk b/source/dsdb/config.mk
index d430c3f..ae35078 100644
--- a/source/dsdb/config.mk
+++ b/source/dsdb/config.mk
@@ -35,8 +35,7 @@ PRIVATE_DEPENDENCIES = SAMDB_COMMON NDR_DRSUAPI NDR_DRSBLOBS
 SAMDB_SCHEMA_OBJ_FILES = $(addprefix $(dsdbsrcdir)/schema/, \
 		schema_init.o \
 		schema_syntax.o \
-		schema_description.o \
-		schema_convert.o)
+		schema_description.o)
 
 $(eval $(call proto_header_template,$(dsdbsrcdir)/schema/proto.h,$(SAMDB_SCHEMA_OBJ_FILES:.o=.c)))
 # PUBLIC_HEADERS += dsdb/schema/schema.h
diff --git a/source/dsdb/schema/schema.h b/source/dsdb/schema/schema.h
index cd714e9..df7826d 100644
--- a/source/dsdb/schema/schema.h
+++ b/source/dsdb/schema/schema.h
@@ -32,6 +32,9 @@ struct dsdb_syntax {
 	uint32_t oMSyntax;
 	struct ldb_val oMObjectClass;
 	const char *attributeSyntax_oid;
+	const char *equality;
+	const char *substring;
+	const char *comment;
 
 	WERROR (*drsuapi_to_ldb)(const struct dsdb_schema *schema,
 				 const struct dsdb_attribute *attr,
@@ -174,14 +177,6 @@ enum dsdb_schema_convert_target {
 	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 */
diff --git a/source/dsdb/schema/schema_convert.c b/source/dsdb/schema/schema_convert.c
deleted file mode 100644
index 673e7a3..0000000
--- a/source/dsdb/schema/schema_convert.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* 
-   ldb database library
-
-   Copyright (C) Simo Sorce 2005
-   
-   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 3 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, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "dsdb/samdb/samdb.h"
-
-/* Shared map for converting syntax between formats */
-static const struct dsdb_syntax_map syntax_map[] = {
-	{ 
-		.Standard_OID = "1.3.6.1.4.1.1466.115.121.1.12", 
-		.AD_OID = "2.5.5.1", 
-		.equality = "distinguishedNameMatch",
-		.comment = "Object(DS-DN) == a DN" 
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.38",
-		.AD_OID =  "2.5.5.2",
-		.equality = "objectIdentifierMatch",
-		.comment =  "OID String"
-	},
-	{ 
-		.Standard_OID =  "1.2.840.113556.1.4.905", 
-		.AD_OID =  "2.5.5.4",
-		.equality = "caseIgnoreMatch",
-		.substring = "caseIgnoreSubstringsMatch",
-		.comment =   "Case Insensitive String" 
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.26",
-		.AD_OID =   "2.5.5.5",
-		.equality = "caseExactIA5Match",
-		.comment = "Printable String"
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.36",
-		.AD_OID =   "2.5.5.6", 
-		.equality = "numericStringMatch",
-		.substring = "numericStringSubstringsMatch",
-		.comment = "Numeric String" 
-	},
-	{ 
-		.Standard_OID =  "1.2.840.113556.1.4.903", 
-		.AD_OID =  "2.5.5.7", 
-		.equality = "distinguishedNameMatch",
-		.comment = "OctetString: Binary+DN" 
-	},
-	{ 
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.7",
-		.AD_OID =   "2.5.5.8", 
-		.equality = "booleanMatch",
-		.comment = "Boolean" 
-	},
-	{ 
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.27",
-		.AD_OID =   "2.5.5.9", 
-		.equality = "integerMatch",
-		.comment = "Integer" 
-	},
-	{ 
-		.Standard_OID = "1.3.6.1.4.1.1466.115.121.1.40",
-		.AD_OID       = "2.5.5.10",
-		.equality     = "octetStringMatch",
-		.comment      =  "Octet String"
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.24",
-		.AD_OID =   "2.5.5.11", 
-		.equality = "generalizedTimeMatch",
-		.comment = "Generalized Time"
-	},
-	{ 
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.53",
-		.AD_OID =   "2.5.5.11", 
-		.equality = "generalizedTimeMatch",
-		.comment = "UTC Time" 
-	},
-	{ 
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.15",
-		.AD_OID =   "2.5.5.12", 
-		.equality = "caseIgnoreMatch",
-		.substring = "caseIgnoreSubstringsMatch",
-		.comment = "Directory String"
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.43",
-		.AD_OID =   "2.5.5.13", 
-		.comment = "Presentation Address" 
-	},
-	{
-		.Standard_OID =   "Not Found Yet", 
-		.AD_OID =  "2.5.5.14", 
-		.equality = "distinguishedNameMatch",
-		.comment = "OctetString: String+DN" 
-	},
-	{
-		.Standard_OID =  "1.2.840.113556.1.4.907",
-		.AD_OID =   "2.5.5.15", 
-		.equality     = "octetStringMatch",
-		.comment = "NT Security Descriptor"
-	},
-	{ 
-		.Standard_OID =  "1.2.840.113556.1.4.906", 
-		.AD_OID =  "2.5.5.16", 
-		.equality = "integerMatch",
-		.comment = "Large Integer" 
-	},
-	{
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.40",
-		.AD_OID =   "2.5.5.17",
-		.equality     = "octetStringMatch",
-		.comment =  "Octet String - Security Identifier (SID)" 
-	},
-	{ 
-		.Standard_OID =  "1.3.6.1.4.1.1466.115.121.1.26", 
-		.AD_OID =  "2.5.5.5", 
-		.equality = "caseExactIA5Match",
-		.comment = "IA5 String" 
-	},
-	{	.Standard_OID = NULL
-	}
-};
-
-
-const struct dsdb_syntax_map *find_syntax_map_by_ad_oid(const char *ad_oid) 
-{
-	int i;
-	for (i=0; syntax_map[i].Standard_OID; i++) {
-		if (strcasecmp(ad_oid, syntax_map[i].AD_OID) == 0) {
-			return &syntax_map[i];
-		}
-	}
-	return NULL;
-}
-
-const struct dsdb_syntax_map *find_syntax_map_by_standard_oid(const char *standard_oid) 
-{
-	int i;
-	for (i=0; syntax_map[i].Standard_OID; i++) {
-		if (strcasecmp(standard_oid, syntax_map[i].Standard_OID) == 0) {
-			return &syntax_map[i];
-		}
-	}
-	return NULL;
-}
diff --git a/source/dsdb/schema/schema_convert.h b/source/dsdb/schema/schema_convert.h
deleted file mode 100644
index de37934..0000000
--- a/source/dsdb/schema/schema_convert.h
+++ /dev/null
@@ -1,10 +0,0 @@
-struct syntax_map {
-	const char *Standard_OID;
-	const char *AD_OID;
-	const char *equality;
-	const char *substring;
-	const char *comment;
-};
-
-const struct syntax_map *find_syntax_map_by_ad_oid(const char *ad_oid); 
-const struct syntax_map *find_syntax_map_by_standard_oid(const char *standard_oid);
diff --git a/source/dsdb/schema/schema_description.c b/source/dsdb/schema/schema_description.c
index 2f3acd1..9d93af9 100644
--- a/source/dsdb/schema/schema_description.c
+++ b/source/dsdb/schema/schema_description.c
@@ -90,8 +90,8 @@ char *schema_attribute_description(TALLOC_CTX *mem_ctx,
 char *schema_attribute_to_description(TALLOC_CTX *mem_ctx, const struct dsdb_attribute *attribute) 
 {
 	char *schema_description;
-	const struct dsdb_syntax_map *map = find_syntax_map_by_ad_oid(attribute->attributeSyntax_oid);
-	const char *syntax = map ? map->Standard_OID : attribute->attributeSyntax_oid;
+	const struct dsdb_syntax *map = find_syntax_map_by_ad_oid(attribute->attributeSyntax_oid);
+	const char *syntax = map ? map->ldap_oid : attribute->attributeSyntax_oid;
 	TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
 	if (!tmp_ctx) {
 		return NULL;
diff --git a/source/dsdb/schema/schema_syntax.c b/source/dsdb/schema/schema_syntax.c
index beacfc4..b1ca256 100644
--- a/source/dsdb/schema/schema_syntax.c
+++ b/source/dsdb/schema/schema_syntax.c
@@ -3,7 +3,9 @@
    DSDB schema syntaxes
    
    Copyright (C) Stefan Metzmacher <metze at samba.org> 2006
-    
+   Copyright (C) Simo Sorce 2005
+   Copyright (C) Andrew Bartlett <abartlet at samba.org> 2008
+
    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 3 of the License, or
@@ -1120,6 +1122,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.8",
 		.drsuapi_to_ldb		= dsdb_syntax_BOOL_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_BOOL_ldb_to_drsuapi,
+		.equality               = "booleanMatch",
+		.comment                = "Boolean" 
 	},{
 		.name			= "Integer",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.27",
@@ -1127,6 +1131,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.9",
 		.drsuapi_to_ldb		= dsdb_syntax_INT32_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_INT32_ldb_to_drsuapi,
+		.equality               = "integerMatch",
+		.comment                = "Integer"
 	},{
 		.name			= "String(Octet)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.40",
@@ -1134,6 +1140,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.10",
 		.drsuapi_to_ldb		= dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+		.equality               = "octetStringMatch",
+		.comment                =  "Octet String"
 	},{
 		.name			= "String(Sid)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.40",
@@ -1141,6 +1149,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.17",
 		.drsuapi_to_ldb		= dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+		.equality               = "octetStringMatch",
+		.comment                = "Octet String - Security Identifier (SID)" 
 	},{
 		.name			= "String(Object-Identifier)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.38",
@@ -1148,6 +1158,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.2",
 		.drsuapi_to_ldb		= dsdb_syntax_OID_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_OID_ldb_to_drsuapi,
+		.equality               = "caseIgnoreMatch", /* Would use "objectIdentifierMatch" but most are ldap attribute/class names */
+		.comment                = "OID String"
 	},{
 		.name			= "Enumeration",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.27",
@@ -1163,6 +1175,9 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.6",
 		.drsuapi_to_ldb		= dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+		.equality               = "numericStringMatch",
+		.substring              = "numericStringSubstringsMatch",
+		.comment                = "Numeric String" 
 	},{
 		.name			= "String(Printable)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.44",
@@ -1177,6 +1192,9 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.4",
 		.drsuapi_to_ldb		= dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+		.equality               = "caseIgnoreMatch",
+		.substring              = "caseIgnoreSubstringsMatch",
+		.comment                = "Case Insensitive String" 
 	},{
 		.name			= "String(IA5)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.26",
@@ -1184,6 +1202,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.5",
 		.drsuapi_to_ldb		= dsdb_syntax_DATA_BLOB_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DATA_BLOB_ldb_to_drsuapi,
+		.equality               = "caseExactIA5Match",
+		.comment                = "Printable String"
 	},{
 		.name			= "String(UTC-Time)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.53",
@@ -1191,6 +1211,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.11",
 		.drsuapi_to_ldb		= dsdb_syntax_NTTIME_UTC_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_NTTIME_UTC_ldb_to_drsuapi,
+		.equality               = "generalizedTimeMatch",
+		.comment                = "UTC Time" 
 	},{
 		.name			= "String(Generalized-Time)",
 		.ldap_oid		= "1.3.6.1.4.1.1466.115.121.1.24",
@@ -1198,6 +1220,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.11",
 		.drsuapi_to_ldb		= dsdb_syntax_NTTIME_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_NTTIME_ldb_to_drsuapi,
+		.equality               = "generalizedTimeMatch",
+		.comment                = "Generalized Time"
 	},{
 	/* not used in w2k3 schema */
 		.name			= "String(Case Sensitive)",
@@ -1213,6 +1237,9 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.12",
 		.drsuapi_to_ldb		= dsdb_syntax_UNICODE_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_UNICODE_ldb_to_drsuapi,
+		.equality               = "caseIgnoreMatch",
+		.substring              = "caseIgnoreSubstringsMatch",
+		.comment                = "Directory String"
 	},{
 		.name			= "Interval/LargeInteger",
 		.ldap_oid		= "1.2.840.113556.1.4.906",
@@ -1220,6 +1247,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.16",
 		.drsuapi_to_ldb		= dsdb_syntax_INT64_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_INT64_ldb_to_drsuapi,
+		.equality               = "integerMatch",
+		.comment                = "Large Integer" 
 	},{
 		.name			= "String(NT-Sec-Desc)",
 		.ldap_oid		= "1.2.840.113556.1.4.907",
@@ -1235,6 +1264,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.1",
 		.drsuapi_to_ldb		= dsdb_syntax_DN_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DN_ldb_to_drsuapi,
+		.equality               = "distinguishedNameMatch",
+		.comment                = "Object(DS-DN) == a DN" 
 	},{
 		.name			= "Object(DN-Binary)",
 		.ldap_oid		= "1.2.840.113556.1.4.903",
@@ -1243,6 +1274,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.7",
 		.drsuapi_to_ldb		= dsdb_syntax_DN_BINARY_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_DN_BINARY_ldb_to_drsuapi,
+		.equality               = "distinguishedNameMatch",
+		.comment                = "OctetString: Binary+DN" 
 	},{
 	/* not used in w2k3 schema */
 		.name			= "Object(OR-Name)",
@@ -1274,6 +1307,7 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.13",
 		.drsuapi_to_ldb		= dsdb_syntax_PRESENTATION_ADDRESS_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_PRESENTATION_ADDRESS_ldb_to_drsuapi,
+		.comment                = "Presentation Address" 
 	},{
 	/* not used in w2k3 schema */
 		.name			= "Object(Access-Point)",
@@ -1283,6 +1317,8 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 		.attributeSyntax_oid	= "2.5.5.14",
 		.drsuapi_to_ldb		= dsdb_syntax_FOOBAR_drsuapi_to_ldb,
 		.ldb_to_drsuapi		= dsdb_syntax_FOOBAR_ldb_to_drsuapi,
+		.equality               = "distinguishedNameMatch",
+		.comment                = "OctetString: String+DN" 
 	},{
 	/* not used in w2k3 schema */
 		.name			= "Object(DN-String)",
@@ -1295,6 +1331,38 @@ static const struct dsdb_syntax dsdb_syntaxes[] = {
 	}
 };
 
+const struct dsdb_syntax *find_syntax_map_by_ad_oid(const char *ad_oid) 
+{
+	int i;
+	for (i=0; dsdb_syntaxes[i].ldap_oid; i++) {
+		if (strcasecmp(ad_oid, dsdb_syntaxes[i].attributeSyntax_oid) == 0) {
+			return &dsdb_syntaxes[i];
+		}
+	}
+	return NULL;
+}
+
+const struct dsdb_syntax *find_syntax_map_by_ad_syntax(int oMSyntax) 
+{
+	int i;
+	for (i=0; dsdb_syntaxes[i].ldap_oid; i++) {
+		if (oMSyntax == dsdb_syntaxes[i].oMSyntax) {
+			return &dsdb_syntaxes[i];
+		}
+	}
+	return NULL;
+}
+
+const struct dsdb_syntax *find_syntax_map_by_standard_oid(const char *standard_oid) 
+{
+	int i;
+	for (i=0; dsdb_syntaxes[i].ldap_oid; i++) {
+		if (strcasecmp(standard_oid, dsdb_syntaxes[i].ldap_oid) == 0) {
+			return &dsdb_syntaxes[i];
+		}
+	}
+	return NULL;
+}
 const struct dsdb_syntax *dsdb_syntax_for_attribute(const struct dsdb_attribute *attr)
 {
 	uint32_t i;
diff --git a/source/setup/schema-map-openldap-2.3 b/source/setup/schema-map-openldap-2.3
index f527961..7de2e67 100644
--- a/source/setup/schema-map-openldap-2.3
+++ b/source/setup/schema-map-openldap-2.3
@@ -39,3 +39,6 @@ modifyTimeStamp:samba4ModifyTimestamp
 1.2.840.113556.1.4.903:1.3.6.1.4.1.1466.115.121.1.12
 #Treat Security Descriptors as binary
 1.2.840.113556.1.4.907:1.3.6.1.4.1.1466.115.121.1.40
+#Treat OIDs as case insensitive strings (as otherwise ldap class and
+#attribute names, declared at OIDs fail 
+1.3.6.1.4.1.1466.115.121.1.38:1.3.6.1.4.1.1466.115.121.1.44
diff --git a/source/utils/ad2oLschema.c b/source/utils/ad2oLschema.c
index ea5b813..e229bd1 100644
--- a/source/utils/ad2oLschema.c
+++ b/source/utils/ad2oLschema.c
@@ -229,7 +229,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
 		const char *equality = NULL, *substring = NULL;
 		bool single_value = attribute->isSingleValued;
 
-		const struct dsdb_syntax_map *map = find_syntax_map_by_ad_oid(syntax);
+		const struct dsdb_syntax *map = find_syntax_map_by_ad_syntax(attribute->oMSyntax);
 		char *schema_entry = NULL;
 		int j;
 
@@ -251,7 +251,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum dsdb_sch
 			/* We might have been asked to remap this oid,
 			 * due to a conflict, or lack of
 			 * implementation */
-			syntax = map->Standard_OID;
+			syntax = map->ldap_oid;
 			/* We might have been asked to remap this oid, due to a conflict */
 			for (j=0; syntax && oid_map && oid_map[j].old_oid; j++) {
 				if (strcasecmp(syntax, oid_map[j].old_oid) == 0) {
diff --git a/source/utils/oLschema2ldif.c b/source/utils/oLschema2ldif.c
index d045b08..6c4e6a9 100644
--- a/source/utils/oLschema2ldif.c
+++ b/source/utils/oLschema2ldif.c
@@ -433,12 +433,12 @@ static struct ldb_message *process_entry(TALLOC_CTX *mem_ctx, const char *entry)
 
 		case SCHEMA_SYNTAX:
 		{
-			const struct dsdb_syntax_map *map = 
+			const struct dsdb_syntax *map = 
 				find_syntax_map_by_standard_oid(token->value);
 			if (!map) {
 				break;
 			}
-			MSG_ADD_STRING("attributeSyntax", map->AD_OID);
+			MSG_ADD_STRING("attributeSyntax", map->attributeSyntax_oid);
 			break;
 		}
 		case SCHEMA_DESC:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list