svn commit: samba r20064 - in branches/SAMBA_4_0/source/librpc: idl
ndr
metze at samba.org
metze at samba.org
Thu Dec 7 15:24:24 GMT 2006
Author: metze
Date: 2006-12-07 15:24:23 +0000 (Thu, 07 Dec 2006)
New Revision: 20064
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20064
Log:
- fix pushing of DeReplicaObjectIdentifierX, this lets the DsAddEntry()
request work correctly
- the error structures all have the same type
metze
Modified:
branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
branches/SAMBA_4_0/source/librpc/ndr/libndr.h
branches/SAMBA_4_0/source/librpc/ndr/ndr_sec_helper.c
Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2006-12-07 10:49:17 UTC (rev 20063)
+++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2006-12-07 15:24:23 UTC (rev 20064)
@@ -126,7 +126,7 @@
/* Function 0x02 */
typedef [public,gensize] struct {
[value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size;
- [value(ndr_size_dom_sid(&r->sid, ndr->flags))] uint32 __ndr_size_sid;
+ [value(ndr_size_dom_sid28(&r->sid, ndr->flags))] uint32 __ndr_size_sid;
GUID guid;
dom_sid28 sid;
[flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn;
@@ -454,7 +454,7 @@
/* DN String values */
typedef [public,gensize] struct {
[value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size;
- [value(ndr_size_dom_sid(&r->sid,ndr->flags))] uint32 __ndr_size_sid;
+ [value(ndr_size_dom_sid28(&r->sid,ndr->flags))] uint32 __ndr_size_sid;
GUID guid;
dom_sid28 sid;
[flag(STR_SIZE4|STR_CHARLEN)] string dn;
@@ -1113,10 +1113,10 @@
[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;
- [case(6)] drsuapi_DsAddEntryErrorInfoX error6;
- [case(7)] drsuapi_DsAddEntryErrorInfoX error7;
+*/ [case(4)] drsuapi_DsAddEntryErrorInfoX errorX;
+ [case(5)] drsuapi_DsAddEntryErrorInfoX errorX;
+ [case(6)] drsuapi_DsAddEntryErrorInfoX errorX;
+ [case(7)] drsuapi_DsAddEntryErrorInfoX errorX;
} drsuapi_DsAddEntryErrorInfo;
typedef struct {
Modified: branches/SAMBA_4_0/source/librpc/ndr/libndr.h
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/libndr.h 2006-12-07 10:49:17 UTC (rev 20063)
+++ branches/SAMBA_4_0/source/librpc/ndr/libndr.h 2006-12-07 15:24:23 UTC (rev 20064)
@@ -299,5 +299,6 @@
NTSTATUS ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
NTSTATUS ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
+size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags);
#endif /* __LIBNDR_H__ */
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_sec_helper.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_sec_helper.c 2006-12-07 10:49:17 UTC (rev 20063)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_sec_helper.c 2006-12-07 15:24:23 UTC (rev 20064)
@@ -34,6 +34,21 @@
return 8 + 4*sid->num_auths;
}
+size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags)
+{
+ struct dom_sid zero_sid;
+
+ if (!sid) return 0;
+
+ ZERO_STRUCT(zero_sid);
+
+ if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
+ return 0;
+ }
+
+ return 8 + 4*sid->num_auths;
+}
+
/*
return the wire size of a security_ace
*/
More information about the samba-cvs
mailing list