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

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


Author: metze
Date: 2007-01-02 14:14:35 +0000 (Tue, 02 Jan 2007)
New Revision: 20476

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

Log:
get rid of extra case for uint32 values

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/libnet/libnet_become_dc.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 13:54:37 UTC (rev 20475)
+++ branches/SAMBA_4_0/source/dsdb/schema/schema_init.c	2007-01-02 14:14:35 UTC (rev 20476)
@@ -472,9 +472,10 @@
 #define GET_UINT32_DS(s, r, attr, p, elem) do { \
 	struct drsuapi_DsReplicaAttribute *_a; \
 	_a = dsdb_find_object_attr_name(s, r, attr, NULL); \
-	if (_a && _a->value_ctr.uint32.num_values >= 1 \
-	    && _a->value_ctr.uint32.values[0].value) { \
-		(p)->elem = *_a->value_ctr.uint32.values[0].value;\
+	if (_a && _a->value_ctr.data_blob.num_values >= 1 \
+	    && _a->value_ctr.data_blob.values[0].data \
+	    && _a->value_ctr.data_blob.values[0].data->length == 4) { \
+		(p)->elem = IVAL(_a->value_ctr.data_blob.values[0].data->data,0);\
 	} else { \
 		(p)->elem = 0; \
 	} \

Modified: branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c	2007-01-02 13:54:37 UTC (rev 20475)
+++ branches/SAMBA_4_0/source/dsdb/schema/schema_syntax.c	2007-01-02 14:14:35 UTC (rev 20476)
@@ -162,18 +162,6 @@
 {
 	uint32_t i;
 
-switch (attr->attributeID_id) {
-case DRSUAPI_ATTRIBUTE_instanceType:
-case DRSUAPI_ATTRIBUTE_rangeLower:
-case DRSUAPI_ATTRIBUTE_rangeUpper:
-case DRSUAPI_ATTRIBUTE_objectVersion:
-case DRSUAPI_ATTRIBUTE_oMSyntax:
-case DRSUAPI_ATTRIBUTE_searchFlags:
-case DRSUAPI_ATTRIBUTE_systemFlags:
-case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version:
-	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);
@@ -585,12 +573,16 @@
 		const struct dsdb_class *c;
 		const char *str;
 
-		if (in->value_ctr.object_class_id.values[i].objectClassId == NULL) {
+		if (in->value_ctr.data_blob.values[i].data == NULL) {
 			return WERR_FOOBAR;
 		}
 
-		v = *in->value_ctr.object_class_id.values[i].objectClassId;
+		if (in->value_ctr.data_blob.values[i].data->length != 4) {
+			return WERR_FOOBAR;
+		}
 
+		v = IVAL(in->value_ctr.data_blob.values[i].data->data, 0);
+
 		c = dsdb_class_by_governsID_id(schema, v);
 		if (!c) {
 			return WERR_FOOBAR;
@@ -627,12 +619,16 @@
 		WERROR status;
 		const char *str;
 
-		if (in->value_ctr.oid.values[i].value == NULL) {
+		if (in->value_ctr.data_blob.values[i].data == NULL) {
 			return WERR_FOOBAR;
 		}
 
-		v = *in->value_ctr.oid.values[i].value;
+		if (in->value_ctr.data_blob.values[i].data->length != 4) {
+			return WERR_FOOBAR;
+		}
 
+		v = IVAL(in->value_ctr.data_blob.values[i].data->data, 0);
+
 		status = dsdb_map_int2oid(schema, v, out->values, &str);
 		W_ERROR_NOT_OK_RETURN(status);
 

Modified: branches/SAMBA_4_0/source/libnet/libnet_become_dc.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_become_dc.c	2007-01-02 13:54:37 UTC (rev 20475)
+++ branches/SAMBA_4_0/source/libnet/libnet_become_dc.c	2007-01-02 14:14:35 UTC (rev 20476)
@@ -1128,23 +1128,26 @@
 
 	/* objectClass: nTDSDSA */
 	{
-		struct drsuapi_DsAttributeValueObjectClassId *vs;
-		enum drsuapi_DsObjectClassId *v;
+		struct drsuapi_DsAttributeValueDataBlob *vs;
+		DATA_BLOB *vd;
 
-		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueObjectClassId, 1);
+		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueDataBlob, 1);
 		if (composite_nomem(vs, c)) return;
 
-		v = talloc_array(vs, enum drsuapi_DsObjectClassId, 1);
-		if (composite_nomem(v, c)) return;
+		vd = talloc_array(vs, DATA_BLOB, 1);
+		if (composite_nomem(vd, c)) return;
 
+		vd[0] = data_blob_talloc(vd, NULL, 4);
+		if (composite_nomem(vd[0].data, c)) return;
+
 		/* value for nTDSDSA */
-		v[0]			= 0x0017002F;
+		SIVAL(vd[0].data, 0, 0x0017002F);
 
-		vs[0].objectClassId	= &v[0];
+		vs[0].data		= &vd[0];
 
 		attrs[i].attid					= DRSUAPI_ATTRIBUTE_objectClass;
-		attrs[i].value_ctr.object_class_id.num_values	= 1;
-		attrs[i].value_ctr.object_class_id.values	= vs;
+		attrs[i].value_ctr.data_blob.num_values		= 1;
+		attrs[i].value_ctr.data_blob.values		= vs;
 
 		i++;
 	}
@@ -1319,44 +1322,50 @@
 
 	/* msDS-Behavior-Version */
 	if (w2k3) {
-		struct drsuapi_DsAttributeValueUINT32 *vs;
-		uint32_t *v;
+		struct drsuapi_DsAttributeValueDataBlob *vs;
+		DATA_BLOB *vd;
 
-		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueUINT32, 1);
+		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueDataBlob, 1);
 		if (composite_nomem(vs, c)) return;
 
-		v = talloc_array(vs, uint32_t, 1);
-		if (composite_nomem(v, c)) return;
+		vd = talloc_array(vs, DATA_BLOB, 1);
+		if (composite_nomem(vd, c)) return;
 
-		v[0]			= DS_BEHAVIOR_WIN2003;
+		vd[0] = data_blob_talloc(vd, NULL, 4);
+		if (composite_nomem(vd[0].data, c)) return;
 
-		vs[0].value		= &v[0];
+		SIVAL(vd[0].data, 0, DS_BEHAVIOR_WIN2003);
 
+		vs[0].data		= &vd[0];
+
 		attrs[i].attid					= DRSUAPI_ATTRIBUTE_msDS_Behavior_Version;
-		attrs[i].value_ctr.uint32.num_values		= 1;
-		attrs[i].value_ctr.uint32.values		= vs;
+		attrs[i].value_ctr.data_blob.num_values		= 1;
+		attrs[i].value_ctr.data_blob.values		= vs;
 
 		i++;
 	}
 
 	/* systemFlags */
 	{
-		struct drsuapi_DsAttributeValueUINT32 *vs;
-		uint32_t *v;
+		struct drsuapi_DsAttributeValueDataBlob *vs;
+		DATA_BLOB *vd;
 
-		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueUINT32, 1);
+		vs = talloc_array(attrs, struct drsuapi_DsAttributeValueDataBlob, 1);
 		if (composite_nomem(vs, c)) return;
 
-		v = talloc_array(vs, uint32_t, 1);
-		if (composite_nomem(v, c)) return;
+		vd = talloc_array(vs, DATA_BLOB, 1);
+		if (composite_nomem(vd, c)) return;
 
-		v[0]			= SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE;
+		vd[0] = data_blob_talloc(vd, NULL, 4);
+		if (composite_nomem(vd[0].data, c)) return;
 
-		vs[0].value		= &v[0];
+		SIVAL(vd[0].data, 0, SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE);
 
+		vs[0].data		= &vd[0];
+
 		attrs[i].attid					= DRSUAPI_ATTRIBUTE_systemFlags;
-		attrs[i].value_ctr.uint32.num_values		= 1;
-		attrs[i].value_ctr.uint32.values		= vs;
+		attrs[i].value_ctr.data_blob.num_values		= 1;
+		attrs[i].value_ctr.data_blob.values		= vs;
 
 		i++;
 	}

Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2007-01-02 13:54:37 UTC (rev 20475)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl	2007-01-02 14:14:35 UTC (rev 20476)
@@ -519,21 +519,6 @@
 	} drsuapi_DsAttributeValueCtrGUID;
 
 	typedef [nodiscriminant] union {
-		[case(DRSUAPI_ATTRIBUTE_objectClass)] drsuapi_DsAttributeValueCtrObjectClassId object_class_id;
-		[case(DRSUAPI_ATTRIBUTE_governsID)]		drsuapi_DsAttributeValueCtrUINT32 oid;
-		[case(DRSUAPI_ATTRIBUTE_attributeID)]		drsuapi_DsAttributeValueCtrUINT32 oid;
-		[case(DRSUAPI_ATTRIBUTE_attributeSyntax)]	drsuapi_DsAttributeValueCtrUINT32 oid;
-
-		/* UINT32 */
-		[case(DRSUAPI_ATTRIBUTE_instanceType)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_rangeLower)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_rangeUpper)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_objectVersion)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_oMSyntax)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_searchFlags)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_systemFlags)]		drsuapi_DsAttributeValueCtrUINT32 uint32;
-		[case(DRSUAPI_ATTRIBUTE_msDS_Behavior_Version)]	drsuapi_DsAttributeValueCtrUINT32 uint32;
-
 		/* UnicodeString */
 		[case(DRSUAPI_ATTRIBUTE_description)]		drsuapi_DsAttributeValueCtrUnicodeString unicode_string;
 		[case(DRSUAPI_ATTRIBUTE_adminDisplayName)]	drsuapi_DsAttributeValueCtrUnicodeString unicode_string;



More information about the samba-cvs mailing list