diff options
author | Garming Sam <garming@catalyst.net.nz> | 2018-05-09 16:21:07 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2018-08-16 23:42:20 +0200 |
commit | c71ba94cb13f2a2ff18ddabee19e46fb2cf646a3 (patch) | |
tree | a9296a7d6adeb13bd1f0a29834e0d213e003cb87 /librpc/idl | |
parent | 463dcc909417f91a576b12b96adfc16e18ffc9a0 (diff) | |
download | samba-c71ba94cb13f2a2ff18ddabee19e46fb2cf646a3.tar.gz |
preg: Using winreg_Data_GPO instead of DATA_BLOB
We need to make a duplicate in order to have reasonable python bindings.
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
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; |