mirror of
https://github.com/samba-team/samba.git
synced 2025-11-30 20:23:49 +03:00
r20064: - fix pushing of DeReplicaObjectIdentifierX, this lets the DsAddEntry()
request work correctly - the error structures all have the same type metze
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
e8c77b5cba
commit
3322dbd901
@@ -126,7 +126,7 @@ interface drsuapi
|
||||
/* 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 @@ interface drsuapi
|
||||
/* 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 @@ interface drsuapi
|
||||
[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 {
|
||||
|
||||
@@ -299,5 +299,6 @@ void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct do
|
||||
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__ */
|
||||
|
||||
@@ -34,6 +34,21 @@ size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
|
||||
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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user