svn commit: samba r20477 - in branches/SAMBA_4_0/source: dsdb/schema librpc/idl

metze at samba.org metze at samba.org
Tue Jan 2 14:53:45 GMT 2007


Author: metze
Date: 2007-01-02 14:53:45 +0000 (Tue, 02 Jan 2007)
New Revision: 20477

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20477

Log:
get rid of the spcial case for unicode strings

metze
Modified:
   branches/SAMBA_4_0/source/dsdb/schema/schema_init.c
   branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c
   branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/schema/schema_init.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/schema/schema_init.c	2007-01-02 14:14:35 UTC (rev 20476)
+++ branches/SAMBA_4_0/source/dsdb/schema/schema_init.c	2007-01-02 14:53:45 UTC (rev 20477)
@@ -427,18 +427,34 @@
 		d_printf("%s: %s == NULL\n", __location__, attr); \
 		return WERR_INVALID_PARAM; \
 	} \
-	if (strict && _a->value_ctr.unicode_string.num_values != 1) { \
+	if (strict && _a->value_ctr.data_blob.num_values != 1) { \
 		d_printf("%s: %s num_values == %u\n", __location__, attr, \
-			_a->value_ctr.unicode_string.num_values); \
+			_a->value_ctr.data_blob.num_values); \
 		return WERR_INVALID_PARAM; \
 	} \
-	if (_a && _a->value_ctr.unicode_string.num_values >= 1) { \
-		(p)->elem = talloc_steal(mem_ctx, _a->value_ctr.unicode_string.values[0].string);\
+	if (_a && _a->value_ctr.data_blob.num_values >= 1) { \
+		ssize_t _ret; \
+		_ret = convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX, \
+					     _a->value_ctr.data_blob.values[0].data->data, \
+					     _a->value_ctr.data_blob.values[0].data->length, \
+					     (void **)discard_const(&(p)->elem)); \
+		if (_ret == -1) { \
+			DEBUG(0,("%s: invalid data!\n", attr)); \
+			dump_data(0, \
+				     _a->value_ctr.data_blob.values[0].data->data, \
+				     _a->value_ctr.data_blob.values[0].data->length); \
+			return WERR_FOOBAR; \
+		} \
 	} else { \
 		(p)->elem = NULL; \
 	} \
 } while (0)
 
+#define GET_DN_DS(s, r, attr, mem_ctx, p, elem, strict) do { \
+	/* TODO: ! */ \
+	(p)->elem = NULL; \
+} while (0)
+
 #define GET_BOOL_DS(s, r, attr, p, elem, strict) do { \
 	struct drsuapi_DsReplicaAttribute *_a; \
 	_a = dsdb_find_object_attr_name(s, r, attr, NULL); \
@@ -594,8 +610,8 @@
 
 	GET_UINT32_DS(schema, r, "objectClassCategory", obj, objectClassCategory);
 	GET_STRING_DS(schema, r, "rDNAttID", mem_ctx, obj, rDNAttID, False);
-	GET_STRING_DS(schema, r, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, True);
- 
+	GET_DN_DS(schema, r, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, True);
+
 	GET_STRING_DS(schema, r, "subClassOf", mem_ctx, obj, subClassOf, True);
 
 	obj->systemAuxiliaryClass	= NULL;

Modified: branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c	2007-01-02 14:14:35 UTC (rev 20476)
+++ branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c	2007-01-02 14:53:45 UTC (rev 20477)
@@ -747,17 +747,6 @@
 {
 	uint32_t i;
 
-switch (attr->attributeID_id) {
-case DRSUAPI_ATTRIBUTE_description:
-case DRSUAPI_ATTRIBUTE_adminDisplayName:
-case DRSUAPI_ATTRIBUTE_adminDescription:
-case DRSUAPI_ATTRIBUTE_lDAPDisplayName:
-case DRSUAPI_ATTRIBUTE_name:
-case DRSUAPI_ATTRIBUTE_sAMAccountName:
-case DRSUAPI_ATTRIBUTE_gPLink:
-	return dsdb_syntax_FOOBAR_drsuapi_to_ldb(schema,attr, in, mem_ctx, out);
-}
-
 	out->flags	= 0;
 	out->name	= talloc_strdup(mem_ctx, attr->lDAPDisplayName);
 	W_ERROR_HAVE_NO_MEMORY(out->name);

Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2007-01-02 14:14:35 UTC (rev 20476)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2007-01-02 14:53:45 UTC (rev 20477)
@@ -519,15 +519,6 @@
 	} drsuapi_DsAttributeValueCtrGUID;
 
 	typedef [nodiscriminant] union {
-		/* UnicodeString */
-		[case(DRSUAPI_ATTRIBUTE_description)]		drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_adminDisplayName)]	drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_adminDescription)]	drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_lDAPDisplayName)]	drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_name)]			drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_sAMAccountName)]	drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-		[case(DRSUAPI_ATTRIBUTE_gPLink)]		drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
-
 		/* DN String */
 		[case(DRSUAPI_ATTRIBUTE_member)]		drsuapi_DsAttributeValueCtrDNString dn_string;
 		[case(DRSUAPI_ATTRIBUTE_objectCategory)]	drsuapi_DsAttributeValueCtrDNString dn_string;



More information about the samba-cvs mailing list