summaryrefslogtreecommitdiff
path: root/librpc/idl
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2018-05-09 16:21:07 +1200
committerAndrew Bartlett <abartlet@samba.org>2018-08-16 23:42:20 +0200
commitc71ba94cb13f2a2ff18ddabee19e46fb2cf646a3 (patch)
treea9296a7d6adeb13bd1f0a29834e0d213e003cb87 /librpc/idl
parent463dcc909417f91a576b12b96adfc16e18ffc9a0 (diff)
downloadsamba-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.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;