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