diff options
Diffstat (limited to 'librpc/idl')
-rw-r--r-- | librpc/idl/misc.idl | 22 | ||||
-rw-r--r-- | librpc/idl/preg.idl | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/librpc/idl/misc.idl b/librpc/idl/misc.idl index 52d4f88a63c..e0dc1192bb1 100644 --- a/librpc/idl/misc.idl +++ b/librpc/idl/misc.idl @@ -79,6 +79,28 @@ interface misc [default,flag(NDR_REMAINING)] DATA_BLOB data; } winreg_Data; + /* + * We duplicate the above winreg_Data for usage in the GPO python + * parsers which cannot handle nstring_array. This should be only + * temporary, until we can get PIDL to generate the correct bindings. + */ + typedef [nodiscriminant,public,flag(NDR_LITTLE_ENDIAN)] union { + [case(REG_NONE)]; + [case(REG_SZ)] nstring string; + [case(REG_EXPAND_SZ)] nstring string; + [case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary; + [case(REG_DWORD)] uint32 value; + [case(REG_DWORD_BIG_ENDIAN),flag(NDR_BIG_ENDIAN)] uint32 value; + /* + * There are no python handlers for nstring_array. + * Prefer a fallback to DATA_BLOB instead. + * + * [case(REG_MULTI_SZ)] nstring_array string_array; + */ + [case(REG_QWORD)] hyper qword; + [default,flag(NDR_REMAINING)] DATA_BLOB data; + } winreg_Data_GPO; + /* SAM database types */ typedef [public,v1_enum] enum { SAM_DATABASE_DOMAIN = 0, /* Domain users and groups */ diff --git a/librpc/idl/preg.idl b/librpc/idl/preg.idl index fc28bb65ebd..9ae4a9efe22 100644 --- a/librpc/idl/preg.idl +++ b/librpc/idl/preg.idl @@ -27,7 +27,7 @@ import "misc.idl"; [charset(DOS),value(";"),noprint] uint8 _sep3[2]; uint32 size; [charset(DOS),value(";"),noprint] uint8 _sep4[2]; - [subcontext(0),subcontext_size(size),flag(NDR_REMAINING), switch_is(type)] winreg_Data data; + [subcontext(0),subcontext_size(size),flag(NDR_REMAINING), switch_is(type)] winreg_Data_GPO data; [charset(DOS),value("]"),noprint] uint8 _closing_bracket[2]; } preg_entry; |