From fd2bc081381eb24bdbb82d0b1b0fbf0ae12f250a Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 23 Mar 2010 18:45:20 -0400 Subject: idl: fix forest trust information idl --validate now passes --- librpc/idl/drsblobs.idl | 10 +++++++--- librpc/idl/idl_types.h | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'librpc/idl') diff --git a/librpc/idl/drsblobs.idl b/librpc/idl/drsblobs.idl index 7cfcc1c3c5..0df5bc15e2 100644 --- a/librpc/idl/drsblobs.idl +++ b/librpc/idl/drsblobs.idl @@ -602,18 +602,22 @@ interface drsblobs { /* meaning of flags depends on record type and values are the same as in lsa.idl, see collision record types */ - typedef [flag(NDR_NOALIGN)] struct { - uint32 length; + typedef [public,gensize,flag(NDR_NOALIGN)] struct { uint32 flags; NTTIME timestamp; ForestTrustInfoRecordType type; [switch_is(type)] ForestTrustData data; } ForestTrustInfoRecord; + typedef [flag(NDR_NOALIGN)] struct { + [value(ndr_size_ForestTrustInfoRecord(&record, ndr->iconv_convenience, ndr->flags))] uint32 record_size; + ForestTrustInfoRecord record; + } ForestTrustInfoRecordArmor; + typedef [public,flag(NDR_NOALIGN)] struct { uint32 version; uint32 count; - ForestTrustInfoRecord records[count]; + ForestTrustInfoRecordArmor records[count]; } ForestTrustInfo; void decode_ForestTrustInfo( diff --git a/librpc/idl/idl_types.h b/librpc/idl/idl_types.h index e8b3da578f..d763a8b22a 100644 --- a/librpc/idl/idl_types.h +++ b/librpc/idl/idl_types.h @@ -48,9 +48,10 @@ #define utf8string [flag(STR_UTF8|STR_NULLTERM)] string /* - an utf8 string prefixed with [size], 32 bits + an utf8 string prefixed with [length], 32 bits + not null terminated */ -#define utf8string2 [flag(STR_UTF8|STR_SIZE4)] string +#define utf8string2 [flag(STR_SIZE4|STR_UTF8|STR_NOTERM)] string /* a null terminated UCS2 string -- cgit