summaryrefslogtreecommitdiff
path: root/librpc/idl
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/idl')
-rw-r--r--librpc/idl/misc.idl22
-rw-r--r--librpc/idl/preg.idl2
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;