svn commit: samba r9518 - in branches/SAMBA_4_0/source: include
librpc/idl librpc/ndr
metze at samba.org
metze at samba.org
Tue Aug 23 13:12:08 GMT 2005
Author: metze
Date: 2005-08-23 13:12:07 +0000 (Tue, 23 Aug 2005)
New Revision: 9518
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9518
Log:
- remove the subcontext_size() hack from rev 9509
as it isn't needed
- parse some more DsAddEntry() errors
- add some more attid constands so that all attribute that are needed
for a DsAddEntry in the DC Domain Join are mapped
- add value() for __ndr_size, to more attribute container, so that the caller
doesn't need to fill them in, that was the reason for getting an NDR_FAULT
metze
Modified:
branches/SAMBA_4_0/source/include/structs.h
branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c
Changeset:
Modified: branches/SAMBA_4_0/source/include/structs.h
===================================================================
--- branches/SAMBA_4_0/source/include/structs.h 2005-08-23 13:03:39 UTC (rev 9517)
+++ branches/SAMBA_4_0/source/include/structs.h 2005-08-23 13:12:07 UTC (rev 9518)
@@ -80,8 +80,6 @@
struct drsuapi_DsCrackNames;
struct drsuapi_DsReplicaObjectListItem;
struct drsuapi_DsReplicaObjectListItemEx;
-struct drsuapi_DsAttributeValueDNString;
-struct drsuapi_DsReplicaObjectIdentifier3;
struct MULTI_QI;
struct COSERVERINFO;
Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-08-23 13:03:39 UTC (rev 9517)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-08-23 13:12:07 UTC (rev 9518)
@@ -365,21 +365,28 @@
* 2.5.5.17 => dom_sid
*/
- typedef [v1_enum] enum {
+ typedef [flag(NDR_PAHEX),v1_enum] enum {
DRSUAPI_OBJECTCLASS_top = 0x00010000
} drsuapi_DsObjectClassId;
- typedef [v1_enum,public] enum {
+ typedef [flag(NDR_PAHEX),v1_enum,public] enum {
DRSUAPI_ATTRIBUTE_objectClass = 0x00000000,
DRSUAPI_ATTRIBUTE_description = 0x0000000d,
+ DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e,
DRSUAPI_ATTRIBUTE_invocationId = 0x00020073,
+ DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024,
DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119,
DRSUAPI_ATTRIBUTE_objectSid = 0x00090092,
DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */
DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */
DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e,
DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0,
- DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e
+ DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177,
+ DRSUAPI_ATTRIBUTE_serverReference = 0x00090203,
+ DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e,
+ DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3,
+ DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c,
+ DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c
} drsuapi_DsAttributeId;
/* Generic DATA_BLOB values */
@@ -395,7 +402,7 @@
/* objectClass values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(4)] uint32 __ndr_size;
[subcontext(4)] drsuapi_DsObjectClassId *objectClassId;
} drsuapi_DsAttributeValueObjectClassId;
@@ -406,7 +413,7 @@
/* uint32 values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(4)] uint32 __ndr_size;
[subcontext(4)] uint32 *value;
} drsuapi_DsAttributeValueUINT32;
@@ -436,8 +443,8 @@
} drsuapi_DsReplicaObjectIdentifier3;
typedef struct {
- [range(0,10485760),value(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] uint32 __ndr_size;
- [subcontext(4),subcontext_size(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] drsuapi_DsReplicaObjectIdentifier3 *object;
+ [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size;
+ [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object;
} drsuapi_DsAttributeValueDNString;
typedef struct {
@@ -447,7 +454,7 @@
/* GUID values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(ndr_size_GUID(guid, ndr->flags))] uint32 __ndr_size;
[subcontext(4)] GUID *guid;
} drsuapi_DsAttributeValueGUID;
@@ -458,7 +465,7 @@
/* SID values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(ndr_size_dom_sid(sid))] uint32 __ndr_size;
[subcontext(4)] dom_sid *sid;
} drsuapi_DsAttributeValueSID;
@@ -469,7 +476,7 @@
/* SecurityDescriptor values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(ndr_size_security_descriptor(sd))] uint32 __ndr_size;
[subcontext(4)] security_descriptor *sd;
} drsuapi_DsAttributeValueSecurityDescriptor;
@@ -480,7 +487,7 @@
/* NTTIME_1sec values */
typedef struct {
- [range(0,10485760)] uint32 length;
+ [range(0,10485760),value(8)] uint32 __ndr_size;
[subcontext(4)] NTTIME_1sec *time;
} drsuapi_DsAttributeValueNTTIME_1sec;
@@ -531,7 +538,7 @@
[default] drsuapi_DsAttributeValueCtrDataBlob data_blob;
} drsuapi_DsReplicaAttributeValueCtr;
- typedef [flag(NDR_PAHEX)] struct {
+ typedef struct {
drsuapi_DsAttributeId attid;
[switch_is(attid)] drsuapi_DsReplicaAttributeValueCtr value_ctr;
} drsuapi_DsReplicaAttribute;
@@ -941,9 +948,32 @@
uint16 unknown3;
} drsuapi_DsAddEntryErrorInfoX;
+ typedef struct {
+ [range(0,10485760)] uint32 size;
+ [size_is(size)] uint8 *data;
+ } drsuapi_DsAddEntryExtraErrorBuffer;
+
+ typedef struct {
+ drsuapi_DsAddEntryErrorInfoX error;
+ drsuapi_DsAttributeId attid;
+ uint32 unknown2;
+ drsuapi_DsAddEntryExtraErrorBuffer buffer;
+ } drsuapi_DsAddEntryExtraError1;
+
+ typedef /*[noprint]*/ struct {
+ drsuapi_DsAddEntryErrorListItem1 *next;
+ drsuapi_DsAddEntryExtraError1 error;
+ } drsuapi_DsAddEntryErrorListItem1;
+
+ typedef struct {
+ drsuapi_DsReplicaObjectIdentifier *id;
+ WERROR status;
+ drsuapi_DsAddEntryErrorListItem1 first;
+ } drsuapi_DsAddEntryErrorInfo1;
+
typedef [switch_type(uint32)] union {
-/* [case(1)] drsuapi_DsAddEntryErrorInfo1 error1;
- [case(2)] drsuapi_DsAddEntryErrorInfo2 error2;
+ [case(1)] drsuapi_DsAddEntryErrorInfo1 error1;
+/* [case(2)] drsuapi_DsAddEntryErrorInfo2 error2;
[case(3)] drsuapi_DsAddEntryErrorInfo3 error3;
*/ [case(4)] drsuapi_DsAddEntryErrorInfoX error4;
[case(5)] drsuapi_DsAddEntryErrorInfoX error5;
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c 2005-08-23 13:03:39 UTC (rev 9517)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c 2005-08-23 13:12:07 UTC (rev 9518)
@@ -61,18 +61,3 @@
ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "next_object", r->next_object);
}
}
-
-uint32_t _ndr_size_drsuapi_DsReplicaObjectIdentifier3(const void *ndr,
- const struct drsuapi_DsAttributeValueDNString *dn,
- const struct drsuapi_DsReplicaObjectIdentifier3 *id,
- uint32_t flags)
-{
- if (talloc_get_type(ndr, struct ndr_pull)) {
- return dn->__ndr_size;
- } else if (talloc_get_type(ndr, struct ndr_push)) {
- return ndr_size_drsuapi_DsReplicaObjectIdentifier3(id, flags) + 2;
- } else if (talloc_get_type(ndr, struct ndr_print)) {
- return ndr_size_drsuapi_DsReplicaObjectIdentifier3(id, flags) + 2;
- }
- return 0;
-}
More information about the samba-cvs
mailing list